Compare commits

...
Author SHA1 Message Date
Ian Chua 9bac75dda5 Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-28 21:15:32 +08:00
Ian Chua 50c5ec2862 fix: remove redundant earlier expires_never call 2026-09-28 21:14:22 +08:00
Ian Chua b36a72e16a fix: orca mqtt session timeout after connack 2026-09-28 21:14:21 +08:00
Ian Chua 64371c191e Merge branch 'main' into feat/printer-agent-infra 2026-09-28 20:50:03 +08:00
Ian Chua 94702a5f8d Merge branch 'feat/printer-agent-infra' of https://github.com/OrcaSlicer/OrcaSlicer into feat/printer-agent-infra 2026-09-28 20:48:51 +08:00
Ian Chua 68cdd31852 Merge branch 'main' into feat/printer-agent-infra 2026-09-28 20:48:37 +08:00
Ian Chua 08f086daf3 fix: tolerate unsupported OFL publisher branches (pre 2.5.x) (#15962) 2026-09-28 20:40:24 +08:00
Ian Chua 293aa3e0ed fix: OFL workflow checkpoint and clear ordering (#15960)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
This PR re-orders the OFL OTA auto-publish workflow by using successful
cron runs as checkpoints, marking and waiting for every dispatched
profile publisher to finish, and clearing the pending queue once
centrally only after all publishers succeed.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-28 20:00:04 +08:00
Ian Chua faeb84da72 fix: change checkpointing to use last cronjob instead 2026-09-28 19:59:01 +08:00
anjisandyw4z c30c9beb09 Fix clipped tall models in G-code preview for gcode files (#15360)
Fix clipped tall models in G-code preview

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-28 14:58:24 +03:00
Ian Chua 77f8c64d37 fix: OFL workflow checkpoint and clear ordering 2026-09-28 19:53:23 +08:00
Ian Chua 576cce2f72 test: bump elegoo profile to test OFL OTA E2E [TO BE REVERTED] (#15954)
Merged by /bot merge on behalf of @peachismomo (id 52488812).
Grants: resources/profiles/OrcaFilamentLibrary/filament/Elegoo, resources/profiles/OrcaFilamentLibrary.json, resources/profiles/Elegoo, resources/profiles/Elegoo.json
Head: d4a18c633e
2026-09-28 10:47:41 +00:00
Kenneth Rapleeandyw4z f3a8f711fd Catch Standard_Failure before std::exception (OCCT >= 8) (#15826)
Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-28 13:44:32 +03:00
Kenneth Rapleeandyw4z 00bde9265b Add missing OCCT (8.x) header includes (#15825)
* Add missing TopTools includes to GeometryEngine.cpp

* Add missing TDF_LabelSequence include in STEP.cpp

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-28 13:42:25 +03:00
Ioannis Giannakas 7707487252 Fix overhang slowdown and fan applied to whole walls ahead of an overhang (#15945) 2026-09-28 10:59:39 +01:00
Hugo Costa 3df9c215f8 Blocks: branded filaments, naming/loading fixes, RF50 bed type and other fixes. (#15804)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

This PR fixes some problems with the current profiles for Blocks
printers

- **Fix**: start gcode for the Blocks 0.6mm RF50 printer where the start
gcode command had no newline separation on two commands so they were
concatenated and would make printing fail.
- **Added**: multi material plates selection for the RF50 printers,
right now only textured PEI and smooth high temp plates are available,
but in the future more to come.
- **Naming consistancy** for Blocks Pro S100 processes and filaments,
target labels used bare `@Blocks` while RD50 and RF50 used
`@Blocks_RD50` and `@Blocks_RF50`. Renamed Pro S100 to
`@Blocks_Pro_S100` to match the structure.
- **Filament restructure**: replaced Blocks tuned-generic filaments
(e.g. `Generic PLA @Blocks`) with real Blocks-branded filaments. One for
each printer model. Every material keeps the same coverage we already
had.
- **Fix**: `sparse_infill_pattern` was misspelled `sparse_infill_patter`
on 13 `@Blocks_RF50` process presets. Harmless due to inheritances but
fixed non the less.
- **Fix**: `Blocks RD50 V2 0.4 nozzle.json` was missing
`printer_variant`.
- **Normalize** all Blocks profiles to standard formatting (tab
indentation, key order) and bumped `Blocks.json` version.
- **RF50 retraction length** increased on all RF50 machines.


## Tests

- [x] `orca_profile_tool.py check --vendor Blocks` - clean
- [x] `orca_profile_tool.py check` - clean
- [x] `normalize` / `generate-id` / `update-index --dry-run` — fully
settled, no pending changes
- [x] `check_profile.sh --vendor Blocks` → `profile_tool` check — passes
- [ ] `validate_system` / `validate_slice` /
`validate_filament_subtypes` / `validate_custom` —
could not run locally (dev host's glibc 2.36 is older than the nightly
validator binary's
      required 2.38); needs CI or a compatible host
- [x] In-app confirmation that the Blocks bundle loads
 
<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-28 17:16:55 +08:00
HanifKoh cda1588578 Draw the Toolpaths Top-Down When the Camera Looks Down on the Print (#15883)
The segments come in print order, bottom layer first, which seen from above is back to
front: every hidden fragment is shaded before the one that covers it, and on an integrated
GPU that overdraw is most of the frame. Drawing the instances last to first whenever the
camera looks down lets the depth test reject the hidden fragments instead. Side views and
views from below keep the print order, and the shadow-caster pass is unchanged.
2026-09-28 15:36:08 +08:00
Ian Chua ec0d8c225f fix: slicing lifecycle event naming on cancellation (#15889)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

Avoid calling Print::output_filename() when a slice is canceled or
fails, since unresolved filename placeholders can throw before G-code
export completes.
Instead, we should use the model name in ctx.name and the stable model
ID in ctx.id, consistently across slice and G-code export events.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
Fix #15885
2026-09-28 12:20:08 +08:00
Ian Chua 3040ebaac1 Merge branch 'main' into fix/slicing-evt-name 2026-09-28 12:19:59 +08:00
Kris Austin 5298e49dd2 fix: Klipper/Moonraker upload errors show a raw Python traceback (#14841) 2026-09-27 19:08:27 -03:00
Kenneth Rapleeandyw4z 4964f49765 Fix size_t/%d format mismatch in MsgDialog::add_button (#15852)
Fix size_t/%d mismatch in MsgDialog button keys

`m_buttons.size()` is a `size_t`, which does not match the `%d` conversion in
printf-style variadics. Build the key with `std::to_string` instead; exact
for any size_t, no behavior change for realistic counts.

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-27 19:21:03 +03:00
Chris Bennight ea471dc82d Fix model initialization without a wx application (#15866)
Guard the smooth-normals preference read when CLI thumbnail generation initializes geometry without a wx application. Use the existing flat-normal path in that case and preserve GUI preferences.
2026-09-27 18:53:11 +03:00
Kiss Lorand bd65cce3f4 Unify GUI scroll rates (#15902)
Use DPI-aware 20 DIP vertical scrolling for general-purpose GUI
scroll areas.

Keep list-based views aligned to their item height so one wheel increment follows the visible row rhythm.

This makes Preferences and other dialogs scroll consistently across
Windows DPI settings.
2026-09-27 16:58:10 +03:00
d976d9eb0c Release the DC after GetDC in get_dpi_for_window and font enumeration (#15919)
get_dpi_for_window's pre-8.1 fallback and get_font_list_by_enumeration
both called GetDC without a matching ReleaseDC, leaking a GDI handle
each call. get_dpi_for_window runs on every mouse-move over the 3D
viewport, so the leak exhausts the per-process GDI handle limit and
hangs the app within minutes on Windows 7/8.

Co-authored-by: Fernando Marino <f.marino@rheagroup.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-27 14:19:27 +03:00
Ian Chua d347a80ef8 Merge branch 'main' into fix/slicing-evt-name 2026-09-27 17:57:40 +08:00
peachismomo e340a13c18 fix: use current print for slicing lifecycle identity 2026-09-27 17:53:41 +08:00
peachismomo 9e16cdb23b fix: comment above reset_export 2026-09-27 17:29:25 +08:00
peachismomo 58842bab05 test: test for SliceStarted ensuring stable model ID is presetn when model name is absent 2026-09-27 17:29:01 +08:00
peachismomo 04204ec0d3 test: cover slicing lifecycle event context 2026-09-27 17:25:56 +08:00
Ian Chua ae27a795b6 fix: timestamp format for OFL OTA update endpoint (#15936)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

The OFL OTA workflow sent an ISO-8601 timestamp to the pending-clear
endpoint, which only accepts Unix epoch seconds. This caused the
scheduled workflow to fail with HTTP 400.

Use `data -u +%s` so that request matches the endpoint contract. 

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-27 16:40:04 +08:00
peachismomo ecd0be353c fix: timestamp format for OFL OTA update endpoint 2026-09-27 16:36:15 +08:00
Kiss Lorand 6a07853933 Fix crash with placeholders in file header G-code (#15915) 2026-09-26 17:09:56 -03:00
Noisyfox 5ae9015c82 Fix rare crash due to invalid pointer when vector::resize reallocate underlying memory (#15877) 2026-09-26 16:52:29 -03:00
0ddc730854 No fuzzy skin on bridge like overhangs perimeters (#13891)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-09-26 16:42:44 -03:00
Ian Bassi ea280ba6f6 Wipe tower sparse layers combination (#15841) 2026-09-26 16:27:15 -03:00
Kris Austin 237cd10eb5 fix: Home start shows Prepare or a blank window, and Prepare opens slowly (#15878) 2026-09-26 14:23:52 -03:00
Ioannis Giannakas e77d179bbe Fix inner-outer-inner wall ordering falling back to outer-inner on narrow walls with Arachne (#15924)
* Fix wall ordering edge case
* IOI performance tuning - greedy stop when a first touch is identified.
2026-09-26 17:44:52 +01:00
Ioannis Giannakas d5aaa463c8 Fix MacOS 27 Xcode and Command Line build failures (#15923) 2026-09-26 13:20:17 -03:00
Ian BassiandRodrigo Faselli 8c03985818 Add Cubic Non-crossing multiline strategy (#15887)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-09-26 11:40:49 -03:00
Kris Austin 93b58a2034 fix(gui): keyboard shortcuts cleanup after #15706 (#15862) 2026-09-25 21:51:19 -03:00
weng haishi 6be6fdd7c7 feat: add timestamp to ofl update workflow so that concurrent post_merge_profiles are not silently dropped (#15898)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

If a vendor runs `/bot merge` while the cronjob is running, it might be
dropped because the table might be cleared before `post_merge_profiles`
completes. Instead we can add a timestamp so that we don't accidentally
drop any PR merges that occur while the OFL cronjob is running.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-25 17:53:22 +08:00
Ian Chua 521a30a45c feat: add timestamp to ofl update workflow so that concurrent post_merge_profiles are not silently dropped 2026-09-25 16:53:45 +08:00
Ian Chua 35d5ff705b fix: cronjob checks against last ofl-ota-cronjob instead of post_merge_profiles (#15894)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

The previous implementation checks against the last successful
`post_merge_profiles` which can trigger when a normal OTA update for
non-OFL profiles are made. This causes the check to fail when OFL
changes are made before other regular profile changes are made in
`resources/profiles/<vendor>`

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-25 15:09:41 +08:00
Ian Chua 482fc1e719 fix: cronjob checks against last ofl-ota-cronjob instead of post_merge_profiles 2026-09-25 15:04:32 +08:00
Ian Chua d087941289 test: update profiles for ota update (WILL BE REVERTED) (#15891)
Merged by /bot merge on behalf of @peachismomo (id 52488812).
Grants: resources/profiles/OrcaFilamentLibrary/filament/Elegoo, resources/profiles/OrcaFilamentLibrary.json, resources/profiles/Elegoo, resources/profiles/Elegoo.json
Head: b73e9df4f4
2026-09-25 06:38:09 +00:00
Ian Chua 9d320954a0 feat: daily OTA publish for OFL (OrcaFilamentLibrary) (#15870)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
- `OrcaFilamentLibrary` (OFL) has no `FOLDER_MERGERS` delegation and
changes far more often than other vendors, so it can't go through the
existing merge-triggered, human-published OTA flow.
`post_merge_profiles.yml` gains an explicit `vendor` + `auto_publish`
`workflow_dispatch` path that bypasses the `FOLDER_MERGERS` check and
calls the OTA auto-publish API directly, making the update live with no
human step.
- `ofl-ota-cronjob.yml` drives that path daily across `main` and every
`release/vX.Y.Z` branch, checkpointed against
`post_merge_profiles.yml`'s own per-branch run history so a failed
publish is retried rather than silently dropped.
- Fixes a pre-existing bug in `post_merge_profiles.yml`: a single vendor
with no `FOLDER_MERGERS` grant in a push used to zero out the *entire*
vendor batch, silently dropping other, properly-authorized vendors'
publishes too. It now drops only the ungranted vendor, with a warning.

## Notes
Once v2.5.0 stable is released, we need to remove branch checking
against main in both these workflows.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-25 14:17:03 +08:00
Ian Chua ca093d9bf4 Merge branch 'main' into fix/ota-updates-workflow 2026-09-25 14:16:56 +08:00
Ian Chua 9ed459e132 fix: slicing event name and ID 2026-09-25 13:25:45 +08:00
SoftFever da951ad7f3 Load profile includes so synced Bambu Lab presets get their G-code back (#15869)
# Description

This brings back the Bambu Lab profile sync with BambuStudio, reverted
from main, along with its bed-model offset fix. The synced printers and
filaments share their start and end G-code and dual-nozzle settings
through template files that Orca did not read, so those printers had no
machine G-code. Orca now loads these templates the same way BambuStudio
does, so every synced preset comes in complete. `profile_include_dump`,
a new developer tool, compares the result with BambuStudio's.

Other vendors' profiles are unaffected. Bambu Lab profiles move to
version 02.08.00.10, so installs that took the earlier sync update too.

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

Unit tests cover how template settings combine with inherited and preset
settings, loaded from JSON and from the preset cache. The profile
validator passes on every shipped vendor, and every Bambu Lab preset
gets the same template values in Orca as in BambuStudio.

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-25 13:17:43 +08:00
HanifKoh db10c719f6 Keep the Scarf Seam Free of Sub-Millimetre Segments (#15832)
A scarf joint split the loop at exactly the scarf length, so the remainder
of the segment the split landed in became the first flat segment, often a
fraction of a millimetre. The seam insertion also leaves segments of a few
micrometres at both ends of the loop, which a scarf extrudes through where a
plain loop would start or stop. With junction deviation the planner treats
such short moves as tight corners, limited by the Z axis acceleration at the
end of the ramp, and slows to a third of the wall speed or nearly halts at
the seam.

Extend the ramp to the next vertex when the remainder would be shorter than
half a scarf step, capped at a millimetre, beyond which planners treat a move
as ordinary; the scarf only grows, never shrinks. Drop the vertex next to the
seam point at either end when that segment is shorter than an eighth of a
common line width, so the loop still starts and ends at the seam; a trimmed
path loses its arc fitting and prints as line segments. Clamp the scarf
length to the trimmed loop so a scarf covering a whole loop still ends at
full flow. The descending pass reuses the same path, so both wedges stay
consistent, and a flat part that would collapse to a single point is dropped.
2026-09-25 12:32:05 +08:00
Lam Wei Lun 7cb7465ed8 Speed Dial Fixes (#15867)
# Description

- Force repaint on resize in an attempt to fix random occurrences of it
now working on macOS.
- Updated some text in the speed dial
2026-09-25 11:18:20 +08:00
HanifKoh ddf9b85169 Reserve the Prime Tower When the CLI Arranges a Project (#15837)
The global arrange branch, taken by --arrange with all plates selected, only
reserved the prime tower when filament ids had been given on the command
line for STL input. A project carries its filament use per plate and its own
tower positions, but that set was empty for it, so the tower was never an
obstacle: the arranged pile was centred over it and the slice then failed on
a G-code path conflict.

When no filament ids were given, count the filaments each plate uses and
reserve a tower on every plate that needs one, keeping the project's tower
position instead of resetting it to the default. Only a tower the slicer will
print is reserved: the prime tower must be enabled, and a by-object print
gets none unless a smooth timelapse needs it, as the per-plate arrange
decides. Overflow beds are sized for the busiest plate. The STL route is
unchanged.
2026-09-25 08:39:52 +08:00
HanifKoh af52da061f Report Per-Object Slicing Errors in the CLI (#15834)
G-code generation collects errors raised per object, such as an empty
first layer, into one SlicingErrors exception whose own message is just
"Errors". The CLI's generic handler printed that word and recorded the
generic slicing error text, so a headless caller had nothing to act on.

Let Print render the per-object messages with each object's name, and have
the CLI catch SlicingErrors ahead of the generic handler, print that text
and record it as the result's error string. The exit code is unchanged. A
unit test lifts a cube off the bed and checks the message names the object.
2026-09-25 08:37:28 +08:00
Kris Austin 87a5d20d4c fix(gtk): crash at startup when opening a project with Home as the start page (#15876)
Since #15811 the settings page is built when its tab is shown, so on a
Home start that opens a project the Quality page is built on screen. Its
flow-compensation-model field is a multiline text view that GTK maps as
it is created and that is hidden, because compensation is off, before
GTK first allocates it. The loading dialog's wxWindowDisabler then
desensitizes the frame, and GTK crashes in
gtk_text_layout_cursors_changed() on that text view.

On GTK the page view is now hidden while a page is built, so a control
that starts hidden is never realized and GTK realizes it when it is
shown. The deferred build is unchanged.
2026-09-24 17:37:46 -03:00
Kris Austin 0db1dc6480 build: keep header dependencies through a compiler cache hit on clang-cl (#15875)
For clang-cl, CMake sets the depfile flags to the gcc-style -MD, -MT and -MF,
passed through as -clang: arguments. ccache does not parse those, so a cache
hit writes only the object. Ninja has no depfile to read, so it records zero
header dependencies for that object and does not rebuild it after a header
edit. The stale object is still linked into the library and the DLL. sccache
0.15.0 reproduces the depfile on a hit and is unaffected.

Use /showIncludes instead. CMake already does that for MSVC, and ccache
reproduces it on a hit. A make-rules override sets the flags, because CMake
includes the override after Platform/Windows-Clang.cmake. It is forwarded to
each dependency because every one configures as its own CMake project, and it
is only set when the file exists, because scripts/flatpak/make_deps_tar.sh
packs deps/ alone.

In a build with a warm cache, 678 of 790 objects had no recorded headers.
Object code does not change. One GUI translation unit compiled both ways is
byte-identical apart from the COFF timestamp.
2026-09-24 14:06:24 -03:00
Kris Austin 42009cf385 fix: Linux Flatpak crash rendering plate thumbnails while slicing or saving (#15873) 2026-09-24 13:41:56 -03:00
SoftFever 0e2fbf781d restore transparent cover image 2026-09-25 00:17:09 +08:00
SoftFever b535a81064 Fix: support per-nozzle top_solid_infill_flow_ratio 2026-09-24 23:52:55 +08:00
Ian Chua 87eb8de001 fix: serialize MQTT ws I/O and dewcouple keepalive 2026-09-24 20:28:13 +08:00
Kris Austin 9859d788d4 fix: installed vendor profiles only update when OTA is enabled (#15831)
* preset updater: refresh installed vendors from resources regardless of enable_ota

Since c4fea8ad24 the resources check in check_installed_vendor_profiles()
sat behind enabled_config_update, which now follows enable_ota, a hidden
flag that defaults to off. The hotfix a93c6ea67b then made that gate skip
installed vendors entirely, so a new build's newer vendor profiles were
never installed over an existing vendor unless OTA had been turned on.
Before the gating the update URL always had a default, so the comparison
effectively always ran.

The resources shipped with a build are not an over-the-air update. Judge
installed vendors against them, and drop the ones no longer enabled,
regardless of the flag; enable_ota keeps gating the online sync.

* preset updater: stop reinstalling the filament library on every launch

check_installed_vendor_profiles() put OrcaFilamentLibrary on the install
list unconditionally, so every launch recopied the whole vendor from
resources and, in a build that ships the profile JSONs rather than a
preset cache, then re-parsed and re-cached it: about 0.3 s of a dev
build's startup, and a 3 MB copy in a release build, for a vendor that
had not changed.

The library was special-cased because it is never in the enabled-vendor
list. Treat it like the default bundle instead: always wanted, and
reinstalled only when the resources carry a newer version.
2026-09-24 09:05:41 -03:00
Ian Chua 879f6b67e9 fix: use --method GET 2026-09-24 19:56:51 +08:00
Ian Chua 4ccb5648e6 fix: OFL pending-record step, missing permission and event-type gap 2026-09-24 19:37:16 +08:00
Ian Chua 220508534a fix: cancel inflight cloud signaling requests 2026-09-24 19:03:58 +08:00
Ian Chua 5a0810365b fix: clarify OrcaCloud signaling endpoint contract 2026-09-24 18:18:48 +08:00
Ian Chua fa98ec5afe feat: add ssl and ca_cert for OrcaPrinterAgent 2026-09-24 17:53:46 +08:00
Ian Chua 3c1d8ac8b4 fix: allow input ip address dialog to validate if is valid endpoint 2026-09-24 17:53:12 +08:00
Ian Chua aed0164ea1 fix: update pending db on merge 2026-09-24 16:15:19 +08:00
SoftFever 434ff3011f Fix: Update tree support wall count default value and improve G-code loading for Bambu Lab profiles 2026-09-24 15:45:35 +08:00
Lam Wei Lun 0ee529e283 Fixes missing Plugins category for installed plugins 2026-09-24 15:25:11 +08:00
Ian Chua 6e055e5d8b fix: invoke endpoint to clear pending queue 2026-09-24 14:59:53 +08:00
Ian Chua 936b0bbc17 feat: add https compatibility for moonraker based printer agents 2026-09-24 14:53:32 +08:00
Ian Chua 15b64522a4 fix: single vendor with no grant in a push will zero out the entire vendor batch 2026-09-24 13:36:37 +08:00
SoftFever 2b602943a5 Load profile includes so synced Bambu Lab presets get their G-code back 2026-09-24 13:22:37 +08:00
SoftFever d51ad889fd Reapply "Restore the Bambu Lab bed-model offset so stock BambuStudio meshes line up"
This reverts commit bf024ed34e.
2026-09-24 13:15:14 +08:00
SoftFever edc2f8bf90 Reapply "Sync Bambu Lab profiles with BambuStudio"
This reverts commit b46916a8be.
2026-09-24 13:15:04 +08:00
Ian Chua 5222a37eff fix: command_ams_refresh_rfid function signature in test_printer_agent.cpp 2026-09-24 12:35:03 +08:00
Lam Wei Lun 7ae76e44b1 Merge branch 'main' into feat/speed-dial-fixes 2026-09-24 10:42:19 +08:00
Lam Wei Lun 54c32a54b4 Change some search actions and results text. Force repaint for when resizing and show happens 2026-09-24 10:41:55 +08:00
Valerii Bokhan 037b859447 Fix: Correct camera panning for the perspective view (#15212) 2026-09-23 20:38:26 -03:00
Ian BassiandRodrigo Faselli 02746cd0f5 Disable SSAO for grid (#15865)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-09-23 20:38:04 -03:00
Kris Austin 66b300987b feat: faster startup by lazy-loading main window panels on idle or first use (#15811) 2026-09-23 19:11:10 -03:00
Kris Austin 9bae19fcb3 fix: the 3D scene is drawn in the wrong view for the first half second of startup (#15830) 2026-09-23 18:21:16 -03:00
peachismomo 6da938b660 fix: compilation after merge 2026-09-24 01:15:55 +08:00
peachismomo 2dcdf49185 Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-24 01:02:59 +08:00
peachismomo 52e845a821 fix: add include for non BBL_RELEASE_TO_PUBLIC path in BBLPrinterAgent 2026-09-24 00:23:47 +08:00
Ian Chua 0030bed519 fix: ota updates workflow 2026-09-23 20:37:25 +08:00
Lam Wei Lun fcd8131998 WebGuide's Filament Dialog Fix to ensure filaments inheritance chain is checked properly (#15855)
* fix: resolve filament vendor/type across split base presets

WebGuide's filament list dropped presets whose vendor and type came from different ancestors, and looped forever on inherits cycles. Walk the full inherits chain with a path-scoped guard, fill only missing values, and skip presets that still lack vendor or type. Add tests for split-base resolution and validate the real profile tree.

* Merge branch 'main' into feat/filament_dialog_fix

* Fixes unit test

* Merge branch 'main' into feat/filament_dialog_fix

* Merge branch 'main' into feat/filament_dialog_fix

* revert tests/fff_print/test_gcodewriter.cpp changes
2026-09-23 20:23:52 +08:00
Ian Chua ffb4813510 fix: preserve moonraker device names 2026-09-23 20:17:06 +08:00
Ian Chua 7436f68e09 fix: make moonraker gcode commands asynchronous 2026-09-23 20:15:52 +08:00
Ian Chua ad956591ce fix: use correct device id for Moonraker connections 2026-09-23 20:14:21 +08:00
Ian Chua 8da8e9bee1 fix: persist input printer host and port 2026-09-23 20:12:18 +08:00
Ian Chua 0acc8608b1 refactor: make printer connection SSL agent-specific 2026-09-23 20:11:47 +08:00
a8f1061a02 Add Sovol Zero nozzle profiles and filament profiles (#15756)
* Add Sovol Zero nozzle profiles and filament updates

Preserve inherited tuning with Zero-only overrides so shared
Sovol defaults and other printers remain unchanged. Retain migration
aliases while using canonical names in compatibility references.

Co-authored-by: Codex <noreply@openai.com>

* Fix Sovol Zero bed model reference and ignored settings

Point the Zero model at the shipped bed mesh. Remove unsupported filament
and process keys that the loader silently discards, preserving effective
tuning and the existing preset names and IDs. Bump the Sovol bundle version.

Co-authored-by: Codex <noreply@openai.com>

* Fix Sovol Zero filament identity and vector formatting

Add hardened-steel nozzle variants with disjoint filament compatibility, retain generic product IDs and preserve renamed preset aliases. Convert 43 scalar vector fields to arrays without changing tuning values and bump the Sovol bundle version.

Co-authored-by: Codex <codex@openai.com>

* Keep only shipped names in the Sovol Zero profile renames

The Zero machines, processes, machine model and SPEEDBENCHY filament carried renamed_from entries for names that only ever existed inside this branch (Sovol ZERO ..., " - Brass", " - Hardened Steel"). Drop those, and keep only the redirects that matter to existing users: the historical Sovol Zero material names and the three deleted hardened-steel presets. The Sovol Zero machine model also sheds the setting_id, instantiation and from keys the model loader ignores.

---------

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-23 20:05:01 +08:00
Ian Chua a2a9b2ce94 refactor: collapse command_ams_refresh_rfid and command_ams_refresh_rfid2 2026-09-23 18:30:05 +08:00
SoftFever b46916a8be Revert "Sync Bambu Lab profiles with BambuStudio"
This reverts commit cc883e458d.
2026-09-23 18:19:23 +08:00
SoftFever bf024ed34e Revert "Restore the Bambu Lab bed-model offset so stock BambuStudio meshes line up"
This reverts commit 7758332406.
2026-09-23 18:19:03 +08:00
Sylvain 0211277976 Add Wanhao Duplicator 9 profiles (D9/300, D9/400, D9/500) (#15773) 2026-09-23 17:24:17 +08:00
Ian Chua 07bee6c7a4 Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-23 15:35:22 +08:00
SoftFever 7758332406 Restore the Bambu Lab bed-model offset so stock BambuStudio meshes line up 2026-09-23 14:58:41 +08:00
SoftFever cc883e458d Sync Bambu Lab profiles with BambuStudio
Polymaker, Overture and eSUN presets move from brand subfolders to
BBL/filament/, matching BambuStudio's layout; their names and ids are
unchanged. Default filament lists keep pointing at presets that exist,
0.2 mm nozzles keep a default PLA, and user presets based on removed or
renamed presets still load. Generic SBS is no longer in the Bambu bundle;
new selections on those printers fall back to OrcaFilamentLibrary's
Generic SBS @System. The profile tool now recognises BambuStudio's new
filament id/name maps and support_recommended_params.json as data files.
2026-09-23 14:58:41 +08:00
Ian Chua 1615390182 Merge branch 'main' into feat/printer-agent-infra 2026-09-23 14:54:38 +08:00
Ian Chua cf20994b58 refactor: connect_printer api and dialog (#15827)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

Changing the IP address input dialog and `connect_printer` API in
preparation for configurable Moonraker/Orca printer agent connections.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
<img width="460" height="699" alt="image"
src="https://github.com/user-attachments/assets/35e3ce17-7594-4401-b140-100dea082221"
/>


## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-23 14:54:26 +08:00
Ian Chua 309bb3c6e2 Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-23 14:53:49 +08:00
Ian Chua 79f20c3996 Merge branch 'feat/printer-agent-infra' into refactor/connect-printer-api 2026-09-23 14:48:33 +08:00
Ian Chua 33179c1902 fix: make integration tests headless 2026-09-23 14:29:57 +08:00
SoftFever 24f380963b Move Orca-only third-party BBL filaments to OrcaFilamentLibrary
The Polymaker, BETA, COEX, Overture, addnorth, Numakers, FusRock and
AliZ presets that BambuStudio does not ship now live under
OrcaFilamentLibrary/filament/<Brand>/BBL. The BBL bundle now holds
only the filament presets BambuStudio ships, plus a few Bambu and
generic ones.

New "<product> @BBL base" presets carry the values these presets used
to get from BBL's own bases, so their settings on Bambu Lab printers
are unchanged.
2026-09-23 13:49:23 +08:00
HanifKoh ef956b995a Pick the Parity Build From the Unfiltered Run List and Allow Pinning One (#15823)
The nightly found its build with a filtered run listing (branch=main,
status=success) and trusted the first result. GitHub serves filtered
listings from a run search index that has intermittently returned
weeks-old results, so some nights tested a build from weeks earlier and
reported its differences as regressions. The same filter also matched
fork PR builds whose branch is named main.

The build is now picked from the unfiltered listing, which stays
current, and filtered here: a successful build_all run of this
repository on the requested branch. Fork PR builds are excluded by
repository. A feature branch is normally built only for its PR, so this
repository's own PR builds stay eligible, but a PR build compiles the PR
merged into its base rather than the head commit the later jobs check
out, so a push or dispatch build of the branch is preferred when the same
page of the listing has one. A scheduled run fails instead of testing a
build more than 48 hours old, and every run names the build it tested
in the job summary.

Manual runs scan further back, so a branch that last built weeks ago
can still be tested, and a new build_run_id input pins one build_all
run, read directly rather than through a search.
2026-09-23 12:57:15 +08:00
Ian Chua 82b860480f feat: initial draft of lifecycle events API for plugins (#15293)
# Description

This PR introduces lifecycle events to the plugin API. 
For all plugin capabilities, you can define a `on_lifecycle_event`
function in the plugin that takes in a event enum and a small payload
for some generic information on the lifecycle event.
The idea is to keep the payload generic and small, and if you want to
get more information, you should invoke other more targeted APIs to get
more information.
For example, lets say you are keeping track of the the `ObjectAdded*`
event hook for model transformation, addition or deletion. The payload
would tell you the name of the model, and you should use a targeted API
such as `orca.host.plater().model()` to get more information on the
model. This is the overall design principle of the API.

Currently the lifecycle events are the following:
```cpp
    enum class LifecycleEvent {
        // Project (3mf)
        NewProject,
        ProjectOpened,
        ProjectBeforeSave,
        ProjectAfterSave,
        ProjectClosed,
        ProjectDirtyChanged,

        // Slicing pipeline
        SliceStarted,
        SliceGeometryFinished,
        GCodeExportStarted,
        GCodeExportFinished,
        SlicingJobComplete,

        // Plate/model editing
        ObjectAdded,
        ObjectDeleted,
        ObjectTransformed,
        ObjectChanged,
        ObjectRenamed,
        PlateCreated,
        PlateDeleted,
        PlateSelected,
        PlateRenamed,

        // Preset
        PresetSelected,
        PresetSaved,

        // Printer/device
        PrintStateChanged,
        DeviceOnlineChanged,
        DeviceDiscovered,
        DeviceSelected,
        DeviceConnected,
        DeviceDisconnected,
        UploadStarted,
        UploadFinished,

        // Print/send jobs
        PrintJobStarted,
        PrintJobFinished,
        SendJobStarted,
        SendJobFinished,
    };
```

This is an initial draft and lifecycle events can be included later on.

[orca_telegram_notifier_plugin_any.py](https://github.com/user-attachments/files/31220973/orca_telegram_notifier_plugin_any.py)

If you're familiar with telegram bots, after you install the telegram
bot, in the config of this plugin, you can enter the Bot ID and the Chat
ID with said bot.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

For this plugin, I am testing it with a telegram bot that sends me a
message on lifecycle event.


<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-23 12:52:08 +08:00
HanifKoh 89dc4e1b99 Add an Align to Y Axis Option to the CLI Arrange (#15836)
The CLI turned "align to Y axis" on for every i3 printer with no way to opt
out. With rotations forbidden the pre-rotation is the result, so every object
ends up turned 90 degrees from how it was loaded. The GUI defaults the
checkbox the same way for i3 printers, but lets the user untick it.

Add --align-to-y-axis. When it is not given the printer-structure rule still
applies, so existing calls are unchanged; the CLI's own options are filled
with defaults after parsing, so the keys the user typed are remembered to
tell the two apart.
2026-09-23 12:43:08 +08:00
HanifKoh 12670a6e40 Answer the Preview's Per-Frame Lookups From Cached Sums and Draw Segments From an Index Buffer (#15833)
* Answer the Preview's Per-Frame Time Query From a Cached Sum

The G-code preview's cost is linear in the number of toolpath vertices, and on a
tall multi-filament print the wipe tower dominates that count: it emits a roughly
constant 160-180 moves on every layer whatever the object is, measured at 57-61%
of all moves on a three-filament print.

Four places scanned or allocated across the whole vertex array. None of them
needed to.

get_estimated_time_at re-accumulated the estimated time from vertex 0 on every
call, and its caller is the tool marker tooltip, which ImGui re-renders every
frame while the properties panel is unfolded. It now starts from a running sum
kept at each layer's first vertex, built at load in vertex order, and adds only
that layer's vertices: the same additions in the same order, so the float result
is unchanged, at a cost of one float per layer and time mode rather than per
vertex. At the 351k vertices of a 636-layer test print the call scanned the whole
print (238us); it now scans one layer.

update_view_full_range walked from vertex 0 to find where the layer range starts,
on every slider tick. It now starts at the first vertex of that layer. The index
is derived from the vertices rather than from Layers::Item::range, because
Layers::update folds a vertex whose layer_id arrives out of order into whichever
bucket is open, which makes that range the wrong answer in general; the index
costs four bytes per layer, not per vertex.

update_colors_texture allocated one float per vertex of the whole print on every
slider tick. It now reuses a buffer.

render_legend fetched the layer Zs and the per-layer times from inside loops over
the custom G-code items, and built whole vectors only to test them for emptiness.
The times are hoisted, the Zs are built lazily so a print with no colour change
does not pay for them at all, and the emptiness tests use the existing counters.

No rendering behaviour changes.

* Draw the Preview's Toolpath Segments From an Index Buffer

The preview's frame cost is dominated by one call: a single instanced draw of
every visible toolpath segment. On a tall multi-filament print the wipe tower
supplies most of those segments, which is why the preview of a large tower is
slow and why shrinking the layer range speeds it up again.

That draw is not fill bound. Shrinking the model to about a fortieth of its
screen area moved the frame from 419 ms to 401 ms, so the cost is per segment,
not per pixel, and it is paid in the vertex shader: five texelFetch calls plus
several cross/normalize per invocation.

Each segment is a box of eight corners, but it was submitted with
glDrawArraysInstanced over a 24 entry array, so every corner was transformed
once per triangle that touches it and the shader ran 24 times per segment. The
same 24 entries are now an element buffer over the eight distinct corners, which
lets the post-transform cache reuse them and drops the shader to 8 runs per
segment. The triangles, their winding and the vertex_id each corner receives are
unchanged.

Measured over 100 frames on the 636-layer, 351k-vertex three-filament fixture,
the segment draw goes from 381 ms to 322 ms per frame. That is a software
rasterizer, where triangle setup dominates and understates the win; the drop in
shader invocations is the transferable part.

Verified by loading the same project in this build and in a build of the parent
commit and comparing the canvas across three states - the default view, a
rotated camera, and a reduced layer range: pixel identical in all three. The
rotated case matters because the shader picks its corner offsets from the camera
direction. The only pixels that differ anywhere on screen are in the G-code text
panel, which prints a per-process object id that varies between any two runs.
2026-09-23 12:06:02 +08:00
9454ca7454 Add Prusa CORE One MMU3 profiles (#15757)
* Add Prusa CORE One MMU3 profiles

Dedicated MMU3 CoreOne profiles (like those used on prusaslicer 3).

Tested with latest coreone and mmu3 firmware, and works as well as prusaslicer.

Correct model default materials to reference compatible MMU3 filaments.

Co-authored-by: Codex <noreply@openai.com>

* Consolidate the CORE One MMU3 generic filaments

The bundle shipped two families covering the same four MMU3 variants for
each generic material: a standalone `Generic X @MMU3` and a
`Prusa Generic X @CORE One MMU3`. The `Prusa Generic` spelling was renamed
away from the rest of the tree, so re-name the CORE One-tuned family to
`Generic X @Prusa CORE One MMU3` (they inherit the CORE One tune and now the
shared generic product id) and drop the standalone files, which only carried
raw material-base values. Repoint the model default_materials and re-register
the index.

* Fix the CORE One MMU3 0.4 default process

default_print_profile named `0.20mm Speed @COREONE0.4 + MMU3`, but the
preset is `0.20mm SPEED @COREONE0.4 + MMU3`. Preset lookup is case-sensitive,
so the intended default never resolved and compatibility selection silently
picked another tier.

* Normalise the CORE One MMU3 process names

Match the bundle's all-caps quality ladder: `Fast Detail` -> `FAST DETAIL`,
`Speed` -> `SPEED`, `Structural` -> `STRUCTURAL`, `Balanced` -> `BALANCED`.
Filenames now equal their preset name, as every pre-existing Prusa process
file does, and the index is rebuilt for the renamed entries.

---------

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-23 11:50:17 +08:00
Ian Bassi e71497738f Configurable default G-code preview view type (#15769) 2026-09-22 20:50:59 -03:00
Ian BassiandRodrigo Faselli d820303a3f Improve preview colors (#15809)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-09-22 20:50:18 -03:00
peachismomo ccaafb3003 tests: cover WebMediaController lifecycle with wxWebView stub 2026-09-23 03:50:35 +08:00
peachismomo 7d4d8276a2 tests: add device manager integration coverage 2026-09-23 03:25:08 +08:00
Ian Chua 01fcd71aa3 Merge branch 'main' into feat/plugin-lifecycle-evts 2026-09-23 03:16:07 +08:00
peachismomo 9851874742 fix: fire PrintJobStarted only after preflight validation 2026-09-23 03:12:14 +08:00
peachismomo ff96cce7c3 fix: update lifecycle contract for printer connection 2026-09-23 03:09:03 +08:00
peachismomo c492436228 refactor: centralize printer compatibility checks 2026-09-23 03:06:15 +08:00
peachismomo 99a1cd1b74 chore: reduce diagnostic logging level to trace 2026-09-23 02:58:30 +08:00
peachismomo 4b41bf7f4f fix: clear webview document on stop 2026-09-23 02:57:56 +08:00
peachismomo d5962052ca fix: handle malformed printer progress values safely 2026-09-23 02:53:10 +08:00
peachismomo 4a4c649dbb fix: dispatch task lifecycle events on one worktre thread 2026-09-23 02:51:35 +08:00
peachismomo f1410c8cac feat: extend optional printer model warnings to calibration & ams workflows 2026-09-23 02:49:27 +08:00
peachismomo fb825acbd5 fix: use original project name 2026-09-23 02:46:44 +08:00
Kris Austin f83bfa17ff ci: keep older compiler cache entries when the save wrote nothing (#15828)
#15668 saves the compiler cache on cancelled and failed builds and then
drops the older entries for the leg on the ref. actions/cache/save only
warns when its tar fails, so a cancelled build whose ccache directory
was still being written saved nothing, the drop ran anyway and deleted
the leg's last good entry. The next run on main restored nothing and
compiled cold, and so did every PR that restored in the gap. Run
35405244634 (Flatpak x86_64, 2026-09-18) did this to
ccache-Flatpak-x86_64-35397824860-1; between 13 and 18 September 9 of
87 cancelled main build jobs did the same.

Look the new entry up before deleting anything, and keep the older ones
when it is not there.
2026-09-22 15:41:30 -03:00
peachismomo 7283a05040 fix: validate windows FFmpeg avformat library 2026-09-23 02:33:47 +08:00
peachismomo 24ddd81d7d feat: stop lifecycle dispatch after slicing cancellation 2026-09-23 02:31:46 +08:00
peachismomo 0fb8f3d487 fix: synchronize lifecycle hook shutdown with active dispatches 2026-09-23 02:14:56 +08:00
peachismomo c32c87863b test: cover printer agent default command dispatch 2026-09-23 01:54:23 +08:00
peachismomo 06f7016d6a fix: preserve printer agent defaults in PrinterAgentPluginCapabilityTrampoline 2026-09-23 01:53:56 +08:00
7ca2b9ad9c update FlyingBear Ghost7 0.4 nozzle.json, InfiMech EX 0.4 nozzle.json… (#15707)
update FlyingBear Ghost7 0.4 nozzle.json, InfiMech EX 0.4 nozzle.json, InfiMech EX+APS 0.4 nozzle.json

Co-authored-by: Flyingbear <adam@3dflyingbear.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
2026-09-23 01:46:05 +08:00
peachismomo be9ae6ffbf fix(tests): make omitted printer agent operations answer like a missing agent 2026-09-23 00:35:33 +08:00
226e95f734 feat(profiles): add Lulzbot Mini 1 (#15476)
Adds the LulzBot Mini 1 (single extruder, 0.5 mm nozzle, 2.85 mm filament)
to the existing Lulzbot vendor, which previously shipped only TAZ models.

Values are taken from LulzBot's own current slicer configuration
(github.com/lulzbot3d/CuraLE) rather than estimated:

  - geometry and custom g-code from resources/definitions/single_mini_mini_1.def.json
    and resources/gcodes/mini_1/{mini_1_start,mini_1_end}.gcode
  - filament temperatures and cooling from resources/materials/*.xml.fdm_material,
    overridden by resources/quality/single_mini/<material>/*.inst.cfg

The start g-code reproduces the Mini's nozzle wipe and four-washer G29 probe,
with the filament-type temperature conditionals used by the sibling TAZ profiles.

One deliberate departure from current CuraLE: the pre-wipe retract is 30 mm,
the value used by Cura LE 4.13.x, rather than the 4 mm current CuraLE uses.
The Mini probes by electrical contact between nozzle and washer, so the nozzle
must stay clean through the wipe and all four touches. At 4 mm the melt zone
stays full and can ooze onto a washer, which caused auto-levelling failures on
hardware; 30 mm empties it. The cost is a ~24 s purge at print start.

The three filament presets follow docs/HLSD/filament_id.md rule 4: a vendor
tuning a generic material inherits Generic X @System, keeps the Generic X base
name and declares no filament_id, so identity stays with OrcaFilamentLibrary.
Their compatible_printers is the Mini alone, disjoint from Generic X @Lulzbot
(TAZ only) as rule 3 requires. They exist because temperature is a filament-scope
setting, so LulzBot's values need printer-scoped presets. All six plate types
carry the same temperature, because the Mini has a single bed and curr_bed_type
can hold a stale value carried over from another printer.

Strictly additive: no existing profile is modified, so TAZ behaviour is
unchanged and no migration is required. Lulzbot.json is bumped to 02.04.00.05.

Verified with scripts/orca_profile_tool.py check and scripts/check_profile.sh
on the full tree (profile tool, system validation, slice, filament subtypes and
custom-preset fixtures all pass), by diffing sliced output against LulzBot's own
Cura LE g-code for the same model and filament (temps, retraction, speeds and
the full wipe/probe sequence match), and by printing a 3DBenchy on a Mini 1 over
OctoPrint.


Claude-Session: https://claude.ai/code/session_012aLyqsXB7FKqwQdE2QF7Et

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
2026-09-22 23:53:15 +08:00
SoftFever 37b3f9b0b5 Check preset names against the conventions during profile review 2026-09-22 23:21:04 +08:00
SoftFever 301f2ecba3 Reject a machine model name declared by two bundles
Preset::get_printer_type matches a preset's printer_model against every vendor's model names and returns the first hit, so two bundles declaring one name make the lookup order-dependent, and the Add Printer list shows the printer twice. The existing name check is per bundle, because base profiles share names across vendors by design; this one covers the global machine_model namespace and runs over the whole tree, like the setting_id and filament_id checks.
2026-09-22 22:15:36 +08:00
Ian Chua cda25c3715 refactor: connect_printer api and dialog 2026-09-22 21:54:10 +08:00
Ian Chua 2dcdfe2d32 fix: refresh token before configuring printer MQTT 2026-09-22 21:46:09 +08:00
Ian Chua 9e34ca536b fix: port BBL implementations from #15711 2026-09-22 21:11:03 +08:00
Ian Chua 201617a6c0 fix: guard DeviceManager command dispatch when no printer agent is bound 2026-09-22 21:09:58 +08:00
Ian Chua 2dcbee3d76 Merge branch 'main' into feat/printer-agent-infra 2026-09-22 20:55:29 +08:00
592a5ba777 Fix and rework Ultimaker profiles (#15383)
* Rework Ultimaker profiles

The Ultimaker profiles where not usable by default

* Fixes

* couple small fixes

* Rework Ultimaker profiles

The Ultimaker profiles where not usable by default

* Fixes

* couple small fixes

* Fixes

* fix errors

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 20:50:12 +08:00
jkuhl-devandSoftFever 346b44b24a Port over Prusament filament profiles for MK3/S and MK4/S from PrusaSlicer (#15336)
* Port over Prusament filament profiles for MK3 and MK4/S from PrusaSlicer

* fix errors

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 20:14:24 +08:00
WegerichandSoftFever f31e610b72 Ensure Snapmaker U1 filename respects filament selection (#15349)
Fixed bug to ensure filename format respects multi-extruder filament selection

Improved filename format to ensure that the selected filament is included in the filename and not the [0] filament

Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
2026-09-22 20:13:25 +08:00
Robert BakerandSoftFever bad4a4e66d Add file_start_gcode to Anker fdm_marlin_common.json (#15339)
This is needed for the AnkerMake M5 and M5c to have correct print time estimates. Fixes a random  super-long time on the M5 touchscreen.

Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
2026-09-22 20:08:26 +08:00
d5662b3e3c Fix buildplate asset references and refresh printer covers for some vendors (#15267)
* Anycubic Kobra 3 Max

* Update Anycubic Kobra S1 Max_cover.png

* Update Anycubic Kobra X_cover.png

* Update bbl-3dp-H2C.stl

* bbl

* creality

* Update creality_SPARKX_buildplate_model.stl

* creality sparkx

* ender3 v4

* Update Elegoo Centauri 2_cover.png

* Flashforge creator 5

* lh stinger

* Update Qidi.json

* Update Creality.json

* Update CoLiDo SR1_cover.png

* Update Cubicon xCeler-Mini_cover.png

* qidi xplus 5

* revert

* bump versions

---------

Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 20:00:13 +08:00
a84c323b28 Fix Raise3D Pro3/Pro3 Plus printable_area (single vs dual extruder) (#15243)
Fix incorrect printable_area for Raise3D Pro3 and Pro3 Plus profiles

All Raise3D Pro3/Pro3 Plus machine profiles (Left, Right, Dual) shared
the same 340x300 printable_area regardless of single vs dual extruder
use. This overstated single-extruder X travel by 40mm and failed to
shrink the Dual profile to the real nozzle-overlap zone.

Corrected to Raise3D's published build volume specs:
- Single extruder (Left/Right): 300 x 300 mm
- Dual extruder: 255 x 300 mm

printable_height (300 for Pro3, 605 for Pro3 Plus) and origin (0,0)
are unchanged; both were already correct.

Source: https://www.raise3d.com/pro3-series/

Co-authored-by: Jon Ashton <ashtonj@zentechman.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
2026-09-22 19:43:28 +08:00
d632843fca Creality K2 Plus Filament Profile Updates (#15237)
* Increase max volumetric speed for CR-ABS filament

* Update filament settings for CR-PETG profile

* Increase max volumetric speed from 16 to 18

* Increase max volumetric speed from 16 to 18

* Increase max volumetric speed for CR-PLA Matte

* Adjust filament temperature and speed settings

* Update filament settings for ENDER FAST PLA profile

* Modify pressure advance and filament load settings

* Adjust filament cost, speeds, and pressure advance

Updated filament settings for Hyper PETG @K2 Plus.

* Update filament cost and pressure advance values

* Increase max volumetric speed from 10 to 14

* Enable pressure advance in filament profile

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 19:36:25 +08:00
396a12064a profiles: add Anycubic Kobra 3 V2 support (#15229)
* profiles: add Anycubic Kobra 3 V2 support

* fix errors

---------

Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 19:30:49 +08:00
6183007c28 profile: Wondermaker - reorganize the ZR Ultra family and fix the Ultra S tool count (#15179)
* profile: reorganize the ZR Ultra family and fix the Ultra S tool count

- Adds a new fdm_ultra_common profile to hold all common ZR Ultra toolchanger attributes.
- The S variants are the base machines plus an enclosure heater and filtration, so each now inherits its matching ZR Ultra profile instead of duplicating the per-nozzle values
- Also fixes Ultra S 0.6 and 0.8 - original were declared a single nozzle_diameter entry, so OrcaSlicer treated four-tool machines as single-extruder.
- ZR Ultra S 0.8's retraction_minimum_travel now matches the base Ultra.
- nozzle_diameter stays declared on each S variant rather than inherited, even
  though the value is identical to its parent's. Several profile consumers read
  these files without resolving `inherits` -- the config wizard's loader and the
  web Profiles page among them -- and 1012 of the 1013 instantiated machine
  profiles in the tree declare it, so this is the format's expectation rather
  than redundancy. The same rule is enforced for filaments' compatible_printers
  by scripts/orca_extra_profile_check.py.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix errors

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-22 19:03:25 +08:00
Kiss Lorand b23953d7cf Fix missing runtime DLLs in Windows Install target (#15791)
fix: install all Windows runtime DLLs

Keep the runtime DLL list local while it is assembled.

The previous PARENT_SCOPE assignment exported the initial list before the OCCT DLLs were appended. CMake then created a local list containing only the appended OCCT entries, causing the generated Install manifest to omit GMP, MPFR, WebView2, FreeType, and FFmpeg DLLs.

Export the completed list only after all runtime DLLs have been added.
2026-09-22 07:37:35 -03:00
cfc6be5001 Eryone (#14797)
* add eryone config

* add eryone config

* add eryone config

* Add 13 Eryone filament presets for the Thinker X400 0.4 nozzle

Rework the stale author branch onto the current Eryone bundle. Main already ships
the Thinker X400, so the duplicate "Eryone Thinker X400" machine and process family
from the branch is dropped and the new filaments are pinned to the existing
"Thinker X400 0.4 nozzle" variant. Hand-typed setting_id/filament_id values are
replaced with generated ones, the bundle version is bumped, the stray .info sidecars
are removed, and Eryone PETG-CF's filament_settings_id is corrected to match its name.

* fix errors

---------

Co-authored-by: Eryone <technical@eryone.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
2026-09-22 18:36:08 +08:00
Ian Chua 6c353d9596 feat: add ssl compatibility with moonrakerprinteragent 2026-09-22 18:30:30 +08:00
HanifKoh 19e094a1d1 Move the Cube with the Wipe Tower in the Profile Validator (#15799)
The slice check centres its cube on the bed, puts the prime tower beside
it, then pulls the tower alone inside the printable outline. On a bed too
narrow for the estimated footprint that pull drags the tower back over
the cube: Volumic EXO42 IDRE MIRROR MODE (189 mm wide, 87.6 mm estimate)
logged "gcode path conflicts found between WipeTower and cube" in every
run, and three ~105 mm beds were left with 0.15 to 3.3 mm of clearance.

The cube and the tower's footprint are now pulled inside as one rigid
pair, so the clearance between them is fixed by construction. A bed too
small for the pair keeps the old placement, and presets that were never
clamped keep their exact layout.
2026-09-22 18:22:42 +08:00
Lam Wei Lun a2c631753b Capitalize Open Speed Dial menu title (#15822) 2026-09-22 17:37:34 +08:00
Lam Wei Lun 29b9076440 Capitalize Open Speed Dial 2026-09-22 17:07:13 +08:00
Ian Chua 323cd3afe1 Keep Python Printer Agent Exceptions Out of the Host (#15819)
# Description
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

A Python printer agent plugin could take the host down, and one of its
operations could never report its result. This PR fixes both in
`PrinterAgentPluginCapabilityTrampoline.hpp`.

## Changes

### A faulty printer agent no longer throws into the GUI

`IPrinterAgent` reports failure through return values, and none of its
callers catch. A Python `raise`, a missing override or a wrongly typed
return from a printer agent plugin therefore escaped the trampoline as a
C++ exception.

Every trampoline operation now catches, logs `Printer agent plugin
'<key>': <operation> failed: <error>`, and answers with what
`NetworkAgent` returns when no printer agent is set. `BBLPrinterAgent`
returns the same values when the Bambu plug-in is unavailable:

- `-1` for every `int` status code
- `false` for `start_discovery` and `fetch_filament_info`
- `""` for `get_user_selected_machine`
- an empty `AgentInfo` for `get_agent_info` (registration already
rejects an empty agent ID)
- `FilamentSyncMode::none` for `get_filament_sync_mode`

`ORCA_PY_AGENT_OVERRIDE(ret, name, ...)` derives the fallback from the
return type through `printer_agent_failure<ret>()`, so the call sites
carry no fallback values of their own.

An exception is the safety net for plugin bugs, not an error channel. A
plugin reports an expected failure by returning a code, as the Bambu
plug-in does. A raise is logged as a failure and collapses to the
generic `-1`, so the GUI shows the generic message instead of the
specific one (`-18` cancelled, `-4020` FTP upload failed, …).

### `bind_detect` results now reach the host

`detect` is an out-parameter (`detectResult&`). pybind11 casts a
reference argument to an override with a copy, so a plugin that filled
in `detect` wrote to a throwaway object and the host always saw an empty
`detectResult`. It is now passed so that Python edits the caller's
struct. Plugins see the same `DetectResult` argument as before.

## TODO

- Expose the `BAMBU_NETWORK_*` return codes to Python (the
`orca.printer_agent` binding and the generated stub from
`scripts/generate_orca_python_stubs.py`). Plugins can already return
them, but only as hard-coded numbers.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->

- New `tests/slic3rutils/test_plugin_printer_agent.cpp`: an agent whose
operations raise, one that omits them, and one that returns the wrong
type all answer like a missing agent, and the interpreter stays usable.
A working agent's answers reach the host unchanged, including
`request_bind_ticket`'s out-param and the fields a plugin writes into
`bind_detect`'s `detect`.
- The `bind_detect` check failed before the fix (`"" == "192.168.0.2"`)
and passes after.
- `slic3rutils` passes under `ctest` (144/144); full Release build clean
on Linux.
- End to end on Linux with a test plugin whose chosen operations raise
(`start_discovery`, `get_filament_sync_mode`, `disconnect_printer`):
selecting the plugin's agent in the printer preset and switching back
logged each raise as a `Printer agent plugin '…': <operation> failed`
line, and the app kept running and closed cleanly (exit 0). Without the
guard, the first raise (`start_discovery`, on selecting the agent) ended
the app with `Uncaught exception` and SIGABRT (exit 134); that run used
a build whose printer-agent files are identical to `main`.

<!--
> A guide for users on how to download the artifacts from this PR.
-->

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-09-22 16:57:55 +08:00
Ian Chua ce0c759ded fix: snapmakerprinteragent use moonraker's lifecycle-owned command worker 2026-09-22 16:06:18 +08:00
Ian Chua 9a7e925790 fix: re-implement missing commands on BBLPrinterAgent 2026-09-22 15:49:22 +08:00
Hanif Koh 57b3a040e2 Pass bind_detect's Result to Python by Reference
pybind11 copies a reference argument to an override, so a Python
printer agent that filled in detect wrote to a throwaway object and the
host always saw an empty detectResult. Pass it as a pointer so Python
edits the caller's struct.
2026-09-22 14:55:18 +08:00
Hanif Koh fd9c1218a4 Keep Python Printer Agent Exceptions Out of the Host
IPrinterAgent callers do not catch, so a Python raise, a missing
override or a wrongly typed return from a printer agent plugin escaped
into the GUI. Each trampoline operation now logs the failure and
answers with NetworkAgent's no-agent value: -1 for status codes, the
empty value otherwise.
2026-09-22 14:35:14 +08:00
Ian Chua 3124943292 Merge branch 'main' into feat/plugin-lifecycle-evts 2026-09-22 14:22:16 +08:00
Ian Chua 8240984ca8 Merge branch 'main' into feat/plugin-lifecycle-evts 2026-09-22 14:21:36 +08:00
Ian Chua f27b0a1f9d Merge branch main into feat/printer-agent-infra 2026-09-22 12:11:40 +08:00
Ian Chua cf1c164546 feat: add printer-agent.md doc to HLSD 2026-09-21 18:40:24 +08:00
Ian Chua d9f1f8b207 fix: camera signaling API 2026-09-21 16:19:31 +08:00
Ian Chua a096e1ab8c Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-21 16:02:11 +08:00
Ian Chua bca8dd00dd Merge branch 'feat/printer-agent-infra' of https://github.com/OrcaSlicer/OrcaSlicer into feat/printer-agent-infra 2026-09-21 15:45:49 +08:00
Ian Chua 8b7f8cac82 fix: follow external-packages for flatpak libdatachannel deps & add flatpak path to use source_dir 2026-09-21 15:45:39 +08:00
Ian Chua aae03257ed Merge branch 'main' into feat/printer-agent-infra 2026-09-21 11:54:23 +08:00
Ian Chua 3fba237c9a fix: shift camera signaling channel to network agent 2026-09-21 11:48:16 +08:00
Ian Chua cfb6349695 fix: update printer agent plugin API 2026-09-21 11:46:36 +08:00
Ian Chua f53ad6993a fix: update windows ffmpeg prebuild 2026-09-21 11:02:20 +08:00
Ian Chua ce41b5a3cb fix: stale audit mode on_lifecycle_event 2026-09-18 22:33:46 +08:00
peachismomo 91c6d1d3d5 Merge branch 'feat/printer-agent-impl' of https://github.com/OrcaSlicer/OrcaSlicer into feat/printer-agent-impl 2026-09-18 22:31:37 +08:00
peachismomo b91f48141d fix: load windows roots for cloud MQTT and camera signaling 2026-09-18 22:31:25 +08:00
Ian Chua e168d900f2 fix: stop flatpak DataChannel build from re-cloning over the sandboxed network 2026-09-18 22:10:30 +08:00
Ian Chua 8fd93907fd Merge branch 'main' into feat/plugin-lifecycle-evts 2026-09-18 21:35:09 +08:00
Ian Chua 467e249b3d Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-18 20:46:18 +08:00
Ian Chua bc03e3be2f fix: bump libdatachannel ver & update flatpak to use tar instead 2026-09-18 20:45:29 +08:00
Ian Chua 5287fd0160 fix: swtich start print command from http to mqtt command 2026-09-18 15:59:57 +08:00
Ian Chua c441fd2fa4 Merge branch feat/printer-agent-infra into feat/printer-agent-impl 2026-09-18 15:59:25 +08:00
Ian Chua f224b8e4a6 refactor: media controller playback routing and ownership 2026-09-18 13:36:46 +08:00
Ian Chua 8b479c9af3 fix: default impl for vendor agnostic gcode commansd 2026-09-17 18:46:56 +08:00
Ian Chua d8299c388e fix: regression bug, connecting to bambu needs bblp username 2026-09-17 18:44:54 +08:00
Ian Chua 771d455d12 Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-17 16:33:38 +08:00
Ian Chua a7ab01b815 fix: remove unimplemented pure virtual functions 2026-09-17 16:33:11 +08:00
Ian Chua 4d85b6627e fix: wrap command_* with small wrapper 2026-09-17 12:51:17 +08:00
Ian Chua 38e35dbff4 Merge branch 'feat/printer-agent-infra' into feat/printer-agent-impl 2026-09-16 22:59:22 +08:00
Ian Chua dcddb9283c fix: updated stale docs 2026-09-16 22:54:54 +08:00
Ian Chua ba9cf6e897 Revert "fix: latent ams in use bug"
This reverts commit 910dbcd2e6.
2026-09-16 22:54:54 +08:00
Ian Chua d1f2ecb903 feat: restore printer agent implementations 2026-09-16 22:54:46 +08:00
Ian Chua ee2b4ccf70 Merge branch 'main' into feat/printer-agent-infra 2026-09-16 22:32:32 +08:00
Ian Chua 753c793ea0 revert: filament sync work 2026-09-16 22:20:35 +08:00
Ian Chua 9c5494b19f fix: disable unused DataChannel media support 2026-09-16 22:08:53 +08:00
Ian Chua 93a119427a Merge branch main into feat/printer-agent-infra 2026-09-16 22:06:09 +08:00
Ian Chua d264fcaef4 fix: always build bundled DataChannel dep 2026-09-16 22:04:27 +08:00
Ian Chua b4ab6dedfd fix: move printer agent plugin tests into test_plugin_lifecycle.cpp 2026-09-16 21:33:04 +08:00
Ian Chua ed59f93456 fix: scope get_my_machine_list to printers listed under the current printer agent 2026-09-16 19:48:59 +08:00
Ian Chua cf52c81dcd fix: stop the correct media controller 2026-09-16 18:44:06 +08:00
Ian Chua 803a2a3239 fix: dedupe compatible printer type check 2026-09-16 17:18:59 +08:00
Ian Chua 985092bb46 fix: move non-mandatory printer agent function stubs to IPrinterAgent 2026-09-16 16:56:43 +08:00
Ian Chua cb16a2e547 feat: enable https camera stream mode 2026-09-16 16:24:29 +08:00
Ian Chua 2c2e91b629 fix: remove hardcoded ICE servers 2026-09-16 14:36:49 +08:00
Ian Chua c3faf903ca fix: use ORCA_CLOUD_PROVIDER instead of hardcoded string 2026-09-16 14:24:40 +08:00
Ian Chua 5f3c957597 fix: remove stale comment 2026-09-16 14:23:00 +08:00
Ian Chua 8557285389 fix: revert moonraker specific behavior 2026-09-16 14:21:09 +08:00
Ian Chua a9edab78a8 fix: inject provider, agent id and generation to get_user_print_info to ensure correct metadata 2026-09-16 14:15:24 +08:00
Ian Chua 79dede7d59 fix: change rtc log level 2026-09-16 14:14:21 +08:00
Ian Chua 2ac45b2f78 fix: invoke js clearInterval on WebMediaController::stop 2026-09-16 14:13:37 +08:00
Ian Chua b4f33e71e9 fix: add internal_developer_mode chekc back to MediaPlayCtrl::load() 2026-09-16 14:12:48 +08:00
Ian Chua 8c91cab971 fix(ci): add libdatachannel to flatpak manifest 2026-09-15 20:01:48 +08:00
Ian Chua 79077518e9 fix: re-include apply header guarded by ifdef __APPLE__ 2026-09-15 19:45:14 +08:00
Ian Chua 56aa348c89 fix(ci): set depends openssl 2026-09-15 18:16:50 +08:00
Lam Wei Lun ae1752fbf2 Resolve printer agent first before getting cloud printer agent 2026-09-15 18:02:02 +08:00
Ian Chua cf3f36a1c6 Merge branch 'feat/printer-agent-infra' of https://github.com/OrcaSlicer/OrcaSlicer into feat/printer-agent-infra 2026-09-15 17:37:57 +08:00
Ian Chua cca7d8adb1 fix(ci): deps build order for datachannel 2026-09-15 17:35:25 +08:00
Ian Chua 396d9ff51a Merge branch 'main' into feat/printer-agent-infra 2026-09-15 16:47:15 +08:00
Ian Chua 81540c81e0 Merge branch 'feat/printer-agent-infra' of https://github.com/OrcaSlicer/OrcaSlicer into feat/printer-agent-infra 2026-09-15 16:46:38 +08:00
Ian Chua e7ace6cc99 fix: unit tests & unused variables 2026-09-15 16:46:28 +08:00
Lam Wei Lun 79c20a1fad Guard libdatachannel. Remove unused code 2026-09-15 16:33:12 +08:00
Ian Chua e48f9f47d2 Revert "fix: parameterize orcaslicer_copy_test_dlls() for printer_agent_plugin_tests"
This reverts commit 2f566e3779.
2026-09-15 16:12:33 +08:00
Ian Chua 2f566e3779 fix: parameterize orcaslicer_copy_test_dlls() for printer_agent_plugin_tests 2026-09-15 16:08:10 +08:00
Ian Chua 37d1edf69a fix: printer agent virutal optional functions 2026-09-15 15:54:55 +08:00
Lam Wei Lun f1cf9c69b1 Log first before std::move 2026-09-15 15:49:15 +08:00
Lam Wei Lun 1df362888e Fixes nullptr deref 2026-09-15 15:47:48 +08:00
Ian Chua 4b2466b179 fix: uninitialized ams state blocking print 2026-09-15 14:40:04 +08:00
Ian Chua 3adcb3e953 fix: split infra from impl 2026-09-15 13:27:17 +08:00
Ian Chua 104dbb2140 fix: camera auto-play on startup 2026-09-14 16:17:17 +08:00
Ian Chua e482cbbdd7 fix: warnings 2026-09-14 14:56:34 +08:00
Ian Chua 2a5ddd9edb fix: warnings 2026-09-14 14:16:02 +08:00
Ian Chua c10f83cf61 Merge branch 'main' into feat/printer-agent-impl 2026-09-14 13:01:03 +08:00
Ian Chua 8eeec6935e Merge branch 'main' of https://github.com/OrcaSlicer/OrcaSlicer_priv into feat/printer-agent-impl 2026-09-14 12:53:04 +08:00
Ian Chua 131a2abf99 Merge pull request #138 from OrcaSlicer/feat/orca-printer-agent
feat: orca printer agent
2026-09-14 12:14:53 +08:00
peachismomo 9daecc59b4 temp: doc for intended change 2026-09-12 02:32:01 +08:00
peachismomo 58e000d842 feat: cloud download via HTTP 2026-09-12 02:31:27 +08:00
Ian Chua af6be5858e fix: cloud printers were using the wrong MQTT endpoint 2026-09-11 17:38:56 +08:00
Ian Chua 3fc7fd99d6 fix: shim layer for any compatibiliity changes 2026-09-10 21:55:31 +08:00
Ian Chua 3fe043651b fix: moonraker printer agent hang on printer power cut 2026-09-09 18:40:01 +08:00
Ian Chua b0b78c296c feat: check printer storage status before sending 2026-09-09 18:35:38 +08:00
Ian Chua 62791fabfa fix: revert sdcard check 2026-09-09 14:10:12 +08:00
Ian Chua b0ada2dee5 fix: ffmpeg http camera stream jittering due to incomplete frames 2026-09-09 13:40:51 +08:00
Ian Chua 8f4df1aa8c fix: model_id resolution method for non bambu printers 2026-09-09 13:40:24 +08:00
Ian Chua 5fec9b8d19 Merge pull request #139 from OrcaSlicer/feat/webrtc-impl
feat: webrtc implementation
2026-09-08 19:37:31 +08:00
Ian Chua 75ed5afbac Merge branch 'feat/orca-printer-agent' into feat/webrtc-impl 2026-09-08 19:31:14 +08:00
Ian Chua 01c553bad9 feat: LAN impl for Orca Printer Agent 2026-09-08 19:13:48 +08:00
Ian Chua a4376c77c3 Merge branch 'feat/orca-printer-agent' of https://github.com/OrcaSlicer/OrcaSlicer_priv into feat/orca-printer-agent 2026-09-08 12:06:25 +08:00
peachismomo c459994290 fix: connect via ip dialog 2026-09-08 04:40:12 +08:00
Ian Chua 3a0fda7d18 fix: make model_id/dev_type optional instead of blocking 2026-09-07 17:28:40 +08:00
Ian Chua eb8733f0f4 Merge branch 'feat/orca-printer-agent' into feat/webrtc-impl 2026-09-04 18:28:48 +08:00
Ian Chua 55acb940a8 Merge branch 'feat/printer-agent-impl' into feat/orca-printer-agent 2026-09-04 18:28:25 +08:00
Ian Chua 0d691403de Merge branch 'main' into feat/printer-agent-impl 2026-09-04 18:26:58 +08:00
Ian Chua 9b2b75a51d Merge branch 'feat/orca-printer-agent' into feat/webrtc-impl 2026-09-04 18:23:26 +08:00
Ian Chua 25da273ea0 Merge pull request #142 from OrcaSlicer/fix/orca-printer-agent-refactor
fix: orcaprinteragent refactor
2026-09-04 18:05:27 +08:00
Ian Chua dbcb82075f feat: use ffmpeg to render http camera stream 2026-09-04 16:42:36 +08:00
Ian Chua 2f82cfe40f fix: LAN paths and camera stream 2026-09-04 16:18:43 +08:00
Ian Chua 972031cf06 fix: orcaprinteragent refactor 2026-09-03 19:42:25 +08:00
Ian Chua 2a4792e762 feat: remove frame assembler and change config to set protocol 2026-09-02 15:59:13 +08:00
Ian Chua dd15ac6146 fix: cmake 2026-09-02 11:51:40 +08:00
Ian Chua b0469254bc Merge branch 'feat/orca-printer-agent' into feat/webrtc-impl 2026-09-01 19:24:04 +08:00
Ian Chua 2228589e16 Merge branch 'feat/printer-agent-impl' into feat/orca-printer-agent 2026-09-01 19:23:47 +08:00
Ian Chua 4d8480e1a1 fix: build 2026-09-01 19:21:23 +08:00
Ian Chua 4320cc78d9 feat: camera via webrtc 2026-09-01 18:59:20 +08:00
Ian Chua d9d9678a7e Merge branch 'feat/orca-printer-agent' into feat/webrtc-impl 2026-09-01 18:38:01 +08:00
Ian Chua d55a0bfec6 fix: build errors 2026-09-01 18:37:04 +08:00
Ian Chua 3b1017df51 Merge branch 'feat/orca-printer-agent' of https://github.com/OrcaSlicer/OrcaSlicer_priv into feat/orca-printer-agent 2026-09-01 18:17:23 +08:00
Ian Chua f5b81d2ffc Merge branch 'feat/webrtc-impl' of https://github.com/OrcaSlicer/OrcaSlicer_priv into feat/webrtc-impl 2026-09-01 18:16:20 +08:00
Ian Chua eb9cfe0ecb feat: connect to cloud printer and monitor 2026-09-01 18:15:53 +08:00
Ian Chua 1e8805d43d feat: connect to cloud printer and monitor 2026-09-01 18:15:53 +08:00
Ian Chua e8f089dfa4 fix: build & access code UI 2026-09-01 18:13:11 +08:00
Ian Chua 84e929ea24 feat: generic camera stream support for http snapshot and rtsp 2026-09-01 18:13:11 +08:00
Ian Chua abec603e73 fix: build & access code UI 2026-09-01 18:04:37 +08:00
Ian Chua 0ed19d4826 feat: generic camera stream support for http snapshot and rtsp 2026-09-01 18:02:53 +08:00
Ian Chua b747c13ef4 Merge branch 'feat/orca-printer-agent' of https://github.com/OrcaSlicer/OrcaSlicer_priv into feat/orca-printer-agent 2026-09-01 17:40:07 +08:00
Ian Chua 6a12aca495 feat: connect to cloud printer and monitor 2026-09-01 17:38:52 +08:00
Ian Chua d486db6459 Merge branch 'main' into feat/printer-agent-impl 2026-09-01 16:51:34 +08:00
Ian Chua fe777b8801 feat: printer agent impl 2026-09-01 16:49:04 +08:00
Ian Chua 1b3e206f34 feat: connect to cloud printer and monitor 2026-08-28 18:10:31 +08:00
Ian Chua 4df1607ec4 fix: clear up some unrelated changes 2026-08-28 16:45:01 +08:00
Ian Chua a0ec8bec8a fix: merge artifact 2026-08-27 15:08:06 +08:00
Ian Chua 36c362cbd2 Merge branch 'main' into feat/printer-agent-impl 2026-08-27 14:54:22 +08:00
Ian Chua 84fde32616 Merge branch 'main' into refactor/printer-agent-interface 2026-08-27 14:52:50 +08:00
Ian Chua 34e349e323 fix: snapmaker U1 SelectMachineDialog blocking print 2026-08-27 14:47:09 +08:00
Ian Chua 44941e571f fix: remove unused variable 2026-08-26 18:40:48 +08:00
Ian Chua 876d6e2499 fix: printer agent switching on preset change 2026-08-26 18:40:47 +08:00
SoftFever 8056b32450 Merge branch 'main' into feat/plugin-lifecycle-evts 2026-08-26 14:43:41 +08:00
Ian Chua 858b3024ff fix: tests 2026-08-26 12:04:02 +08:00
Ian Chua 6595557c34 fix: access codes regression 2026-08-25 18:32:02 +08:00
Ian Chua c729849843 cleanup moonraker and snapmaker printer agents 2026-08-25 16:39:08 +08:00
Ian Chua fabd08af1e update GCodeExport to use model id for ctx.name 2026-08-25 15:59:17 +08:00
Ian Chua 33a8265a11 fix: slicer regression test 2026-08-25 15:37:15 +08:00
Ian Chua c0563be36e Merge branch 'feat/printer-agent-impl' of https://github.com/OrcaSlicer/OrcaSlicer into feat/printer-agent-impl 2026-08-25 14:47:12 +08:00
Ian Chua 462f8dce30 fix: remote do_fetch_filament_info from tests 2026-08-25 14:46:11 +08:00
Ian Chua b2a0485139 fix: defer filesystem and camera abstractions 2026-08-25 14:34:11 +08:00
Ian Chua f16071f083 fix: remove heavy includes from IPrinterAgent 2026-08-25 13:54:40 +08:00
Ian Chua a1505e9bed Merge branch 'main' into refactor/printer-agent-interface 2026-08-25 13:50:25 +08:00
Ian Chua d96682a798 Merge branch 'main' into feat/plugin-lifecycle-evts 2026-08-25 13:50:00 +08:00
Ian Chua 8e48312b1f Merge branch 'main' into feat/printer-agent-impl 2026-08-25 13:47:11 +08:00
Ian Chua 64d04a75f3 feat: additional events 2026-08-24 11:36:37 +08:00
Ian Chua ba7fdb8ceb Merge branch 'main' into feat/printer-agent-impl 2026-08-21 14:17:56 +08:00
Ian Chua 8be9800567 remove irrelevant docs 2026-08-21 14:16:49 +08:00
Ian Chua c4eabc3c52 fix: extend access code requirements t 0, 8 or more characters. 2026-08-21 14:14:23 +08:00
Ian Chua 0d0d281d0c feat: parse nozzle information for qidi and moonraker printer agents 2026-08-20 20:11:31 +08:00
Ian Chua c4bbcd322b fix: skip filament sync dialog if filamentSyncMode is none 2026-08-20 19:28:02 +08:00
Ian Chua 7aea1b1235 Merge branch 'main' into feat/printer-agent-impl 2026-08-20 16:39:54 +08:00
Ian Chua 41c16436bf Merge branch 'main' into refactor/printer-agent-interface 2026-08-20 16:09:10 +08:00
Ian Chua bf22ef2a82 Merge branch 'main' into feat/plugin-lifecycle-evts 2026-08-20 12:21:50 +08:00
Ian Chua 2bbb229c91 Merge branch 'main' into refactor/printer-agent-interface 2026-08-19 23:30:22 +08:00
Ian Chua dfd3444ae7 feat: initial draft of lifecycle events API for plugins 2026-08-19 19:20:31 +08:00
Ian Chua c2a43157d2 Merge branch 'main' into feat/printer-agent-impl 2026-08-19 18:29:36 +08:00
Ian Chua 738b30a743 fix: ams sync info and periodic ams sync via subscription workflow 2026-08-19 18:29:19 +08:00
Ian Chua 6e6ffe13f8 Merge branch 'refactor/printer-agent-interface' of https://github.com/OrcaSlicer/OrcaSlicer into refactor/printer-agent-interface 2026-08-19 17:11:14 +08:00
Ian Chua eb96d127b0 fix: resolve stubgen byte header conflict 2026-08-19 17:11:10 +08:00
SoftFever 60421c33f4 Merge branch 'main' into refactor/printer-agent-interface 2026-08-19 14:32:42 +08:00
SoftFever 300c4b8afb Merge branch 'main' into refactor/printer-agent-interface 2026-08-18 20:44:56 +08:00
Ian Chua 96092ef2d3 feat: update qidi to use subscription based filament sync mode 2026-08-18 19:05:17 +08:00
Ian Chua d9002ad87d fix: ams filament mapping workflow 2026-08-18 18:07:22 +08:00
Ian Chua 4c1ea0a602 Merge branch 'main' into 'feat/printer-agent-impl' 2026-08-17 14:51:04 +08:00
Ian Chua 9415812d85 Merge branch 'main' into refactor/printer-agent-interface 2026-08-17 14:24:23 +08:00
Ian Chua d3c728557e Merge 'main' into 'refactor/printer-agent-interface' 2026-08-17 14:24:05 +08:00
Ian Chua 6558c52849 revert file transfer abstraction 2026-08-17 14:19:41 +08:00
Ian Chua a34d056de2 specify api for getting file transfer url 2026-08-14 15:31:42 +08:00
Ian Chua 7ba5718be6 fix: remove redundant cache 2026-08-12 18:41:51 +08:00
Ian Chua c1163ce7e5 Merge branch 'refactor/printer-agent-interface' of https://github.com/OrcaSlicer/OrcaSlicer into refactor/printer-agent-interface 2026-08-12 15:29:56 +08:00
Ian Chua da187eaaf9 fix callback error 2026-08-12 15:29:50 +08:00
Ian Chua de0268ce86 Merge branch 'main' into refactor/printer-agent-interface 2026-08-12 15:28:53 +08:00
Ian Chua 108923bdaa fix: default impl 2026-08-12 14:02:04 +08:00
Ian Chua 44793f7a21 remove unused 2026-08-12 13:51:54 +08:00
Ian Chua 7cb1805272 refactor: push bbl workflows to bbl printer agent 2026-08-12 13:50:47 +08:00
Ian Chua d5c528b7c7 Merge branch 'refactor/printer-agent-interface' of https://github.com/OrcaSlicer/OrcaSlicer into refactor/printer-agent-interface 2026-08-11 15:00:42 +08:00
Ian Chua 742cb712d8 refactor: abstract bambu specific protocol to printer agent 2026-08-11 15:00:34 +08:00
Ian Chua fd1c5d826c Merge branch 'main' into refactor/printer-agent-interface 2026-08-07 18:37:56 +08:00
Ian Chua 58be7f4861 feat: abstract remaining gcode commands in devicemanager 2026-08-07 18:36:38 +08:00
Ian Chua 4031b00915 Merge branch 'main' into refactor/printer-agent-interface 2026-08-06 16:27:57 +08:00
Ian Chua 07c62112b8 Reconcile implementation split with PR tip 2026-08-04 18:12:51 +08:00
Ian Chua f23e4963bf fix: merge access codes into one 2026-08-04 18:12:43 +08:00
Andrew 95279f7084 docs: document the printer-agent subsystem 2026-08-04 18:12:43 +08:00
Andrew 1014558c91 Keep printer-agent progress in sync
Keep the shared task progress aligned with agent
reports that lack Bambu cloud task identity.

Release the lazily allocated task during reset to
avoid leaks when machine objects reconnect.
2026-08-04 18:12:42 +08:00
Andrew 6515062a3a fix: stop Qidi slot parse throwing on null 2026-08-04 18:12:42 +08:00
Andrew 8153e26b6d fix: start stream when camera URL changes 2026-08-04 18:12:42 +08:00
Andrew 79fd33d49a Show Snapmaker U1 camera in Device tab
The U1 exposes no /server/webcams/list entry;
its camera only captures after an explicit
camera.start_monitor RPC, which the Moonraker
websocket executes unauthenticated but only
answers over MQTT - so the call is fire and
forget.

Start the camera when the camera view is
shown and renew every 300 s: the printer
retires the capture task at ~362 s and
stop_monitor is accepted but ineffective,
so teardown is simply to stop renewing.

Frames land in monitor.jpg as still JPEGs
(~2 fps at interval 0), so the webview loads
a local HTML wrapper that repolls with a
cache buster.
2026-08-04 18:12:41 +08:00
Andrew cdb662d4b2 Move Moonraker commands off the UI thread
Pause/resume/stop, g-code sends, temps, and
light ran synchronous HTTP on the UI thread,
freezing the app up to 10s per click on slow
or unreachable printers.

Run them on a single agent-owned FIFO worker
so g-code ordering is preserved, while command
translation stays synchronous so unsupported-
command dialogs still work.

Add a pending-disabled state to the pause,
resume, and abort buttons for Moonraker-family
printers: the icon only flips once the
WebSocket reports the real state, which also
rules out double-click races.
2026-08-04 18:12:41 +08:00
Andrew a27fa7b5df Fix multi-color filament logic
Reuse color decoding across functions to improve
code readability and maintain consistency in
multi-color filament handling.
2026-08-04 18:12:40 +08:00
Andrew cdeed107c5 Keep Bambu AMS dialect out of the agent waist
M620 is Bambu firmware dialect, not a
neutral command. Composing it in
MachineObject let non-Bambu agents
(Moonraker/Klipper) forward it and
report success on firmware that
cannot run it.

Agents now own the dialect: the
default refusal on IPrinterAgent
returns not-supported so the UI
can say so; BBLPrinterAgent keeps
the byte-identical composition.
2026-08-04 18:12:40 +08:00
Andrew be92f7e78c Surface Moonraker webcams and gate unrunnable controls 2026-08-04 18:12:39 +08:00
Andrew 76f9de4cfb fix: make Klipper macro lamp control reliable 2026-08-04 18:12:39 +08:00
Andrew cd6d2cbf5e Stop blocking print on unreported nozzle data 2026-08-04 18:12:39 +08:00
Andrew deaca0189f Bring Moonraker device panel to feature parity
The monitor panel showed wrong or missing
data for Moonraker printers, and its
controls did nothing.

Push payload now carries layer number and
total layers. Remaining time replaces the
wrong total_duration - print_duration
formula. The chamber light toggle maps to
Klipper SET_PIN / SET_LED, and pause,
resume and stop post to
/printer/print/{action}. Task thumbnails
resolve via /server/files/thumbnails onto
a new MachineObject thumbnail url.

Filament sync switches to pull mode so the
agent is queried on demand.

Not compiled or run.
2026-08-04 18:12:38 +08:00
Andrew 7d54ee286d fix: pin HTTP to prevent connection refusal
Set `use_ssl` to false to ensure Moonraker
connectivity, as the service uses HTTP rather
than HTTPS, preventing connection issues. Initialize
device info early for reliable name resolution.
2026-08-04 18:12:38 +08:00
Andrew dddfc7a8ad Add printer-agent and plugin status tests
Ports the agent lifecycle, duplicate
agent-id, built-in-id clash and
status-resolution tests. The loader
runs on a detached worker thread, so
the lifecycle tests live in their own
executable. Tests install the
production unload-side registry
wiring themselves (no GUI in the
test binary) and register agents
manually so concurrent loads stay
deterministic.
2026-08-04 18:12:37 +08:00
Andrew 673bfb0dee Track BBLPrinterAgentPlugin.py 2026-08-04 18:12:37 +08:00
Andrew b9e8c5a38c Gate agent mode behind use_printer_agents toggle
Replace per-printer auto-activation
(is_current_printer_agent_plugin)
with a global experimental AppConfig
toggle, default off: legacy
print-host behavior is unchanged
until the user opts in. The toggle
drives device-tab routing, print
button defaults, connect-button
visibility and sidebar layout, and
dedups machine-select dialog opens.
2026-08-04 18:12:36 +08:00
Andrew a2a4ca20e4 Reset device selection on agent swap or unload (#124)
set_live_printer_agent centralizes
the swap: deselect the machine,
clear stale sidebar state and the
previous agent's Other Devices, then
install the new agent (or null when
its provider vanished). Plugin
load/unload callbacks refresh the
dropdown and re-run agent selection.
load_last_machine no longer falls
back to the first available machine.
2026-08-04 18:12:36 +08:00
Andrew 12075459d2 Replace fake-enum printer agent dropdown (#121)
A dedicated PrinterAgentChoice field
reads rows straight from the live
agent registry and stores the agent
id string, replacing the fake-coEnum
index mapping. The field moves to
TabPrinter and registers with the
searcher so UnsavedChanges renders
it; the PhysicalPrinterDialog copy
and its update hook are removed
(#125). switch_printer_agent now
resolves ids via
resolve_printer_agent_id.
2026-08-04 18:12:36 +08:00
Andrew f3770f3106 fix: checkbox should depend on plugin is_loaded status 2026-08-04 18:12:35 +08:00
Andrew 90fbf1770f Resolve duplicate agent ID conflicts
Reject a printer-agent capability
whose agent ID is already owned by
another capability or built-in:
flag the plugin error, disable the
capability, and warn the user
instead of silently ignoring it.
2026-08-04 18:12:35 +08:00
Andrew bde94ab37f Add support for runtime error status in plugins
Distinguish a loaded plugin whose
capability errored (RuntimeError,
warn-styled, stays checked) from a
load-time Error. Status now derives
via resolve_plugin_status(); enum
ordinal keeps dialog sort priority.
Unloading clears stale errors.
2026-08-04 18:12:34 +08:00
Ian Chua 6d25e1777e Working Moonraker and Qidi printer agent transport (#104)
Folds the Qidi AMS box-mapping print
overrides (apply_box_mapping +
start_* wrappers) that the transport
fix builds on.
2026-08-04 18:12:34 +08:00
Andrew 7ce26ca8e5 Harden send flow and separate upload failure recovery (#111)
* fix(send): harden FT send path + IP pre-flight UX

* Remove early returns
2026-08-04 18:12:33 +08:00
Andrew 367fcce634 Prevent loss of user access code on LAN reselect
Keep user access code intact to maintain access rights even if
device slot is unpopulated, ensuring continuous connection
and status message reception.
2026-08-04 18:12:33 +08:00
Andrew 9b3a44b339 Parse user print info on the UI thread to prevent heap corruption (#119)
get_user_print_info()'s HTTP fetch can run on a worker thread (e.g. BindJob),
but parse_user_print_info() mutates userMachineList (insert/erase/delete
MachineObject). on_machine_alive (SSDP) mutates the same maps on the UI thread
without locking, so parsing off-thread races the map and frees MachineObjects
out from under it -> heap corruption.

Keep all device-list mutation on the UI thread: parse inline when already on
the main thread, otherwise marshal via CallAfter so it stays serialized with
on_machine_alive.
2026-08-04 18:12:33 +08:00
Ian Chua 6384191102 Add developer flag for printer agents 2026-08-04 18:12:32 +08:00
4180 changed files with 249673 additions and 275407 deletions
@@ -35,9 +35,10 @@ toolhead, a multi-material build) may drop the suffix — still an exact referen
## `process`
`<layer height>mm <quality> @<target>` — [process-profiles.md](process-profiles.md#naming) has the
quality ladder and the `fdm_process_*` base names. The `@<target>` is a human label, not a reference: it
usually does not equal a real variant, and compatibility comes from the resolved `compatible_printers`
list or condition.
quality ladder and the `fdm_process_*` base names. The quality label stays before `@` and the printer
target after it: a printer model in the quality slot leaves the tier undescribed. The `@<target>` is a
human label, not a reference: it usually does not equal a real variant, and compatibility comes from the
resolved `compatible_printers` list or condition.
## `filament`
@@ -58,6 +59,30 @@ to the first `@`; the target half is a label except for reserved forms:
chosen at runtime
([color is a runtime property](filament-profiles.md#color-is-a-runtime-property)).
## Checking names
Check every newly added profile's `name` against its type and role: model, selectable preset or base.
Apply the same checks to an intentional name change. The human-readable naming shapes are not enforced
by `check`: inspect the added or renamed profiles in the diff, using neighbouring names as context and
following the bundle's established style where the type-specific conventions allow variation.
For bases (`instantiation: "false"`), use the type-specific conventions:
| Type | Base names |
| --- | --- |
| `machine` | `fdm_machine_common`, `fdm_<vendor>_common`, or an established machine-family base name |
| `process` | `fdm_process_*`, including shared roots and per-layer-height / per-nozzle bases such as `fdm_process_single_0.20` |
| `filament` | `fdm_filament_*` material roots or `<Product> @base` product roots |
Shared base names across bundles are intentional, including product roots such as `Fiberon PA6-CF @base`.
Investigate a newly authored base that retains an unrelated selectable preset's name from a copy.
**Name uniqueness is checked by CI.** `check_preset_name_uniqueness` checks type + name within each
bundle. `check_machine_model_name_uniqueness` checks model names across the entire tree, even with
`--vendor`: `Preset::get_printer_type` matches `printer_model` against all vendors' models and returns
the first match, so a duplicate makes lookup depend on vendor order. Both run as part of
`python3 scripts/orca_profile_tool.py check`.
## Not the same as the filename
The loader keys off `name`, and a filename that disagrees usually still loads. Index `name` must equal the
@@ -17,6 +17,7 @@ The table highlights gaps that need human review. What CI *does* run:
| A `renamed_from` whose old name is still a live preset | The redirect is inert while a live preset carries that name |
| A preset differentiated only by color, or an all-printer library preset without `@System` | Per-color presets split one product across ids and the selector fills with near-duplicates; CI stays green |
| Per-extruder vector length on a multi-nozzle printer | Silently padded (with the **first** value) or truncated |
| A name that ignores its type's convention — a model in a `process` quality slot, or an unrelated target label left in a copied preset | The selector misrepresents the preset's quality or intended printer |
## 1. Was the vendor `version` bumped?
@@ -169,6 +170,15 @@ vendor, and a filename that disagrees with the preset's `name` (common; the load
Check for Windows-invalid characters, reserved device names, trailing path-component spaces/dots,
and case mismatches in `sub_path` or asset paths. See [cross-platform paths](validation.md#cross-platform-paths).
## 16. Do the preset names follow the conventions?
Check **every newly added profile and intentional name change**, including models and bases,
against [the naming conventions](naming.md#checking-names). Preserve shipped names during
ordinary tuning; renaming a shipped selectable preset requires the migration in item 4.
*Why:* CI checks name uniqueness, but does not enforce the naming conventions. Catch naming
mistakes before the names ship and existing projects depend on them.
---
## Reporting the review
+8
View File
@@ -413,6 +413,14 @@ jobs:
GH_TOKEN: ${{ github.token }}
run: |
api="$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/actions/caches"
# The save step reports success even when its tar failed, so keep
# the older entries unless the new one is listed.
if ! curl -sSf -H "Authorization: Bearer $GH_TOKEN" \
"$api?ref=$GITHUB_REF&key=$CCACHE_ENTRY" \
| jq -e --arg entry "$CCACHE_ENTRY" 'any(.actions_caches[]; .key == $entry)' > /dev/null; then
echo "$CCACHE_ENTRY was not saved; keeping the older entries."
exit 0
fi
curl -sSf -H "Authorization: Bearer $GH_TOKEN" \
"$api?ref=$GITHUB_REF&key=ccache-$CCACHE_LEG-&per_page=100" \
| jq -r --arg prefix "ccache-$CCACHE_LEG-" --argjson run "$GITHUB_RUN_ID" \
+7
View File
@@ -798,6 +798,13 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
run: |
# The save step reports success even when its tar failed, so keep
# the older entries unless the new one is listed.
if ! gh cache list --ref "$GITHUB_REF" --key "$CCACHE_ENTRY" --json key \
| jq -e --arg entry "$CCACHE_ENTRY" 'any(.[]; .key == $entry)' > /dev/null; then
echo "$CCACHE_ENTRY was not saved; keeping the older entries."
exit 0
fi
gh cache list --ref "$GITHUB_REF" --key "ccache-$CCACHE_LEG-" --limit 100 --json id,key \
| jq -r --arg prefix "ccache-$CCACHE_LEG-" --argjson run "$GITHUB_RUN_ID" \
'.[] | select((.key | ltrimstr($prefix) | split("-")[0] | tonumber?) < $run) | .id' \
+199
View File
@@ -0,0 +1,199 @@
name: Daily OFL OTA Update
run-name: Daily OFL OTA Update [OFL barrier]
# This workflow is intended for creating and publishing the OrcaFilamentLibrary (OFL) OPC package to
# https://github.com/OrcaSlicer/orcaslicer-profiles, which generates an OTA update.
# This cronjob runs daily at 00:00 UTC every day and scans main plus every release/vX.Y.Z branch for
# changes to resources/profiles/OrcaFilamentLibrary since that branch's own last successful run. Any
# branch with no changes is skipped; each changed branch gets its own post_merge_profiles.yml dispatch.
#
# OFL has no dedicated FOLDER_MERGERS grant (it isn't merged through the PR merge-bot delegation
# scheme), so post_merge_profiles.yml is dispatched with an explicit `vendor` input, which that
# workflow trusts and uses to bypass the FOLDER_MERGERS check for this trigger. That same explicit-
# vendor-dispatch path is also what makes post_merge_profiles.yml call the OTA auto-publish API after
# uploading - see post_merge_profiles.yml for both sides of that contract.
#
# Each run captures a timestamp, dispatches the needed OFL publishers, waits for
# all of them to finish, then clears the pending-publish table once. Changes merged
# after that timestamp remain pending for the next run.
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
permissions:
actions: write # list this workflow's past runs and dispatch post_merge_profiles.yml
contents: read
env:
VENDOR: OrcaFilamentLibrary
jobs:
daily-job:
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' }}
runs-on: ubuntu-24.04
steps:
- name: Capture start timestamp
id: start
shell: bash
run: |
set -euo pipefail
timestamp="$(date -u +%s)"
echo "timestamp=$timestamp" >> "$GITHUB_OUTPUT"
- name: Checkout repository
uses: actions/checkout@v7
with:
# Full history: the per-branch "since last successful run" check below
# needs to look arbitrarily far back if a prior run failed or was skipped.
fetch-depth: 0
- name: Fetch all branches
shell: bash
run: git fetch origin '+refs/heads/*:refs/remotes/origin/*'
- name: Scan branches and publish changed OFL profiles
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SCAN_UNTIL: ${{ steps.start.outputs.timestamp }}
run: |
set -euo pipefail
mapfile -t branches < <(
gh api "repos/${{ github.repository }}/branches" --paginate --jq '.[].name' \
| grep -E '^(main|release/v[0-9]+\.[0-9]+\.[0-9]+)$' | sort -u
)
# The cron run is the checkpoint: a successful run means every
# dispatched branch publisher completed and the pending queue was
# cleared. Manual or push-triggered post_merge_profiles runs are not
# checkpoints for this scan.
successful_cron_runs="$(gh api --method GET \
"repos/${{ github.repository }}/actions/workflows/ofl-ota-cronjob.yml/runs" \
-f status=success -f branch=main -f per_page=100 --paginate \
--jq '.workflow_runs[] | select((.display_title // "") | contains("[OFL barrier]"))')"
since="$(jq -rs 'sort_by(.run_started_at) | last.run_started_at // empty' <<< "$successful_cron_runs")"
for branch in "${branches[@]}"; do
echo "::group::$branch"
if [ -z "$since" ]; then
echo "No prior successful OFL cron run; checking $branch through $SCAN_UNTIL."
changed_files="$(git log --until="$SCAN_UNTIL" --name-only --pretty=format: "origin/$branch" -- \
resources/profiles/OrcaFilamentLibrary resources/profiles/OrcaFilamentLibrary.json \
| sed '/^$/d')"
else
changed_files="$(git log --since="$since" --until="$SCAN_UNTIL" --name-only --pretty=format: "origin/$branch" -- \
resources/profiles/OrcaFilamentLibrary resources/profiles/OrcaFilamentLibrary.json \
| sed '/^$/d')"
fi
if [ -n "$changed_files" ]; then
echo "OFL changed on $branch from ${since:-the beginning} through $SCAN_UNTIL:"
echo "$changed_files"
changed=true
else
echo "No OFL changes on $branch through $SCAN_UNTIL."
changed=false
fi
if [ "$changed" = true ]; then
dispatch_id="${GITHUB_RUN_ID}-${branch//\//-}"
# Record successful dispatches for the barrier step below.
# Branches whose workflow predates workflow_dispatch are skipped
# with a warning, as they were before the barrier was added.
if gh workflow run post_merge_profiles.yml \
--repo "${{ github.repository }}" \
--ref "$branch" \
-f vendor="$VENDOR" -f auto_publish=true \
-f ofl_cron_dispatch_id="$dispatch_id"; then
printf '%s\t%s\n' "$branch" "$dispatch_id" >> "$RUNNER_TEMP/ofl-dispatches.tsv"
else
echo "::warning::skipping $branch because post_merge_profiles.yml could not be dispatched at that ref"
fi
fi
echo "::endgroup::"
done
- name: Wait for OFL publishers
id: wait
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DISPATCHES_FILE: ${{ runner.temp }}/ofl-dispatches.tsv
run: |
set -euo pipefail
if [ ! -s "$DISPATCHES_FILE" ]; then
echo "No OFL publisher workflows were dispatched; pending queue will not be cleared."
echo "publishers_dispatched=false" >> "$GITHUB_OUTPUT"
exit 0
fi
: > "$RUNNER_TEMP/ofl-run-ids.tsv"
while IFS=$'\t' read -r branch dispatch_id; do
[ -n "$branch" ] || continue
echo "Waiting for OFL publisher on $branch ($dispatch_id)"
run_id=""
for _ in {1..120}; do
runs_json="$(gh api --method GET \
"repos/${{ github.repository }}/actions/workflows/post_merge_profiles.yml/runs" \
-f branch="$branch" -f event=workflow_dispatch -f per_page=100)"
run_id="$(jq -r --arg marker "[OFL cron $dispatch_id]" \
'[.workflow_runs[] | select((.display_title // "") | contains($marker))] \
| sort_by(.created_at) | last | .id // empty' <<< "$runs_json")"
[ -n "$run_id" ] && break
sleep 5
done
if [ -z "$run_id" ]; then
echo "::error::could not find dispatched post_merge_profiles run for $branch ($dispatch_id)"
exit 1
fi
printf '%s\t%s\n' "$branch" "$run_id" >> "$RUNNER_TEMP/ofl-run-ids.tsv"
done < "$DISPATCHES_FILE"
all_success=true
while IFS=$'\t' read -r branch run_id; do
[ -n "$run_id" ] || continue
echo "Watching OFL publisher run $run_id for $branch"
if ! gh run watch "$run_id" --repo "${{ github.repository }}" --exit-status; then
all_success=false
fi
done < "$RUNNER_TEMP/ofl-run-ids.tsv"
if [ "$all_success" != true ]; then
echo "::error::one or more OFL publisher workflows failed; pending queue will not be cleared"
exit 1
fi
echo "publishers_dispatched=true" >> "$GITHUB_OUTPUT"
- name: Clear OFL pending queue
if: steps.wait.outputs.publishers_dispatched == 'true'
shell: bash
env:
OTA_API_BASE_URL: ${{ vars.OTA_API_BASE_URL }}
OTA_API_KEY: ${{ secrets.OFL_OTA_PUBLISH_KEY }}
TIMESTAMP: ${{ steps.start.outputs.timestamp }}
run: |
set -euo pipefail
[ -n "$OTA_API_BASE_URL" ] || { echo "::error::vars.OTA_API_BASE_URL is not set"; exit 1; }
[ -n "$OTA_API_KEY" ] || { echo "::error::secrets.OFL_OTA_PUBLISH_KEY is not set"; exit 1; }
resp_file="$RUNNER_TEMP/ota-pending-clear-response.json"
status="$(curl -sS -o "$resp_file" -w '%{http_code}' -X POST \
"${OTA_API_BASE_URL%/}/api/v1/ota/ofl/pending/clear?timestamp=$TIMESTAMP" \
-H "Authorization: Bearer $OTA_API_KEY")"
body="$(cat "$resp_file")"
echo "$body"
if [ "$status" != "200" ]; then
echo "::error::OTA pending-clear call failed with HTTP $status"
exit 1
fi
+52 -8
View File
@@ -5,8 +5,9 @@
# re-sliced on its own to see whether it changes the G-code
# harness - the GUI-vs-CLI parity harness (metrics only, never fails)
# Both test the latest successful build_all.yml Linux AppImage from main, with
# sources checked out at the commit that build was made from. Nothing here
# gates a build or a PR.
# sources checked out at the commit that build was made from; a manual run can
# name another branch, or pin one build by its run id. Nothing here gates a
# build or a PR.
name: Parity Nightly
on:
@@ -20,9 +21,13 @@ on:
required: false
default: "main"
build_branch:
description: "branch whose latest successful build_all artifact to test"
description: "branch whose newest successful build_all artifact to test (a PR build is the PR merged into its base; sources are checked out at the PR head)"
required: false
default: "main"
build_run_id:
description: "build_all run id to test instead of build_branch's newest (same PR caveat)"
required: false
default: ""
fixtures:
description: "harness fixture ids, space-separated (empty = all)"
required: false
@@ -50,14 +55,53 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
BRANCH: ${{ inputs.build_branch || 'main' }}
RUN_ID: ${{ inputs.build_run_id }}
SCHEDULED: ${{ github.event_name == 'schedule' }}
run: |
set -euo pipefail
gh run list --workflow build_all.yml \
--branch "${{ inputs.build_branch || 'main' }}" \
--status success --limit 1 --json databaseId,headSha \
--jq '"run_id=\(.[0].databaseId)\nhead_sha=\(.[0].headSha)"' \
>> "$GITHUB_OUTPUT"
if [ -n "$RUN_ID" ]; then
[[ $RUN_ID =~ ^[0-9]+$ ]] || { echo "build_run_id must be a numeric run id, got '$RUN_ID'" >&2; exit 1; }
# a pinned build is read directly, not through a search; it must come
# from this repository, because the later jobs check out its commit here
found=$(gh api "repos/$GH_REPO/actions/runs/$RUN_ID" --jq \
'select(.path == ".github/workflows/build_all.yml" and .conclusion == "success"
and .head_repository.full_name == env.GH_REPO)
| "\(.id) \(.head_sha) \(.created_at)"')
[ -n "$found" ] || { echo "run $RUN_ID is not a successful build_all run of $GH_REPO" >&2; exit 1; }
else
# GitHub serves filtered run listings (branch=, status=, head_sha=, ...)
# from a search index that has returned weeks-old results, while the
# unfiltered listing stays current, so list unfiltered and filter here.
# The repository check keeps out fork PRs whose branch has the same
# name. A feature branch is normally built only for its PR, and a PR
# build compiles the PR merged into its base rather than head_sha, so
# a build of the branch itself (push or dispatch) is preferred when
# the same page has one.
pick='([.workflow_runs[] | select(.head_branch == env.BRANCH and .conclusion == "success"
and .head_repository.full_name == env.GH_REPO)]
| map(select(.event != "pull_request"))[0] // .[0])
| select(.) | "\(.id) \(.head_sha) \(.created_at)"'
# a page of 100 runs spans about a day and a half; a manual run may
# target a branch that last built weeks ago
pages=3
if [ "$SCHEDULED" != true ]; then pages=20; fi
found=""
for page in $(seq "$pages"); do
found=$(gh api "repos/$GH_REPO/actions/workflows/build_all.yml/runs?per_page=100&page=$page" --jq "$pick")
if [ -n "$found" ]; then break; fi
done
[ -n "$found" ] || { echo "no successful $BRANCH build among the last $((pages * 100)) build_all runs; pass build_run_id to test an older one" >&2; exit 1; }
fi
read -r run_id head_sha created <<< "$found"
# the nightly fails rather than report on a stale build
if [ "$SCHEDULED" = true ] && [ $(( $(date +%s) - $(date -d "$created" +%s) )) -gt 172800 ]; then
echo "newest $BRANCH build $run_id is from $created, over 48 hours old" >&2
exit 1
fi
printf 'run_id=%s\nhead_sha=%s\n' "$run_id" "$head_sha" >> "$GITHUB_OUTPUT"
cat "$GITHUB_OUTPUT"
echo "Testing build [$run_id](https://github.com/$GH_REPO/actions/runs/$run_id) of \`$head_sha\`, built $created" >> "$GITHUB_STEP_SUMMARY"
effect:
name: Override sweep effect stage (shard ${{ matrix.shard }})
+230 -10
View File
@@ -1,5 +1,14 @@
name: Post-merge profiles
run-name: >-
Post-merge profiles${{
inputs.ofl_cron_dispatch_id != '' &&
inputs.vendor == 'OrcaFilamentLibrary' &&
(inputs.auto_publish == true || inputs.auto_publish == 'true') &&
format(' [OFL cron {0}]', inputs.ofl_cron_dispatch_id) ||
''
}}
# Push-triggered counterpart to check_profiles.yml (which only gates PRs). When a
# profile change lands on main or a release branch, rebuild the affected vendors'
# binary preset caches (<vendor>.opc) and publish each as a versioned ZIP asset on
@@ -8,6 +17,19 @@ name: Post-merge profiles
# only then does it become a live OTA update - this workflow does none of that
# last part (no changelog, no R2, no webhook).
#
# A workflow_dispatch carrying a `vendor` input (e.g. the daily OFL cron - OFL has
# no FOLDER_MERGERS grant, since it isn't merged through the PR merge-bot delegation
# scheme) publishes that vendor directly and skips the FOLDER_MERGERS check below.
# workflow_dispatch is already a trusted, explicit trigger, unlike the automatic
# push-diff path the FOLDER_MERGERS check exists to gate.
#
# Separately, an ordinary push whose diff touches an OrcaFilamentLibrary company
# folder (resources/profiles/OrcaFilamentLibrary/filament/<Company>/**) records
# that PR as pending via POST /api/v1/ota/ofl/pending, regardless of whether
# OrcaFilamentLibrary as a whole is authorized to publish in this same run - a
# partner's OTA Manager dashboard should see a merged PR immediately, well
# before the daily cron actually builds and publishes it.
#
# Asset contract expected by OrcaCloud's release scanner:
# ^(\d+\.\d+\.\d+)_([^_]+)_(\d+(?:\.\d+){3})_(\d{12})\.zip$
# <orca_ver>_<vendor>_<profile_version>_<UTC yyyymmddHHMM>.zip (zip root: <vendor>.opc)
@@ -17,16 +39,45 @@ name: Post-merge profiles
on:
push:
branches:
# once v2.5.0 stable is released, this will be removed, so nightly won't receive OTA updates.
- main
- release/*
# release/vX.Y.Z point-release branches only, not the release/vX.Y working
# branch profile PRs land on first - "v*.*.*" requires two literal dots,
# which release/vX.Y (one dot) doesn't have.
- release/v*.*.*
paths:
- 'resources/profiles/**'
- '.github/workflows/post_merge_profiles.yml'
workflow_dispatch:
inputs:
vendor:
description: >-
Publish only this vendor, bypassing the FOLDER_MERGERS grant check.
For trusted explicit dispatches only (e.g. the OFL nightly cron).
Leave empty to fall back to diffing the triggering commit.
required: false
type: string
auto_publish:
description: >-
After publishing, also call the OTA auto-publish API to go live
immediately, skipping the human changelog/Publish step. Separate
from `vendor` on purpose: a maintainer can dispatch with just
`vendor` set to rebuild/republish an asset without it going live.
Only the OFL nightly cron should set this to true.
required: false
type: boolean
default: false
ofl_cron_dispatch_id:
description: >-
Unique marker supplied by the trusted OFL daily cron so it can find
and wait for this dispatched workflow run.
required: false
type: string
permissions:
contents: read
pull-requests: read # commits/{sha}/pulls lookup in the OFL-pending step
# One run per branch; let a run finish rather than cancel it, since it publishes.
concurrency:
@@ -66,8 +117,38 @@ jobs:
shell: bash
env:
FOLDER_MERGERS: ${{ vars.FOLDER_MERGERS }}
DISPATCH_VENDOR: ${{ github.event_name == 'workflow_dispatch' && inputs.vendor || '' }}
run: |
set -euo pipefail
# A vendor has a manifest plus either a preset directory or a version
# field; this drops non-vendor files such as blacklist.json. Shared by
# both the explicit-dispatch path below and the push-diff path further
# down, so the definition of "valid vendor" can't drift between them.
is_valid_vendor() {
local v="$1"
local json="resources/profiles/$v.json"
[ -f "$json" ] && { [ -d "resources/profiles/$v" ] || jq -e '.version' "$json" >/dev/null 2>&1; }
}
# Explicit vendor dispatch (e.g. the OFL cron): trust the caller and
# skip both the git-diff detection and the FOLDER_MERGERS check below.
if [ -n "$DISPATCH_VENDOR" ]; then
v="$DISPATCH_VENDOR"
# Becomes part of the release asset filename and the OTA API's
# payload; keep it to the same charset every real vendor name uses.
if ! [[ "$v" =~ ^[A-Za-z0-9]+$ ]]; then
echo "::error::vendor '$v' must be alphanumeric"
exit 1
fi
if ! is_valid_vendor "$v"; then
echo "::error::vendor '$v' has no resources/profiles/$v.json with a profile directory or version field"
exit 1
fi
echo "vendors=$v" >> "$GITHUB_OUTPUT"
exit 0
fi
base='${{ github.event.before }}'
head='${{ github.sha }}'
# Zero SHA (branch created / force push) or manual dispatch: fall back
@@ -75,6 +156,10 @@ jobs:
if [ -z "$base" ] || [ "$base" = "0000000000000000000000000000000000000000" ] || ! git cat-file -e "$base^{commit}" 2>/dev/null; then
base="$head^"
fi
# Exposed so the OFL-pending step below can reuse this exact diff
# range instead of re-deriving it (and drifting from this logic).
echo "base=$base" >> "$GITHUB_OUTPUT"
echo "head=$head" >> "$GITHUB_OUTPUT"
mapfile -t candidates < <(
git diff --name-only "$base" "$head" -- resources/profiles \
| sed -nE 's#^resources/profiles/([^/]+)/.*#\1#p; s#^resources/profiles/([^/]+)\.json$#\1#p' \
@@ -84,10 +169,7 @@ jobs:
vendors=()
for v in "${candidates[@]:-}"; do
[ -n "$v" ] || continue
json="resources/profiles/$v.json"
# A vendor has a manifest plus either a preset directory or a version
# field; this drops non-vendor files such as blacklist.json.
if [ -f "$json" ] && { [ -d "resources/profiles/$v" ] || jq -e '.version' "$json" >/dev/null 2>&1; }; then
if is_valid_vendor "$v"; then
vendors+=("$v")
fi
done
@@ -101,6 +183,9 @@ jobs:
# sibling bundle JSON are covered by at least one FOLDER_MERGERS
# grant. The account part is intentionally ignored here: this is a
# post-merge safety check, not an authorization check for a command.
# An ineligible vendor (e.g. OrcaFilamentLibrary, which has no grant)
# is dropped on its own - it never blocks other vendors in the same
# push from publishing.
grants=()
while IFS= read -r raw_line; do
line="${raw_line#"${raw_line%%[![:space:]]*}"}"
@@ -127,23 +212,29 @@ jobs:
return 1
}
authorized=()
unauthorized=()
for v in "${vendors[@]}"; do
if ! is_granted "resources/profiles/$v" || ! is_granted "resources/profiles/$v.json"; then
if is_granted "resources/profiles/$v" && is_granted "resources/profiles/$v.json"; then
authorized+=("$v")
else
unauthorized+=("$v")
fi
done
if [ "${#unauthorized[@]}" -ne 0 ]; then
echo "vendors=" >> "$GITHUB_OUTPUT"
exit 0
echo "::warning::skipping vendor(s) with no FOLDER_MERGERS grant (no asset built or published for them this run): ${unauthorized[*]}"
fi
echo "vendors=${vendors[*]}" >> "$GITHUB_OUTPUT"
echo "vendors=${authorized[*]}" >> "$GITHUB_OUTPUT"
- name: Resolve Orca version
id: orca
if: steps.vendors.outputs.vendors != ''
# Unconditional: needed both by the vendor-publish pipeline below (only
# when vendors is non-empty) and by the OFL-pending step at the end
# (which runs whenever OFL itself changed, even if vendors ends up
# empty because OFL has no FOLDER_MERGERS grant). Cheap and harmless
# to always resolve - version.inc is present on every commit.
shell: bash
run: |
set -euo pipefail
@@ -242,3 +333,132 @@ jobs:
echo "### Published to \`$repo\` release \`$RELEASE_TAG\`"
for f in "$ASSET_DIR"/*.zip; do echo "- \`$(basename "$f")\`"; done
} >> "$GITHUB_STEP_SUMMARY"
- name: Notify OTA auto-publish
# Gated on auto_publish specifically, not just "vendor was dispatched":
# a maintainer manually dispatching with vendor=OrcaFilamentLibrary (e.g.
# to rebuild/republish an asset while debugging) must not silently go
# live. Only a caller that explicitly opts in with auto_publish=true
# (the OFL nightly cron) skips the human changelog/Publish step.
if: >-
steps.vendors.outputs.vendors != '' && github.event_name == 'workflow_dispatch'
&& (inputs.auto_publish == true || inputs.auto_publish == 'true')
shell: bash
env:
OTA_API_BASE_URL: ${{ vars.OTA_API_BASE_URL }}
OTA_API_KEY: ${{ secrets.OFL_OTA_PUBLISH_KEY }}
ASSET_DIR: ${{ steps.pkg.outputs.dir }}
run: |
set -euo pipefail
[ -n "$OTA_API_BASE_URL" ] || { echo "::error::vars.OTA_API_BASE_URL is not set"; exit 1; }
[ -n "$OTA_API_KEY" ] || { echo "::error::secrets.OFL_OTA_PUBLISH_KEY is not set"; exit 1; }
mapfile -t zip_files < <(cd "$ASSET_DIR" && ls -1 *.zip)
filenames_json="$(printf '%s\n' "${zip_files[@]}" | jq -R . | jq -s .)"
payload="$(jq -n --argjson filenames "$filenames_json" '{filenames: $filenames}')"
resp_file="$RUNNER_TEMP/ota-auto-publish-response.json"
status="$(curl -sS -o "$resp_file" -w '%{http_code}' -X POST \
"${OTA_API_BASE_URL%/}/api/v1/ota/auto-publish" \
-H "Authorization: Bearer $OTA_API_KEY" \
-H 'Content-Type: application/json' \
-d "$payload")"
body="$(cat "$resp_file")"
echo "$body"
if [ "$status" != "200" ]; then
echo "::error::OTA auto-publish call failed with HTTP $status"
exit 1
fi
# A 200 can still carry per-file "error" results (e.g. NOT_FOUND); the
# asset is already safely published to the profiles release above, but
# it never went live, so treat that as a failure worth surfacing loudly.
error_count="$(jq '[.results[] | select(.status == "error")] | length' <<< "$body")"
if [ "$error_count" != "0" ]; then
jq -r '.results[] | select(.status == "error") | "::error::\(.filename): \(.code) - \(.message)"' <<< "$body"
exit 1
fi
- name: Record OFL pending changes
# A real merge, never the cron's explicit-vendor dispatch (that's
# automation publishing, not a new merge to report). This covers two
# trigger shapes: an ordinary push, and a vendor-less workflow_dispatch
# - the latter is exactly what pr-merge-bot.yml's re-dispatch after a
# successful /bot merge looks like (a GITHUB_TOKEN-authored merge fires
# no push event at all, which is why that re-dispatch exists). Both
# land in the same diff-fallback path in "Resolve changed vendors", so
# base/head/orca_ver are already correctly populated either way - only
# this condition needs widening.
# Placed last in the job on purpose: a failure here must never block
# the vendor-publish pipeline above, which a step failing earlier in
# the job would do (subsequent steps without always() get skipped).
if: >-
github.event_name == 'push' ||
(github.event_name == 'workflow_dispatch' && !inputs.vendor)
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OTA_API_BASE_URL: ${{ vars.OTA_API_BASE_URL }}
OTA_API_KEY: ${{ secrets.OFL_OTA_PUBLISH_KEY }}
run: |
set -euo pipefail
base='${{ steps.vendors.outputs.base }}'
head='${{ steps.vendors.outputs.head }}'
orca_ver='${{ steps.orca.outputs.orca_ver }}'
# Only real vendor subdirectories under filament/, e.g.
# .../filament/Qidi/x.json -> "Qidi". This naturally excludes loose
# top-level files (.../filament/Generic PLA @System.json - no further
# slash to match) and is further filtered below to drop "base", the
# shared @base/@System inheritance folder, not a partner company.
mapfile -t ofl_companies < <(
git diff --name-only "$base" "$head" -- resources/profiles/OrcaFilamentLibrary/filament \
| sed -nE 's#^resources/profiles/OrcaFilamentLibrary/filament/([^/]+)/.*#\1#p' \
| grep -vx 'base' \
| sort -u
)
if [ "${#ofl_companies[@]}" -eq 0 ]; then
echo "No OFL company folders changed in this push."
exit 0
fi
[ -n "$OTA_API_BASE_URL" ] || { echo "::error::vars.OTA_API_BASE_URL is not set"; exit 1; }
[ -n "$OTA_API_KEY" ] || { echo "::error::secrets.OFL_OTA_PUBLISH_KEY is not set"; exit 1; }
# The head commit's own merged PR, not a per-commit walk: this
# assumes the ordinary one-PR-per-push shape every other merge path
# in this repo already assumes (pr-merge-bot.yml's re-dispatch logic
# does the same). A merge commit's parents don't matter here - this
# API call works the same regardless of merge strategy.
pr_json="$(gh api "repos/${{ github.repository }}/commits/$head/pulls" \
--jq '[.[] | select(.merged_at != null)] | sort_by(.merged_at) | last // empty')"
if [ -z "$pr_json" ]; then
echo "::warning::push $head touches OFL compan(y/ies) (${ofl_companies[*]}) but has no associated merged PR; skipping pending record(s)"
exit 0
fi
pr_number="$(jq -r '.number' <<< "$pr_json")"
pr_url="$(jq -r '.html_url' <<< "$pr_json")"
pr_title="$(jq -r '.title' <<< "$pr_json")"
for company in "${ofl_companies[@]}"; do
payload="$(jq -n --arg vendor "$company" --arg ver "$orca_ver" --argjson pr "$pr_number" \
--arg url "$pr_url" --arg title "$pr_title" \
'{vendor: $vendor, orcaSlicerVersion: $ver, prNumber: $pr, prUrl: $url, prTitle: $title}')"
resp_file="$RUNNER_TEMP/ofl-pending-$company.json"
status="$(curl -sS -o "$resp_file" -w '%{http_code}' -X POST \
"${OTA_API_BASE_URL%/}/api/v1/ota/ofl/pending" \
-H "Authorization: Bearer $OTA_API_KEY" \
-H 'Content-Type: application/json' \
-d "$payload")"
body="$(cat "$resp_file")"
echo "$body"
if [ "$status" != "200" ]; then
echo "::error::OFL pending record failed for vendor=$company (PR #$pr_number): HTTP $status"
exit 1
fi
done
+52 -4
View File
@@ -56,9 +56,9 @@ You can do this in Environment Variables settings.
endif ()
if (APPLE)
# if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 11.3
# if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 12.0 (the lowest Xcode 27 accepts)
if (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version" FORCE)
set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0" CACHE STRING "Minimum OS X deployment version" FORCE)
endif ()
message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif ()
@@ -70,6 +70,9 @@ if (POLICY CMP0092)
cmake_policy(SET CMP0092 NEW)
endif ()
# project() reads this, so set it first.
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_LIST_DIR}/cmake/modules/ClangClShowIncludes.cmake")
project(OrcaSlicer)
# Backward compatibility for old CMake versions
@@ -276,6 +279,11 @@ if (APPLE)
endif()
SET(CMAKE_XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.orcaslicer.OrcaSlicer")
# The macOS CI jobs build with Ninja (build_release_macos.sh -x), so the Xcode generator
# is not covered. Xcode adds -Wshorten-64-to-32 by default ("Implicit Conversion to 32 Bit
# Type"); Ninja/-Wall does not, and under -Werror it fails Xcode builds on code CI accepts.
set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION "NO")
message(STATUS "Orca: IS_CROSS_COMPILE: ${IS_CROSS_COMPILE}")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(CMAKE_INSTALL_RPATH "$ORIGIN")
@@ -826,6 +834,37 @@ find_package(OpenSSL REQUIRED)
find_package(CURL REQUIRED)
find_package(Freetype REQUIRED)
if (SLIC3R_GUI)
# LibDataChannel's installed export references its bundled dependencies,
# but does not install their CMake targets. Recreate those targets from
# the same dependency prefix before loading the LibDataChannel config.
if (NOT TARGET Usrsctp::usrsctp)
find_library(_ORCA_USRSCTP_LIBRARY NAMES usrsctp
PATHS "${CMAKE_PREFIX_PATH}/lib" NO_DEFAULT_PATH)
if (_ORCA_USRSCTP_LIBRARY)
add_library(Usrsctp::usrsctp UNKNOWN IMPORTED GLOBAL)
set_target_properties(Usrsctp::usrsctp PROPERTIES
IMPORTED_LOCATION "${_ORCA_USRSCTP_LIBRARY}"
IMPORTED_LINK_INTERFACE_LANGUAGES C
INTERFACE_LINK_LIBRARIES "Threads::Threads")
endif()
endif()
if (NOT TARGET LibJuice::LibJuice)
find_library(_ORCA_LIBJUICE_LIBRARY NAMES juice
PATHS "${CMAKE_PREFIX_PATH}/lib" NO_DEFAULT_PATH)
if (_ORCA_LIBJUICE_LIBRARY)
add_library(LibJuice::LibJuice UNKNOWN IMPORTED GLOBAL)
set_target_properties(LibJuice::LibJuice PROPERTIES
IMPORTED_LOCATION "${_ORCA_LIBJUICE_LIBRARY}"
IMPORTED_LINK_INTERFACE_LANGUAGES C
INTERFACE_LINK_LIBRARIES "Threads::Threads")
endif()
endif()
find_package(LibDataChannel CONFIG REQUIRED)
endif()
add_library(libcurl INTERFACE)
target_link_libraries(libcurl INTERFACE CURL::libcurl)
@@ -1106,6 +1145,7 @@ function(orcaslicer_copy_dlls target config postfix output_dlls)
endif ()
file(COPY ${_occt_dlls}
${CMAKE_PREFIX_PATH}/bin/freetype.dll
${CMAKE_PREFIX_PATH}/bin/avformat-61.dll
${CMAKE_PREFIX_PATH}/bin/avcodec-61.dll
${CMAKE_PREFIX_PATH}/bin/swresample-5.dll
${CMAKE_PREFIX_PATH}/bin/swscale-8.dll
@@ -1118,11 +1158,11 @@ function(orcaslicer_copy_dlls target config postfix output_dlls)
${_out_dir}/WebView2Loader.dll
${_out_dir}/freetype.dll
${_out_dir}/avformat-61.dll
${_out_dir}/avcodec-61.dll
${_out_dir}/swresample-5.dll
${_out_dir}/swscale-8.dll
${_out_dir}/avutil-59.dll
PARENT_SCOPE
)
list(APPEND _dll_list ${_occt_staged})
set(${output_dlls} ${_dll_list} PARENT_SCOPE)
@@ -1142,7 +1182,10 @@ function(orcaslicer_copy_sos target config postfix output_sos)
set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}")
endif ()
file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so
file(COPY ${CMAKE_PREFIX_PATH}/lib/libavformat.so
${CMAKE_PREFIX_PATH}/lib/libavformat.so.61
${CMAKE_PREFIX_PATH}/lib/libavformat.so.61.1.100
${CMAKE_PREFIX_PATH}/lib/libavcodec.so
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100
${CMAKE_PREFIX_PATH}/lib/libavutil.so
@@ -1157,6 +1200,9 @@ function(orcaslicer_copy_sos target config postfix output_sos)
DESTINATION ${_out_dir})
set(${output_sos}
${_out_dir}/libavformat.so
${_out_dir}/libavformat.so.61
${_out_dir}/libavformat.so.61.1.100
${_out_dir}/libavcodec.so
${_out_dir}/libavcodec.so.61
${_out_dir}/libavcodec.so.61.3.100
@@ -1286,6 +1332,8 @@ endif ()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(LIBRARY_FILES
${LIBDIR_BIN}/libavformat.so.61
${LIBDIR_BIN}/libavformat.so.61.1.100
${LIBDIR_BIN}/libavcodec.so.61
${LIBDIR_BIN}/libavcodec.so.61.3.100
${LIBDIR_BIN}/libavutil.so.59
+2 -2
View File
@@ -53,7 +53,7 @@ while getopts ":dpa:snt:xbc:i:j:Tuh" opt; do
echo " -s: Build slicer only"
echo " -u: Build universal app only (requires existing arm64 and x86_64 app bundles)"
echo " -n: Nightly build"
echo " -t: Specify minimum version of the target platform, default is 11.3"
echo " -t: Specify minimum version of the target platform, default is 12.0"
echo " -x: Use Ninja Multi-Config CMake generator, default is Xcode"
echo " -b: Build without reconfiguring CMake"
echo " -c: Set CMake build configuration, default is Release"
@@ -95,7 +95,7 @@ if [ -z "$DEPS_CMAKE_GENERATOR" ]; then
fi
if [ -z "$OSX_DEPLOYMENT_TARGET" ]; then
export OSX_DEPLOYMENT_TARGET="11.3"
export OSX_DEPLOYMENT_TARGET="12.0"
fi
if [ -z "$CMAKE_IGNORE_PREFIX_PATH" ]; then
+10
View File
@@ -0,0 +1,10 @@
# ccache does not parse the -clang: arguments CMake uses for clang-cl's gcc-style
# depfile, so a cache hit writes the object and no depfile, and Ninja then records
# no headers for that object. ccache reproduces /showIncludes output on a hit.
foreach (_lang C CXX)
if (CMAKE_${_lang}_COMPILER_ID STREQUAL "Clang" AND
CMAKE_${_lang}_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
set(CMAKE_DEPFILE_FLAGS_${_lang} "/showIncludes")
set(CMAKE_${_lang}_DEPFILE_FORMAT msvc)
endif ()
endforeach ()
+35 -13
View File
@@ -26,9 +26,9 @@ endif()
cmake_minimum_required(VERSION 3.2)
if (APPLE)
# if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 11.3
# if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 12.0 (the lowest Xcode 27 accepts)
if (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version" FORCE)
set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0" CACHE STRING "Minimum OS X deployment version" FORCE)
endif ()
message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
@@ -38,6 +38,14 @@ if(POLICY CMP0135) # DOWNLOAD_EXTRACT_TIMESTAMP
cmake_policy(SET CMP0135 NEW)
endif()
# project() reads this, so set it first. scripts/flatpak/make_deps_tar.sh packs deps/
# without cmake/, so the file is missing in a Flatpak build.
set(_rules_override "${CMAKE_CURRENT_LIST_DIR}/../cmake/modules/ClangClShowIncludes.cmake")
if (EXISTS "${_rules_override}")
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_rules_override}")
endif ()
unset(_rules_override)
project(OrcaSlicer-deps)
# Backward compatibility for old CMake versions
@@ -156,7 +164,7 @@ if (NOT _is_multi AND NOT CMAKE_BUILD_TYPE)
endif ()
function(orcaslicer_add_cmake_project projectname)
cmake_parse_arguments(P_ARGS "FORWARD_CONFIG" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
cmake_parse_arguments(P_ARGS "FORWARD_CONFIG" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND;SOURCE_DIR" "CMAKE_ARGS" ${ARGN})
# MSVC is true for clang-cl as well, so the sub-build toolchain has to key on the
# generator. A non-Visual-Studio superbuild passes its own generator down, and with
@@ -202,12 +210,18 @@ function(orcaslicer_add_cmake_project projectname)
set(_build_j "-j${NPROC}")
endif ()
set(_source_dir_arg "")
if (P_ARGS_SOURCE_DIR)
set(_source_dir_arg SOURCE_DIR ${P_ARGS_SOURCE_DIR})
endif ()
if (NOT IS_CROSS_COMPILE OR NOT APPLE)
ExternalProject_Add(
dep_${projectname}
EXCLUDE_FROM_ALL ON
INSTALL_DIR ${DESTDIR}
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
${_source_dir_arg}
${_gen}
CMAKE_ARGS
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -220,6 +234,7 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_USER_MAKE_RULES_OVERRIDE:STRING=${CMAKE_USER_MAKE_RULES_OVERRIDE}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}
@@ -240,12 +255,14 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
# note for future devs: shared libs may actually create a size reduction
# but orcaslicer_deps tends to get really funny regarding linking after that (notably boost)
# so, as much as I would like to use that, it's not happening
ExternalProject_Add_Step(dep_${projectname} free_download_space
DEPENDEES download # do after download
COMMENT "Freeing Space: Removing source archive"
WORKING_DIRECTORY ${DEP_DOWNLOAD_DIR}
COMMAND ${CMAKE_COMMAND} -E rm -r ${projectname}
)
if (NOT P_ARGS_SOURCE_DIR)
ExternalProject_Add_Step(dep_${projectname} free_download_space
DEPENDEES download # do after download
COMMENT "Freeing Space: Removing source archive"
WORKING_DIRECTORY ${DEP_DOWNLOAD_DIR}
COMMAND ${CMAKE_COMMAND} -E rm -rf ${projectname}
)
endif ()
ExternalProject_Add_Step(dep_${projectname} free_build_space
DEPENDEES install # do after install
COMMENT "Freeing Space: Removing source and build files"
@@ -259,6 +276,7 @@ else()
EXCLUDE_FROM_ALL ON
INSTALL_DIR ${DESTDIR}
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
${_source_dir_arg}
${_gen}
CMAKE_ARGS
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -267,6 +285,7 @@ else()
-DCMAKE_IGNORE_PREFIX_PATH:STRING=${CMAKE_IGNORE_PREFIX_PATH}
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_USER_MAKE_RULES_OVERRIDE:STRING=${CMAKE_USER_MAKE_RULES_OVERRIDE}
-DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch}
"${_configs_line}"
@@ -386,10 +405,6 @@ include(libnoise/libnoise.cmake)
include(Draco/Draco.cmake)
include(FFMPEG/FFMPEG.cmake)
include(Assimp/Assimp.cmake)
# I *think* 1.1 is used for *just* md5 hashing?
# 3.1 has everything in the right place, but the md5 funcs used are deprecated
# a grep across the repo shows it is used for other things
@@ -400,6 +415,12 @@ if(NOT OPENSSL_FOUND)
set(OPENSSL_PKG dep_OpenSSL)
endif()
include(FFMPEG/FFMPEG.cmake)
include(Assimp/Assimp.cmake)
include(DataChannel/DataChannel.cmake)
set(DATACHANNEL_PKG dep_DataChannel)
# we don't want to load a "wrong" openssl when loading curl
# so, just don't even bother
# ...i think this is how it works? change if wrong
@@ -473,6 +494,7 @@ set(_dep_list
dep_wxInspector
dep_FFMPEG
dep_Assimp
${DATACHANNEL_PKG}
)
if (MSVC)
+37
View File
@@ -0,0 +1,37 @@
# libdatachannel is the native ICE/DTLS/SCTP implementation used by the
# GUI WebRTC camera controller. Keep the source revision fixed: the signaling
# protocol is evolving independently of this transport dependency.
#
# It vendors plog, usrsctp and libjuice as git submodules, which a plain
# GitHub tag tarball does not include. The flatpak sandbox has no network
# access during the build, so there the manifest itself clones the repo
# (submodules and all) into the dependency download directory before the
# sandbox closes. ExternalProject_Add is pointed at that existing checkout
# instead of being given its own network-dependent download method.
if (FLATPAK)
set(_datachannel_source
SOURCE_DIR ${DEP_DOWNLOAD_DIR}/DataChannel
)
else()
set(_datachannel_source
GIT_REPOSITORY https://github.com/paullouisageneau/libdatachannel.git
GIT_TAG v0.24.5
GIT_SHALLOW ON
GIT_SUBMODULES_RECURSE ON
)
endif()
orcaslicer_add_cmake_project(DataChannel
DEPENDS ${OPENSSL_PKG}
CMAKE_ARGS
-DNO_EXAMPLES=ON
-DNO_TESTS=ON
-DNO_WEBSOCKET=ON
-DNO_MEDIA=ON
-DUSE_NICE=OFF
-DUSE_SYSTEM_JUICE=OFF
-DUSE_SYSTEM_USRSCTP=OFF
-DOPENSSL_ROOT_DIR:PATH=${DESTDIR}
-DOPENSSL_USE_STATIC_LIBS=ON
${_datachannel_source}
)
+23 -7
View File
@@ -1,14 +1,26 @@
set(_conf_cmd ./configure)
set(_ffmpeg_depends)
set(_ffmpeg_configure_command ${_conf_cmd})
if (TARGET dep_OpenSSL)
set(_ffmpeg_depends DEPENDS dep_OpenSSL)
set(_ffmpeg_configure_command
${CMAKE_COMMAND} -E env
"PKG_CONFIG_PATH=${DESTDIR}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}"
${_conf_cmd}
)
endif()
if (MSVC)
set(_source_dir "${CMAKE_BINARY_DIR}/dep_FFMPEG-prefix/src/dep_FFMPEG")
set(PREBUILD_URL_arm64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-07-17-14-28/ffmpeg-n7.0.3-31-g9b6ffd74b5-winarm64-orca-shared-7.0.zip")
set(PREBUILD_HASH_arm64 "12f4140279f2f8469885e1b5b2e8be9d788882914c21523cacd56989f3548054")
set(PREBUILD_URL_x64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-07-17-14-28/ffmpeg-n7.0.3-31-g9b6ffd74b5-win64-orca-shared-7.0.zip")
set(PREBUILD_HASH_x64 "e65916020ddb9ef84b2666dfbcbfc9b1d67f69d15b4a66db53754637bf2d498c")
set(PREBUILD_URL_arm64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-09-18-16-50/ffmpeg-n7.0.3-33-g887d4b4919-winarm64-orca-shared-7.0.zip")
set(PREBUILD_HASH_arm64 "da480cbb39680056de824c57ec4dc3bd577b479ebbc310ff1f9dc55cf014b4c1")
set(PREBUILD_URL_x64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-09-18-16-50/ffmpeg-n7.0.3-33-g887d4b4919-win64-orca-shared-7.0.zip")
set(PREBUILD_HASH_x64 "85da19daf198f5548259d8aabb349db84997a3f6e6886d8d7764114add9c6dae")
ExternalProject_Add(dep_FFMPEG
${_ffmpeg_depends}
URL ${PREBUILD_URL_${DEPS_ARCH}}
URL_HASH SHA256=${PREBUILD_HASH_${DEPS_ARCH}}
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
@@ -21,6 +33,8 @@ if (MSVC)
)
else ()
set(_openssl_cmd --enable-openssl)
if (APPLE)
set(_minos_cmd
"--extra-cflags=-mmacosx-version-min=${DEP_OSX_TARGET}"
@@ -52,10 +66,11 @@ else ()
endif()
ExternalProject_Add(dep_FFMPEG
${_ffmpeg_depends}
URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.3.tar.gz
URL_HASH SHA256=DEEDCABE339165214A3637DF4C86A507AEF0D793CF8774FF68735F4737E8DDBC
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
CONFIGURE_COMMAND ${_conf_cmd}
CONFIGURE_COMMAND ${_ffmpeg_configure_command}
${_cross_cmd}
${_pic_cmd}
${_arch_cmd}
@@ -63,20 +78,21 @@ else ()
"--prefix=${DESTDIR}"
${_link_cmd}
${_minos_cmd}
${_openssl_cmd}
--disable-doc
--enable-small
--disable-outdevs
--disable-filters
--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*
--disable-protocols
--enable-protocol=file,fd,pipe,rtp,udp
--enable-protocol=file,fd,pipe,http,https,rtp,tcp,udp
--disable-muxers
--enable-muxer=rtp
--disable-encoders
--disable-decoders
--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*
--disable-demuxers
--enable-demuxer=h264,mp3,mov
--enable-demuxer=h264,mp3,mov,mpjpeg,rtsp,sdp
--disable-zlib
--disable-avdevice
BUILD_IN_SOURCE ON
+137
View File
@@ -0,0 +1,137 @@
# Deferred Page Construction: High Level Design
## Why it exists
The main window is a notebook of tabs, and only one of them is on screen when the first
frame appears. Others are opened later in the session, some never, and some only exist
for certain printers. Building every tab before the first frame makes each startup pay for
tabs the user may never open.
This subsystem builds a tab the first time it is shown, and builds the rest in small units
while the user is idle after startup. Startup pays only for what the first frame shows,
the other tabs are usually ready before anyone opens them, and a click that lands in the
middle of the idle build waits for one unit at most. Work that is not a tab, such as a
dialog or the 3D view's GL resources, uses the same machinery.
## The parts
The parts are independent. A holder can hold anything a factory makes, a placeholder page
is a holder with a widget, a staged object can live outside a holder, and the scheduler
knows none of them; it runs tasks, which the main window makes from the holders.
### The holder: `Lazy<T>`
A holder keeps one object and the factory that makes it. The rest of the app reads the
object if it exists, makes sure it exists now when about to show or navigate to it, or runs
something once it exists. A type with one instance in the app gets these as statics
through `LazyInstance<T>`, so callers need no reference to the main window, and all of them
are harmless while no holder exists.
The holder guarantees that callers see the object only once it is completely built. A
build cannot re-enter itself, so a nested request finds nothing yet, and a factory that
returns null or a unit that throws leaves the holder and the scheduler able to carry on.
The holder does not own the object; its wx parent does, as for any window. The holder has
no wx dependency and is unit-tested.
### The placeholder page: `LazyPage<Panel>`
The notebook needs a page object for a tab to exist and for tabs to be inserted and
removed by pointer, and the placeholder is that object. It builds the real panel inside
itself the first time it is shown and forwards showing and hiding afterwards, so a panel's
own show handling stays its activation hook. Nothing builds while the main window is
hidden; the window's first show builds the start page. A page that is out of the book is
not prebuilt. A panel built while its page is hidden stays hidden, and gets the theming
the window applied before the panel existed.
### Staged construction: `StagedBuild`
A constructor too big to be one unit builds a skeleton and queues the rest as steps, which
run one per unit. A child panel's steps can be forwarded to its parent, and the parent is
complete only once the child is. Nothing may use what a step builds before the last step
has run, so staged panels follow these constraints:
- members created in steps start out null, so a partly built panel can be destroyed;
- timers, event handlers and destructors that touch step content check that the panel is
complete first;
- nothing takes focus while off screen, since a unit may run while the user is typing
elsewhere;
- a widget added by a step keeps its place in the sizer through an empty slot the skeleton
creates.
### The scheduler: `IdleScheduler` and `PrebuildQueue`
The queue holds tasks in order, and a slice runs units of the first pending task until
the task finishes, the time budget is spent, or input arrives. It has no wx dependency and
is unit-tested with a fake clock. A task whose work goes away, such as a tab removed from
the book, is skipped, and becomes pending again if the work comes back.
A slice runs only once the user has been idle for a short quiet time, and each slice is its
own timer message, so paint, timers and input queued in between are handled before the
next slice. Posting slices as pending events would not do that, because wx drains every
pending event before the next native message. On GTK a timer that is always due starves
the lower-priority sources that repaint and deliver posted events, so slices are a few
milliseconds apart. On Windows a slice also waits while the native queue holds input,
not counting mouse moves, which Windows synthesizes whenever a window appears under the
cursor. A slice never runs inside a `wxYield()`, where it would build pages in the middle of
the code that yielded. A unit cannot be interrupted, so the largest unit bounds how long a
click can wait.
When nothing is pending the timer stops and the subsystem costs nothing.
The main window owns the scheduler because it owns what the tasks build, and clearing the
queue with the window keeps a task from outliving its object. Each owner provides its own
tasks, such as a tab, a dialog, the Prepare tab's settings page one option group at a
time, the Prepare page's layout at the size the book gives its pages, or the 3D view's GL
resources.
### The 3D view's GL resources
OpenGL is loaded on the Prepare tab's canvas. When the start page is not Prepare, loading
it is an idle task that makes the context current on the hidden canvas, so the start page
paints first and Prepare never appears. Loading it on a shown canvas under `Freeze()` holds
back the start page's paint, and on GTK `Freeze()` cannot hide the canvas, which is a
native child window or a Wayland subsurface drawn outside GTK. A hidden Windows child
window keeps its device context, macOS attaches the context to a hidden view, and GTK
creates the canvas's surface when the widget is realized, so on GTK the task realizes the
canvas first. If the context cannot be made current, the canvas's first render loads the
resources.
## Rules
**Before the first frame.** Only the start page and the Prepare tab's plater are built
before the first frame. Everything else goes through a holder.
**Reaching a lazy object.** Callers use the type's statics. Reading it if built is for
things the object can live without, such as a rescale, a color change or a status refresh.
Making sure it exists is for navigating to it or showing it. Running something once it is
built is for state it would not fetch for itself on construction. A panel that pulls its
state when constructed only ever needs to be read if built.
**Unit size.** A unit should fit in one slice on a fast machine. A constructor over that is
staged, and a single widget over it is accepted unless the widget itself can be split.
**Order.** Tasks run cheapest and most likely to be opened first. Each holder's order is
given where it is created, with gaps so a new task fits between its neighbors. A negative
order is never prebuilt, for something few sessions open that costs more to build unasked
than it saves.
## Adopting it
A lazy tab needs a panel type deriving from `LazyInstance`, a placeholder page the main
window creates once with its order and registers for the idle build, and every use of the
panel outside the main window going through the statics. Its constructor has to cope with
the main window already existing and the user being busy elsewhere, so it takes no focus
while off screen, and it does all of its own setup, since the main window does nothing to a
panel after creating it.
To stage a heavy constructor, keep the skeleton in the constructor, move the rest into
steps in its original order, and follow the staged-construction constraints. Measure the
units; a step that is still one big widget is split inside the widget or accepted.
## Verifying
The log lists the queue when it is registered, reports each completed task at info level
and each slice and unit at debug level, and reports every on-demand build with its units
and time. A task's completion line counts only the slice it finished in. A run from the
configured start page should show every registered task complete in order, with no unit
longer than intended. A click on a tab during the idle build should show an on-demand
build for what was left, with the slices resuming once the user is idle again.
+123
View File
@@ -0,0 +1,123 @@
# Multiline infill — High Level Design
## Purpose and scope
`fill_multiline` prints every sparse infill wall as N adjacent lines instead of
one, so a wall is `d1 = N * spacing` thick. Only internal sparse infill uses it.
Each pattern first builds its single-line centerlines at N times the usual line
spacing (so the density holds), and `multiline_fill()` then replaces each
centerline by the lines of that wall: the centerline itself when N is odd, and
closed outlines around it at every `spacing` out to `d1 / 2`. The outlines are
clipped to the fill region contracted by half a line width, then connected like
any other infill.
Outlines of centerlines that cross each other overlap at every crossing, which
over-extrudes the wall intersections. The line-crossing patterns Grid,
Triangles, Tri-hexagon and Cubic therefore build centerlines that never cross
(`FillRectilinear::fill_surface_trapezoidal()`), and so do Adaptive Cubic and
Support Cubic (`FillAdaptive`); the other patterns outline their usual
centerlines.
## Non-crossing centerlines
The crossing lines are resolved into x-monotone paths, the levels of the line
arrangement: walking along x, the k-th path is always the k-th line from the
bottom. At every crossing, the two paths bounce off each other instead of
passing through. Adjacent paths meet only at crossings, so their outlines touch
there and nowhere overlap.
Where two paths meet, each is cut short by a line perpendicular to the bisector
of its bend, `d1 / 2` from the crossing. The two cut segments are parallel and
`d1` apart, so the outermost lines of the two walls sit exactly `spacing` apart,
like the lines inside a wall. Where three lines meet at one point, the middle
path runs straight through and the outer two are cut `d1` from it.
Each pattern builds its rows along x in a rotated frame. Grid lines run at ±45°
there, and its rows are trapezoid waves that transpose on alternate layers. The three families of Triangles, Tri-hexagon and
Cubic run at 0°, 60° and 120°. Those rows rotate by 120° every layer about a
3-fold center of the arrangement, so each family takes every role in turn.
The pattern is phased on fixed positions, so it lines up across layers and
across the regions of one layer. Rounding the corners with
`sparse_infill_smooth_factor` happens before `multiline_fill()`.
## Cubic
Single-line Cubic draws the three families at the same spacing `h` and shifts
them with z: by `+dx`, `-dx` and `+dx`, `dx = z / sqrt(2)`. The multiline paths
follow the same lines. In the frame where one family is horizontal, the other two
cross in rows `h` apart, alternating by half a period, at height
`tau = -3 * dx (mod h)` above the horizontal line below them. The crossings split
every band between horizontal lines into up-pointing triangles of height `tau`,
down-pointing triangles of height `h - tau`, and hexagons. At `tau = 0` (and `h`)
all three families meet at common points, as in Triangles. At `tau = h / 2` the
triangles are equal, as in Tri-hexagon. The origin of that frame is always a
3-fold center, whatever z is, so the per-layer rotation keeps the lines in place.
Each band holds two paths that touch at its crossings: the upper one takes the
V below the crossing and runs along the top horizontal line, and the lower one
takes the inverted V above it and runs along the bottom line. Both are the same function
of `tau`, the lower one mirrored with `h - tau`. `cubic_upper_level()` builds one
period of the upper path as the lower envelope of five lines, clipped from below:
- the two slanted lines through the crossings,
- the horizontal line, lowered when the triangle above it is less than `1.5 * d1` high,
- the two chamfers where the path turns onto and off the horizontal line, `d1 / 2`
from those crossings,
- the flat cut into the V at the crossing.
The cut height `clamp(tau - d1 / 2, 0, h - d1) + d1` is what makes the pattern
continuous in z. While both triangles are at least `1.5 * d1` high, every
crossing is a pair of bends `d1 / 2` from it, as in Tri-hexagon. When a triangle
is thinner, its three paths stack like a triple crossing. The path through it
flattens toward its base line and lies on it once the triangle is under `d1 / 2`
high, and the paths beside it are pushed `d1` away. The layout thus reaches the
Triangles one where the families meet. Adjacent paths stay at least `d1` apart
at every `tau` and at every density up to 100%.
## Adaptive Cubic
Adaptive Cubic and Support Cubic take their lines from an octree of cubes
standing on a corner. On each layer every cube cuts its three mid-planes into
segments of the same three 60° families as Cubic, but the pattern is not
periodic. Smaller cubes near the surface add finer lines, and a finer line ends
where it meets the wall of its coarser cube, so the lines form crossings and
T-junctions. `FillAdaptive::multiline_paths()` builds the paths from these
segments directly, for each fill region and within `4 * d1` of it.
At a crossing the two paths bounce as in Cubic. At a T-junction the through line
runs straight on and the path of the ending line stops there. Every path still
runs left to right in the frame where one family is horizontal, and that family
rotates with the layer.
Every line of every cube size lies on one fine lattice, so crossings closer than
a few `d1` are the corners of one small triangle of that lattice, as in Cubic.
The cuts follow the Cubic rules without a closed formula:
- The two bends of a crossing are cut `d1` apart, `d1 / 2` each, perpendicular
to their bisector, so their walls touch. A cut goes no further than the path
end, and the other bend takes the rest of `d1`.
- At the tip of a small triangle, between the two slanted families, a cut also
goes no further than the neighbouring bend turning the other way, and the
path beyond that bend is kept a wall away from it. The bends onto the
horizontal family are not limited this way: pushing their paths apart would
open gaps between walls that should touch.
- A cut moves the path only where the cut line lies beyond it, near its bend.
The sharp bends between the two slanted families are cut after the bends onto
the horizontal family, so the tip of a small triangle wins, as in Cubic.
- A path stopping at a T-junction is trimmed until it is `d1` less half a line
spacing from every other path, so that its end overlaps the wall it stops on
by half a line and bonds to it. The paths are trimmed one at a time against
the others as already trimmed, so two ends facing each other meet instead of
both backing off. A path stopping on the line of another is trimmed before
that one, so it gives way and the other still reaches the line it stops on. A
second round trims every path again from its full length, so an end grows
back where the ends it gave way to were trimmed later, and a last round only
shortens them, keeping them that far apart. Paths shorter than `d1` are left
out.
- A line that ends on another less than `2 * d1` past a crossing stops at that
crossing instead, the shorter one where both do. The path along such a stub
would be trimmed away, leaving a hole between the walls that were cut to
touch it.
Short paths enclosed by coarser lines still print as closed outlines, but most
paths run on across several cells.
+17 -13
View File
@@ -76,9 +76,10 @@ and the count of errors the original parse hit.
Each entry is one preset **in source form**: what its JSON sub-file states and nothing
that resolving it derives — the preset's own config diff, the name of the preset it
inherits, and the parse metadata (name, sub-path, description, instantiation, setting
and filament ids, renames). Non-instantiated base presets are stored too; the children
that inherit from them cannot resolve without them.
inherits, the names of the presets it includes, and the parse metadata (name, sub-path,
description, instantiation, setting and filament ids, renames). Non-instantiated base
presets are stored too; the children that inherit from or include them cannot resolve
without them.
**The payload names its own keys.** The dictionary holds the distinct `opt_key`s the
file uses, the `ConfigOptionType` each was written as, and the distinct enum *value
@@ -161,9 +162,9 @@ cache nothing can invalidate is worse than no cache.
Vendors load in a fixed order, because filament inheritance crosses exactly one
boundary: any vendor's filament may inherit from the shared Orca filament library,
and nothing else reaches across vendors. The library therefore goes first, alone;
every other vendor follows in parallel, resolving against it; and the results are
merged in a stable order:
and nothing else reaches across vendors — an `include` is always vendor-local. The
library therefore goes first, alone; every other vendor follows in parallel, resolving
against it; and the results are merged in a stable order:
```mermaid
flowchart LR
@@ -211,13 +212,16 @@ and its cache was never written back.
Serving from a cache is not a memory-image restore. The entries are deserialized and
then installed one by one — inheritance resolved against the presets installed before
them and the currently loaded filament library, configs flattened onto the collection
defaults, validated and registered — by the same function the JSON path calls straight
after parsing a sub-file. The two paths share everything below the parse, which is what
makes a cache-loaded bundle indistinguishable from a JSON-loaded one by construction
rather than by test coverage. Installation also rebuilds each preset's file path from
the local data directory, so a shipped cache never carries the generating machine's
paths.
them and the currently loaded filament library, includes layered in, configs flattened
onto the collection defaults, validated and registered — by the same function the JSON
path calls straight after parsing a sub-file. An `include` layers what the included
base states, between the parent and the preset's own keys: the base's diff against the
default, taken when the base itself was installed and before the per-variant padding
`inherits` sees, so only what a template sets reaches the presets including it. The two
paths share everything below the parse, which is what makes a cache-loaded bundle
indistinguishable from a JSON-loaded one by construction rather than by test coverage.
Installation also rebuilds each preset's file path from the local data directory, so a
shipped cache never carries the generating machine's paths.
App upgrades work because a cache normally survives one. Only a deliberate
`CACHE_VERSION` bump makes an installed cache unreadable, and that is handled at
+197
View File
@@ -0,0 +1,197 @@
# Prime tower sparse layers — High Level Design
## Purpose and scope
A prime tower exists to absorb filament changes, but it is planned on every
object layer below the topmost change, not only on the layers that purge. The
layers in between carry no filament change and print nothing but a block of the
tower's own footprint to keep its top level. They are called sparse layers, and
on a print with few changes they are most of the tower: they cost time, filament
and a travel to the tower on every layer.
Two settings trade that cost against something else. `wipe_tower_no_sparse_layers`
drops them, which sinks the tower below the model. `wipe_tower_sparse_layers_combination`
merges runs of them into fewer, thicker layers, which keeps the tower level with
the model. Both are off by default, and with both off the tower prints one layer
per object layer as it always has.
The decisions belong to tower planning and G-code emission. They do not change
sliced object geometry, but they do change the emitted G-code, the filament and
time estimates, and — for the compacted case — whether a plate is printable at
all. Changing either setting invalidates the tower step.
## What a sparse layer is
`ToolOrdering::fill_wipe_tower_partitions` counts the filament changes per layer
and propagates that count downwards, so every layer below the topmost change is
marked as carrying a tower. It then fills any gap between two tower layers, so
the tower is continuous from the bed to its last purge. `wipe_tower_layer_height`
is the distance from the previous tower layer, which is the object's layer height
whenever the tower prints on every layer.
`Print::_make_wipe_tower` plans one tower layer per such object layer. A layer
whose only call keeps the current filament leaves no toolchange in the plan, and
the layer it generates is a single result whose initial and new tool are equal.
That is what `wipe_tower_layer_is_sparse` recognises, and it is the unit both
settings work on.
The plan stays one entry per tower layer in every case. The G-code emitter walks
`WipeTowerData::tool_changes` by layer index, advancing once per object layer
that carries a tower, so a planner that removed entries would silently shift
every later layer onto the wrong tower geometry. Layers that print nothing are
therefore still planned and still generated; they are marked, and the emitter
drops them.
## Shared rules
Tower planning, G-code emission and the plate validation all have to agree about
which layers print and where. They ask one set of free functions, declared beside
the tower classes, rather than each re-deriving the answer from the raw options:
- `wipe_tower_sparse_layers_skipped` — whether sparse layers are really dropped.
Smooth timelapse and clumping detection park the nozzle on the tower every
layer, so with either of them on no layer is ever dropped and the option reads
as off everywhere.
- `wipe_tower_sparse_layers_combined` — whether runs are really merged. The same
two rule it out, and so does `wipe_tower_no_sparse_layers`: dropping the layers
outright is the stronger answer to the same problem, so the two settings are
exclusive and the GUI greys out the second while the first is on.
- `wipe_tower_layer_is_sparse`, `wipe_tower_layer_is_combined_away` — per-layer
questions the emitter asks about generated results.
- `compute_compacted_wipe_tower_z` — the tower's print z per planned layer when
it is compacted.
- `combine_sparse_wipe_tower_layers` and its `combine_sparse_wipe_tower_plan`
wrapper — the merge rule, applied to either generator's plan.
Both tower generators are driven through these. `WipeTower` (Type 1, the block
tower) and `WipeTower2` (Type 2, the default) keep separate plans with the same
per-layer shape — print z, layer height, toolchanges, and a `combined_away` flag
— so one template covers both.
## Dropping sparse layers
With `wipe_tower_no_sparse_layers`, the tower only grows on layers that carry a
real change. It therefore falls one layer height behind the object for every
sparse layer, and by the top of a tall print it can sit far below the model. The
nozzle has to reach down to it at each purge.
`compute_compacted_wipe_tower_z` derives that z once, from the generated results,
so the emitter and the validator cannot disagree. Emission descends to it, but
only once the nozzle is parked over the tower: descending while still over the
model would drive the nozzle into the print, so a descent that would do that is
deferred until after the travel to the tower. Extrusions emitted without an
explicit z — the nozzle-change wipe in particular — are pulled down to the
compacted z for the same reason.
Reaching down is only safe if nothing tall stands near the tower. `Print.hpp`
carries the clearance rule: a keep-out zone grown from the tower's footprint by
the spiral z-hop envelope, and a per-object limit on how high an object may rise
near it, tiered by the nozzle cone, the head body, the rod and the lid. The same
rule serves the precise check on real extrusions, the pre-slice estimate that
feeds the plater, and the outlines the plater draws while an object is dragged,
so that the ring the user sees touches the object's outline exactly when the
check trips.
## Merging sparse layers
With `wipe_tower_sparse_layers_combination`, no layer is dropped and nothing is
compacted: the tower keeps following the object, and the nozzle never descends.
Instead a run of consecutive sparse layers prints once, on the run's last layer,
at the accumulated height of everything it covers — the same way infill
combination merges sparse infill. The layers below it in the run print nothing.
`combine_sparse_wipe_tower_plan` runs before the tower's depths are planned,
because the heights it rewrites feed the extrusion flow of every later pass. It
raises `height` in place on the layer that prints a run and sets `combined_away`
on the rest; generation then proceeds unchanged, and the flag is copied onto the
results so the emitter can drop them.
Four constraints shape the rule:
- **Whole layers only.** A tower layer is entered at the object's z, so a merged
layer has to end on an object layer boundary. The merged height is therefore a
sum of whole layer heights, never a clamped value.
- **The nozzle's maximum layer height.** A run stops growing as soon as one more
layer would pass `max_layer_height` for the nozzle printing it — three quarters
of the nozzle diameter when that is left at 0, as elsewhere in slicing. The cap
is read through the filament-to-nozzle map, since `max_layer_height` is per
nozzle while the tower indexes filaments. This is what makes the setting inert
at common layer heights: two 0.2 mm layers are 0.4 mm and do not fit under a
0.3 mm maximum, so nothing merges until the layer height is 0.15 mm or below,
or the maximum is raised.
- **A filament change purges at its own z.** A layer with a real change can
neither be merged away nor absorb the run below it, so a run always ends on its
own last sparse layer and the change above it is untouched.
- **The first layer stays on the bed.** It carries the brim and is never merged.
A run holds one filament throughout — that is what makes it sparse — so the cap
is uniform across it, and the tower reserves depth only for the purges above a
layer, so a run has one footprint and the merged layer covers exactly the area
the layers it replaces would have.
## Emission and accounting
`WipeTowerIntegration` drops a layer whose results are marked, for both settings,
through the same `ignore_sparse` path in `tool_change` and
`is_empty_wipe_tower_gcode`. A dropped layer emits no travel to the tower and no
extrusion.
Filament used is accumulated by the generators while they write, so a layer that
will be dropped must not be charged. Type 1 asks `layer_is_printed` at each of
its accumulation points; Type 2 guards the equivalent block in `finish_layer`,
which also stops a merged-away layer from adding height of its own — the layer
that prints the run carries all of it.
A merged layer is the only case where the tower's layer height differs from the
object layer it sits on, and therefore the only case where the height the
exporter already emitted for that layer is wrong for the tower. Both generators
do declare a height, but each hardcodes a tag dialect — the block tower forces
the BBL tag, the other writes the compatible one — while the G-code processor
reads only the tag its printer uses. On a non-BBL printer with a Type 1 tower the
declaration is dropped, and the merged layer is drawn and costed as a thin one.
`WipeTowerIntegration::tower_height_tag` therefore declares it at export time,
where the printer is known, and only when the tower's own G-code does not already
carry the tag that will be read. The object's height returns on the next object
path, because emission forces the processor role to the tower on any layer that
carries one.
## Constraints
A layer that prints nothing prints nothing at all, including any interface work
the tower planner scheduled there. The Type 1 block planner marks a layer as a
contact layer when a filament category stops or starts being used relative to the
layer below, and a sparse layer immediately above a change qualifies. Merging a
run, like dropping its layers, replaces that interface with the run's single
layer. Both settings are off by default for this among other reasons.
Neither setting changes what the tower is for. A plate that needs a tower on
every layer — smooth timelapse, clumping detection — gets one, and the settings
read as off rather than compacting or merging in one place and not another.
## Implementation and verification
- [WipeTower.hpp](../../src/libslic3r/GCode/WipeTower.hpp) declares the shared
rules and the plan-merging template;
[WipeTower.cpp](../../src/libslic3r/GCode/WipeTower.cpp) implements them and
the Type 1 tower, [WipeTower2.cpp](../../src/libslic3r/GCode/WipeTower2.cpp)
the Type 2 tower.
- [ToolOrdering.cpp](../../src/libslic3r/GCode/ToolOrdering.cpp) decides which
layers carry a tower at all, and
[Print.cpp](../../src/libslic3r/Print.cpp) plans it and runs the clearance
check whose rule lives in [Print.hpp](../../src/libslic3r/Print.hpp).
- [GCode.cpp](../../src/libslic3r/GCode.cpp) emits the tower, drops the layers
that print nothing, and declares a merged layer's height;
[PrintConfig.cpp](../../src/libslic3r/PrintConfig.cpp) defines the settings and
[ConfigManipulation.cpp](../../src/slic3r/GUI/ConfigManipulation.cpp) their
mutual exclusion.
- [GLCanvas3D.cpp](../../src/slic3r/GUI/GLCanvas3D.cpp) and
[PartPlate.cpp](../../src/slic3r/GUI/PartPlate.cpp) draw the compacted tower's
keep-out outlines live while the user drags.
- [Rule tests](../../tests/libslic3r/test_wipe_tower.cpp) cover the gating of
both settings, the per-layer predicates, the compacted z, the merge rule's run
flushing, height conservation, the nozzle cap and the first-layer exemption,
and the clearance geometry the plater draws.
- [Slicing tests](../../tests/fff_print/test_wipe_tower.cpp) slice a real print
and check that a run folds, that the tower still covers the object exactly
once, that a run too thin for the cap is left alone, and that a merged layer
declares its height in the tag the printer's processor reads.
+240
View File
@@ -0,0 +1,240 @@
# Printer agents
Printer agents isolate printer-specific communication from the rest of OrcaSlicer. The GUI and
`DeviceManager` operate on a shared set of printer operations and device state; a selected printer
agent implements those operations for a particular printer ecosystem. The agent boundary allows
Bambu, Moonraker-based printers, built-in integrations, and Python-provided integrations to use the
same application workflow without making the GUI understand every printer protocol.
The current boundary is an adapter boundary around the existing application contract. In particular,
some request fields and message payloads still use the Bambu-shaped representation that existing
`MachineObject` and `DeviceManager` code consumes. The printer agent is responsible for translating
that representation into the protocol spoken by its printer. This is an intentional compatibility
constraint of the current design; the interface is not yet a neutral printer protocol.
The v1 dialect migration path is deliberately narrow. `DeviceManager` currently speaks the Bambu JSON
dialect because that is the payload shape already used throughout the command and state workflow. The
v1 `OrcaPrinterAgent` also accepts that Bambu dialect. Its transport path places the small translation
needed for the target printer at `deliver_to_sink`, keeping the compatibility code at the edge rather
than spreading it through `DeviceManager` or the agent interface.
The eventual direction is for `DeviceManager` to produce an Orca JSON dialect. The Bambu agent will then
own the translation from Orca JSON to Bambu's protocol, while `OrcaPrinterAgent` can forward the Orca
payload directly to its sink. The v1 translation at `deliver_to_sink` can then be removed without
changing `DeviceManager`, the command callers, or the rest of the agent workflow.
## Components
The system has four relevant layers:
```text
GUI / DeviceManager / MachineObject
|
NetworkAgent
/ \
IPrinterAgent ICloudServiceAgent
| |
printer protocol authentication and cloud services
```
### `DeviceManager` and `MachineObject`
`DeviceManager` owns the application-facing printer workflow. It maintains `MachineObject` instances,
updates their state, filters devices for the active printer agent, and initiates operations such as
homing, temperature changes, printing, subscriptions, and camera playback.
`MachineObject` remains the shared state model used by the GUI. It does not contain the implementation
of a printer protocol. When a device is discovered or returned by a cloud query, the device is tagged
with the active `printer_agent_id`. Device lists and selected-machine operations use that tag to avoid
sending an operation through an agent that does not own the device.
### `NetworkAgent`
`NetworkAgent` is the façade used by the GUI and `DeviceManager`. It owns:
- the currently selected `IPrinterAgent`;
- the registered cloud-service instances, indexed by provider;
- callbacks shared by the active printer agent and the application;
- the forwarding methods for printer commands and cloud operations.
There is one active printer agent for the currently selected printer preset. Switching the preset
increments the machine-list generation, disconnects the old printer agent, removes its callbacks, and
installs the newly selected agent. The façade then forwards printer operations to that agent.
Cloud operations are selected separately using a provider key. `NetworkAgent` forwards a cloud request
to the matching `ICloudServiceAgent`, and forwards cloud camera operations with a device ID. The
printer agent receives a cloud-agent pointer through `set_cloud_agent()` when it is created, allowing
printer communication to obtain cloud tokens without depending on a concrete cloud implementation.
### `IPrinterAgent`
`IPrinterAgent` is the printer-facing contract. It covers:
- cloud-relay and direct-LAN message delivery;
- LAN connection, discovery, binding, and certificates;
- printer subscriptions and callbacks;
- print operations;
- filament synchronization;
- camera capability and local camera URL reporting;
- printer command methods.
Concrete built-in implementations include the Bambu wrapper, the native Orca/Moonraker path, and
other printer-agent implementations registered by the application. A printer agent may use either
the cloud agent, a direct LAN connection, or both.
### `ICloudServiceAgent`
`ICloudServiceAgent` owns authentication and services provided by a cloud backend. It covers login
state, tokens, user and printer lists, settings synchronization, model services, cloud messages, and
cloud camera operations.
Cloud camera operations are device-scoped:
- `get_camera_url(dev_id, callback)` obtains a stream URL for one device;
- `create_camera_signaling_channel(dev_id)` creates signaling for one device where the provider
supports it.
This is separate from the local camera URL exposed by `IPrinterAgent`, which is currently scoped to
the active printer agent because a normal LAN agent represents one physical printer connection.
## Agent registration and selection
`NetworkAgentFactory` maintains the printer-agent registry. Each registry entry contains an agent ID,
a display name, and a factory function. Built-in agents register during application initialization.
Python printer-agent capabilities register dynamically and contribute an agent ID and factory entry.
The selected printer preset contains the printer-agent choice. If no explicit choice is stored, the
application preserves the existing default behavior: Bambu presets select the Bambu agent and other
presets select the native Orca agent. When a preset is changed, `GUI_App` resolves the effective agent
ID, obtains the corresponding cloud agent, creates the printer agent through the registry, and installs
it in `NetworkAgent`.
The registry rejects conflicting agent IDs. This matters for Python plugins because an agent ID is the
stable identity used by presets and device ownership; two enabled plugin capabilities must not claim
the same ID.
## Message and command flow
There are two low-level message paths:
- `send_message()` publishes a command through the printer's cloud relay;
- `send_message_to_printer()` sends a command directly to the printer over the LAN path.
Both paths accept a JSON string, quality-of-service and flag values, and return the existing network
status code domain. The agent owns the conversion from that JSON contract to its native transport.
The typed `command_*` methods are the application-facing convenience layer. The five generic defaults
currently implemented by `IPrinterAgent` construct the existing JSON dialect and route through the
same message path:
| Method | Default operation |
| --- | --- |
| `command_xyz_abs()` | Send `G90` for absolute positioning |
| `command_auto_leveling()` | Send `G29` for bed leveling |
| `command_go_home()` | Use the supported homing operation or send `G28` |
| `command_set_bed()` | Use the supported bed control or send `M140` |
| `command_set_nozzle()` | Send `M104` for nozzle temperature |
These are compatibility defaults for common printer workflows, not a guarantee that every firmware
implements every command identically. An agent can override a method when its protocol needs another
operation. For example, a Klipper configuration may use `BED_MESH_CALIBRATE` instead of `G29`.
The remaining common command methods default to `ORCA_NETWORK_ERR_CMD_NOT_SUPPORTED` because their
existing behavior is vendor-specific or has no portable implementation:
- AMS RFID refresh;
- AMS calibration;
- AMS tray selection;
- camera start;
- axis control.
The methods remain on the common interface so an agent that supports them can override them explicitly.
`sequence_id` remains part of the command contract because `DeviceManager` creates and tracks it as
the command ID.
## Device ownership and stale responses
Printer-agent ownership is represented by `printer_agent_id` on device records and `MachineObject`
instances. The active agent ID is attached when a device is discovered, returned by a cloud list, or
reused after a preset switch. Local-machine configuration also persists the agent ID so a saved LAN
device is not silently reused by an unrelated agent.
Cloud printer-list responses carry three pieces of request context added by `NetworkAgent`:
```text
provider cloud provider used for the request
agent_id active printer agent when the request was made
generation machine-list generation when the request was made
```
`DeviceManager` accepts the response only when those values still match the current provider, active
agent, and generation. This prevents a slow response from the previous preset or provider from
repopulating the current device list.
The provider mapping is currently selected by `GUI_App`: the Bambu agent maps to the Bambu cloud
provider and other agents map to the Orca cloud provider. The generation check protects that existing
selection from races; it does not make cloud-provider ownership intrinsic to an agent. Cloud-printer
ownership and the broader Orca cloud services are therefore still separate architectural concerns.
## Python printer agents
`PrinterAgentPluginCapability` implements `IPrinterAgent` directly. The live capability object is
registered with `NetworkAgentFactory` and handed out as the printer agent when its agent ID is selected.
The plugin receives the selected `ICloudServiceAgent` through `set_cloud_agent()` just like a built-in
printer agent.
Python plugins must implement the core communication and lifecycle methods required by the interface,
including agent metadata, printer connection, discovery callbacks, and the two message-send methods.
Methods that are meaningful only to a particular printer are optional overrides where the C++ base
class provides a default.
All ten `command_*` methods are available in the Python binding and in the trampoline. Their override
status is intentionally optional:
- the five generic commands use the C++ default when Python does not override them;
- the five vendor-specific commands return `NOT_SUPPORTED` unless Python supplies an implementation;
- a Python implementation can replace either behavior for its own protocol.
The Python camera binding exposes HTTP, HTTPS, RTSP, and HTTP-snapshot modes. WebRTC remains a
built-in C++ camera mode, but is not exposed as a Python mode because the current Python capability
does not provide the corresponding cloud signaling-channel contract.
## Camera playback boundary
The camera stream mode describes how a stream is obtained; it does not by itself define ownership of
the wxWidgets view that renders it. `MediaPlayCtrl` selects and tears down the active backend, while
the wx parent owns the child window or renderer. This is important because a web view, native media
control, and frame-based/WebRTC renderer have different wx window-lifetime requirements.
Cloud URL and signaling requests are routed through `NetworkAgent` to the cloud provider selected for
the device. Local URL requests are routed to the active printer agent. The distinction keeps cloud
account services device-scoped while preserving the current one-LAN-agent/one-printer model.
## Compatibility constraints
The printer-agent boundary intentionally preserves several existing application contracts:
- Bambu-shaped JSON is still the shared command representation;
- existing network status codes are reused, with Orca-specific unsupported/capability errors added
in the Orca-reserved range;
- `MachineObject` remains the shared device-state model;
- preset and local-machine data retain compatibility with the existing agent-selection behavior;
- Python plugins use the existing capability and pybind11 registration system.
The agent abstraction is therefore responsible for containing vendor differences, not for pretending
that all vendor protocols are identical. The planned Orca JSON dialect is the protocol-neutral command
model for the `DeviceManager`/agent boundary. Once it is introduced, Bambu-specific translation remains
inside the Bambu agent and the Orca agent's v1 sink adapter can be removed as a self-contained cleanup.
## Main implementation locations
- [`IPrinterAgent`](../../src/slic3r/Utils/IPrinterAgent.hpp) — printer-agent contract and generic command defaults
- [`ICloudServiceAgent`](../../src/slic3r/Utils/ICloudServiceAgent.hpp) — cloud service and per-device
cloud camera contract
- [`NetworkAgent`](../../src/slic3r/Utils/NetworkAgent.hpp) — façade and dispatch between active agents
- [`NetworkAgentFactory`](../../src/slic3r/Utils/NetworkAgentFactory.hpp) — built-in and Python agent registry
- [`DeviceManager`](../../src/slic3r/GUI/DeviceCore/DevManager.cpp) — device ownership, filtering, and
stale-response checks
- [`PrinterAgentPluginCapability`](../../src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.cpp)
— Python bindings
- [`MediaPlayCtrl`](../../src/slic3r/GUI/MediaPlayCtrl.cpp) — camera backend selection and playback lifecycle
+4 -4
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -6161,9 +6161,6 @@ msgstr ""
msgid "Preferences"
msgstr ""
msgid "Open speed dial"
msgstr ""
msgctxt "Menu"
msgid "Edit"
msgstr ""
@@ -6171,6 +6168,9 @@ msgstr ""
msgid "View"
msgstr ""
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr ""
+4 -4
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2025-03-15 10:55+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -6637,9 +6637,6 @@ msgstr "Mostrar el contorn al voltant de l'objecte seleccionat a l'escena 3D"
msgid "Preferences"
msgstr "Preferències"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6648,6 +6645,9 @@ msgstr "Edita"
msgid "View"
msgstr "Vista"
msgid "Open Speed Dial"
msgstr ""
# AI Translated
msgid "Preset Bundle"
msgstr "Paquet de perfils"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Jakub Hencl\n"
"Language-Team: \n"
@@ -6602,9 +6602,6 @@ msgstr "Zobrazit obrys kolem vybraného objektu ve 3D scéně."
msgid "Preferences"
msgstr "Předvolby"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6613,6 +6610,9 @@ msgstr "Upravit"
msgid "View"
msgstr "Zobrazit"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Balík předvoleb"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Heiko Liebscher <hliebschergmail.com>\n"
"Language-Team: \n"
@@ -6490,9 +6490,6 @@ msgstr "Kontur um das ausgewählte Objekt in der 3D-Szene anzeigen."
msgid "Preferences"
msgstr "Einstellungen"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6501,6 +6498,9 @@ msgstr "Bearbeiten"
msgid "View"
msgstr "Ansicht"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Vorlagen-Bundle"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-06-17 15:44-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: \n"
@@ -6157,9 +6157,6 @@ msgstr ""
msgid "Preferences"
msgstr ""
msgid "Open speed dial"
msgstr ""
msgctxt "Menu"
msgid "Edit"
msgstr ""
@@ -6167,6 +6164,9 @@ msgstr ""
msgid "View"
msgstr ""
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr ""
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Ian A. Bassi <>\n"
"Language-Team: \n"
@@ -6346,9 +6346,6 @@ msgstr "Mostrar el contorno alrededor del objeto seleccionado en la escena 3D."
msgid "Preferences"
msgstr "Preferencias"
msgid "Open speed dial"
msgstr ""
msgctxt "Menu"
msgid "Edit"
msgstr "Edición"
@@ -6356,6 +6353,9 @@ msgstr "Edición"
msgid "View"
msgstr "Vista"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Paquete de perfiles"
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-07-20 13:33+0200\n"
"Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n"
"Language-Team: \n"
@@ -6392,9 +6392,6 @@ msgstr "Erakutsi hautatutako objektuaren inguruko ingerada 3D eszenan."
msgid "Preferences"
msgstr "Hobespenak"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6403,6 +6400,9 @@ msgstr "Editatu"
msgid "View"
msgstr "Bista"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Aurrezarpen-paketea"
+4 -4
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Guislain Cyril, Thomas Lété\n"
@@ -6439,9 +6439,6 @@ msgstr "Afficher le tracé contour de l’objet sélectionné dans la scène 3D.
msgid "Preferences"
msgstr "Préférences"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6450,6 +6447,9 @@ msgstr "Édition"
msgid "View"
msgstr "Affichage"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Paquet de préréglages"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -6541,9 +6541,6 @@ msgstr "Körvonal megjelenítése a kijelölt objektum körül a 3D nézetben."
msgid "Preferences"
msgstr "Beállítások"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6552,6 +6549,9 @@ msgstr "Szerkesztés"
msgid "View"
msgstr "Nézet"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Beállításcsomag"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -6543,9 +6543,6 @@ msgstr "Mostra il contorno attorno all'oggetto selezionato nella scena 3D."
msgid "Preferences"
msgstr "Preferenze"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6554,6 +6551,9 @@ msgstr "Modifica"
msgid "View"
msgstr "Vista"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Pacchetto profili"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -6553,9 +6553,6 @@ msgstr "3Dシーンで選択したオブジェクトの周りにアウトライ
msgid "Preferences"
msgstr "設定"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6564,6 +6561,9 @@ msgstr "編集"
msgid "View"
msgstr "表示"
msgid "Open Speed Dial"
msgstr ""
# AI Translated
msgid "Preset Bundle"
msgstr "プリセットバンドル"
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2025-06-02 17:12+0900\n"
"Last-Translator: crwusiz <crwusiz@gmail.com>\n"
"Language-Team: \n"
@@ -6566,9 +6566,6 @@ msgstr "3D 장면에서 선택한 객체 주변에 윤곽선 표시"
msgid "Preferences"
msgstr "기본 설정"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6577,6 +6574,9 @@ msgstr "편집"
msgid "View"
msgstr "시점"
msgid "Open Speed Dial"
msgstr ""
# AI Translated
msgid "Preset Bundle"
msgstr "사전 설정 번들"
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-07-02 14:13+0300\n"
"Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n"
"Language-Team: \n"
@@ -6528,9 +6528,6 @@ msgstr "Rodyti kontūrą aplink pasirinktą objektą 3D scenoje."
msgid "Preferences"
msgstr "Parinktys"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6539,6 +6536,9 @@ msgstr "Redaguoti"
msgid "View"
msgstr "Vaizdas"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Profilių rinkinys"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -7122,9 +7122,6 @@ msgstr "Toon een omtrek rond het geselecteerde object in de 3D-scène."
msgid "Preferences"
msgstr "Voorkeuren"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -7133,6 +7130,9 @@ msgstr "Bewerken"
msgid "View"
msgstr "Weergave"
msgid "Open Speed Dial"
msgstr ""
# AI Translated
msgid "Preset Bundle"
msgstr "Voorinstellingenbundel"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OrcaSlicer 2.3.0-rc\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n"
"Language-Team: \n"
@@ -6689,9 +6689,6 @@ msgstr "Przełącza wyświetlanie konturu wokół zaznaczonego obiektu w scenie
msgid "Preferences"
msgstr "Preferencje"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6700,6 +6697,9 @@ msgstr "Edycja"
msgid "View"
msgstr "Widok"
msgid "Open Speed Dial"
msgstr ""
# AI Translated
msgid "Preset Bundle"
msgstr "Pakiet profili"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-07-26 11:14-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: Portuguese, Brazilian\n"
@@ -6363,9 +6363,6 @@ msgstr "Mostrar contorno ao redor do objeto selecionado na cena 3D."
msgid "Preferences"
msgstr "Preferências"
msgid "Open speed dial"
msgstr ""
msgctxt "Menu"
msgid "Edit"
msgstr "Editar"
@@ -6373,6 +6370,9 @@ msgstr "Editar"
msgid "View"
msgstr "Visualizar"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Pacote de Predefinições"
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OrcaSlicer V2.5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-02-25 13:38+0300\n"
"Last-Translator: Felix14_v2\n"
"Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n"
@@ -6597,9 +6597,6 @@ msgstr "Отображение контура вокруг выбранных м
msgid "Preferences"
msgstr "Настройки"
msgid "Open speed dial"
msgstr ""
msgctxt "Menu"
msgid "Edit"
msgstr "Правка"
@@ -6607,6 +6604,9 @@ msgstr "Правка"
msgid "View"
msgstr "Вид"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Пакет профилей"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -7205,9 +7205,6 @@ msgstr "Visa en kontur runt det markerade objektet i 3D-scenen."
msgid "Preferences"
msgstr "Inställningar"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -7216,6 +7213,9 @@ msgstr "Redigera"
msgid "View"
msgstr "Vy"
msgid "Open Speed Dial"
msgstr ""
# AI Translated
msgid "Preset Bundle"
msgstr "Förinställningspaket"
+4 -4
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-06-19 13:40+0700\n"
"Last-Translator: Icezaza\n"
"Language-Team: Thai\n"
@@ -6520,9 +6520,6 @@ msgstr "แสดงเค้าร่างรอบๆ วัตถุที
msgid "Preferences"
msgstr "การตั้งค่า"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6531,6 +6528,9 @@ msgstr "แก้ไข"
msgid "View"
msgstr "มุมมอง"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "ชุดที่ตั้งไว้ล่วงหน้า"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-08-21 23:18+0300\n"
"Last-Translator: GlauTech\n"
"Language-Team: \n"
@@ -6588,9 +6588,6 @@ msgstr "3D sahnede seçilen nesnenin etrafındaki ana hatları göster."
msgid "Preferences"
msgstr "Tercihler"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6599,6 +6596,9 @@ msgstr "Düzen"
msgid "View"
msgstr "Görünüm"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Ön ayar paketi"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: orcaslicerua\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-07-17 16:25+0300\n"
"Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n"
"Language-Team: Ukrainian\n"
@@ -6557,9 +6557,6 @@ msgstr "Показувати контур навколо виділеного о
msgid "Preferences"
msgstr "Налаштування"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6568,6 +6565,9 @@ msgstr "Редагування"
msgid "View"
msgstr "Вигляд"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "Набір пресетів"
+4 -4
View File
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2025-10-02 17:43+0700\n"
"Last-Translator: \n"
"Language-Team: hainguyen.ts13@gmail.com\n"
@@ -6907,9 +6907,6 @@ msgstr "Hiện đường viền xung quanh vật thể đã chọn trong cảnh
msgid "Preferences"
msgstr "Tùy chọn"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6918,6 +6915,9 @@ msgstr "Chỉnh sửa"
msgid "View"
msgstr "Xem"
msgid "Open Speed Dial"
msgstr ""
# AI Translated
msgid "Preset Bundle"
msgstr "Gói cài đặt sẵn"
+4 -4
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Slic3rPE\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2026-06-11 12:37-0300\n"
"Last-Translator: Handle <mail@bysb.net>\n"
"Language-Team: \n"
@@ -6375,9 +6375,6 @@ msgstr "在3D场景中显示选中对象的轮廓"
msgid "Preferences"
msgstr "偏好设置"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6386,6 +6383,9 @@ msgstr "编辑"
msgid "View"
msgstr "视图"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "预设包"
+4 -4
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-22 12:39+0800\n"
"POT-Creation-Date: 2026-09-22 17:02+0800\n"
"PO-Revision-Date: 2025-11-28 13:48-0600\n"
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
"Language-Team: \n"
@@ -6505,9 +6505,6 @@ msgstr "在 3D 場景中顯示選定物件的輪廓"
msgid "Preferences"
msgstr "偏好設定"
msgid "Open speed dial"
msgstr ""
# AI Translated
msgctxt "Menu"
msgid "Edit"
@@ -6516,6 +6513,9 @@ msgstr "編輯"
msgid "View"
msgstr "視角"
msgid "Open Speed Dial"
msgstr ""
msgid "Preset Bundle"
msgstr "設定檔組"
@@ -6,6 +6,7 @@
"instantiation": "false",
"gcode_flavor": "marlin2",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n",
"file_start_gcode": ";TIME:{print_time_sec}s",
"machine_start_gcode": "M4899 T3 ; Enable v3 jerk and S-curve acceleration \nM104 S150 ; Set hotend temp to 150 degrees to prevent ooze\nM190 S{first_layer_bed_temperature[0]} ; set and wait for bed temp to stabilize\nM109 S{first_layer_temperature[0]} ; set final nozzle temp to stabilize\nG28 ;Home\n;LAYER_COUNT:{total_layer_count}",
"machine_end_gcode": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM18",
"change_filament_gcode": "M600",
+193 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Anycubic",
"version": "02.04.00.05",
"version": "02.04.00.07",
"force_update": "0",
"description": "Anycubic configurations",
"machine_model_list": [
@@ -48,6 +48,10 @@
"name": "Anycubic Kobra 3 Max",
"sub_path": "machine/Anycubic Kobra 3 Max.json"
},
{
"name": "Anycubic Kobra 3 V2",
"sub_path": "machine/Anycubic Kobra 3 V2.json"
},
{
"name": "Anycubic Kobra Max",
"sub_path": "machine/Anycubic Kobra Max.json"
@@ -102,6 +106,10 @@
"name": "0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "process/0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "0.08mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.08mm Standard @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.08mm Standard @Anycubic Kobra S1 Max 0.25 nozzle",
"sub_path": "process/0.08mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json"
@@ -118,6 +126,10 @@
"name": "0.10mm Detail @Anycubic Kobra 3 0.2 nozzle",
"sub_path": "process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json"
},
{
"name": "0.10mm Standard @Anycubic Kobra 3 V2 0.2 nozzle",
"sub_path": "process/0.10mm Standard @Anycubic Kobra 3 V2 0.2 nozzle.json"
},
{
"name": "0.10mm Standard @Anycubic Kobra S1 Max 0.25 nozzle",
"sub_path": "process/0.10mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json"
@@ -142,6 +154,10 @@
"name": "0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "process/0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "0.12mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.12mm Standard @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.12mm Standard @Anycubic Kobra S1 Max 0.25 nozzle",
"sub_path": "process/0.12mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json"
@@ -214,6 +230,10 @@
"name": "0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "process/0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "0.16mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.16mm Standard @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle",
"sub_path": "process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json"
@@ -286,6 +306,10 @@
"name": "0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "process/0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "0.20mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json"
@@ -342,6 +366,10 @@
"name": "0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "process/0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "0.24mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.24mm Standard @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.24mm Standard @Anycubic Kobra S1 Max 0.4 nozzle",
"sub_path": "process/0.24mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json"
@@ -370,6 +398,10 @@
"name": "0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "process/0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "0.28mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.28mm Standard @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle",
"sub_path": "process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json"
@@ -426,6 +458,10 @@
"name": "0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle",
"sub_path": "process/0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json"
},
{
"name": "0.30mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "process/0.30mm Standard @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "0.30mm Standard @Anycubic Kobra S1 Max 0.6 nozzle",
"sub_path": "process/0.30mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json"
@@ -454,6 +490,10 @@
"name": "0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "process/0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "0.40mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "process/0.40mm Standard @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "0.40mm Standard @Anycubic Kobra S1 Max 0.8 nozzle",
"sub_path": "process/0.40mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json"
@@ -477,6 +517,34 @@
{
"name": "0.56mm Standard @Anycubic Kobra S1 Max 0.8 nozzle",
"sub_path": "process/0.56mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json"
},
{
"name": "0.12mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.12mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.16mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.16mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.20mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "process/0.20mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "0.24mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "process/0.24mm Standard @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "0.36mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "process/0.36mm Standard @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "0.32mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "process/0.32mm Standard @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "0.48mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "process/0.48mm Standard @Anycubic Kobra 3 V2 0.8 nozzle.json"
}
],
"filament_list": [
@@ -528,6 +596,10 @@
"name": "Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "Anycubic ABS @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic ABS @Anycubic Kobra S1 0.4 nozzle",
"sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json"
@@ -564,6 +636,10 @@
"name": "Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "Anycubic ASA @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic ASA @Anycubic Kobra S1 0.4 nozzle",
"sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json"
@@ -704,6 +780,10 @@
"name": "Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "Anycubic PETG @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PETG @Anycubic Kobra S1 0.4 nozzle",
"sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json"
@@ -768,6 +848,22 @@
"name": "Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.2 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 V2 0.2 nozzle.json"
},
{
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "Anycubic PLA @Anycubic Kobra S1 0.4 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json"
@@ -792,6 +888,22 @@
"name": "Anycubic PLA @Anycubic Kobra X 0.4 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "filament/Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "filament/Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "Anycubic PLA Glow @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json"
@@ -800,6 +912,10 @@
"name": "Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "Anycubic PLA High Speed @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle",
"sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json"
@@ -824,10 +940,26 @@
"name": "Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Marble @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Marble @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Marble @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "filament/Anycubic PLA Marble @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "Anycubic PLA Marble @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "filament/Anycubic PLA Marble @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Matte @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json"
@@ -844,10 +976,30 @@
"name": "Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Metal @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Metal @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Metal @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "filament/Anycubic PLA Metal @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "Anycubic PLA Metal @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "filament/Anycubic PLA Metal @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "Anycubic PLA SE @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA SE @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Silk @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json"
@@ -868,6 +1020,10 @@
"name": "Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Translucent @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Translucent @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle",
"sub_path": "filament/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle.json"
@@ -980,6 +1136,10 @@
"name": "Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "Anycubic TPU @Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic TPU @Anycubic Kobra S1 0.4 nozzle",
"sub_path": "filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json"
@@ -1016,6 +1176,22 @@
"name": "Anycubic PETG @Anycubic Kobra 3 0.4 nozzle",
"sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json"
},
{
"name": "Anycubic PETG @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "Anycubic PLA Silk @Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "Anycubic PETG @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "Anycubic PLA Silk @Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle",
"sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json"
@@ -1174,6 +1350,22 @@
"name": "Anycubic Kobra 3 Max 0.8 nozzle",
"sub_path": "machine/Anycubic Kobra 3 Max 0.8 nozzle.json"
},
{
"name": "Anycubic Kobra 3 V2 0.2 nozzle",
"sub_path": "machine/Anycubic Kobra 3 V2 0.2 nozzle.json"
},
{
"name": "Anycubic Kobra 3 V2 0.4 nozzle",
"sub_path": "machine/Anycubic Kobra 3 V2 0.4 nozzle.json"
},
{
"name": "Anycubic Kobra 3 V2 0.6 nozzle",
"sub_path": "machine/Anycubic Kobra 3 V2 0.6 nozzle.json"
},
{
"name": "Anycubic Kobra 3 V2 0.8 nozzle",
"sub_path": "machine/Anycubic Kobra 3 V2 0.8 nozzle.json"
},
{
"name": "Anycubic Kobra Max 0.4 nozzle",
"sub_path": "machine/Anycubic Kobra Max 0.4 nozzle.json"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 44 KiB

@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic ABS @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_abs",
"from": "system",
"setting_id": "LXkKhWH9YcYPr3IT",
"filament_id": "OF223rZv",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic ABS @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"ABS"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"5"
],
"nozzle_temperature": [
"250"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"5"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"20"
],
"fan_max_speed": [
"15"
],
"fan_min_speed": [
"1"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"0"
],
"filament_density": [
"1.05"
],
"filament_deretraction_speed": [
"80"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"70%"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"1"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"2"
],
"filament_retraction_minimum_travel": [
"1"
],
"filament_retraction_speed": [
"80"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"100"
],
"hot_plate_temp": [
"90"
],
"hot_plate_temp_initial_layer": [
"90"
],
"nozzle_temperature_initial_layer": [
"250"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"15"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"16"
],
"slow_down_min_speed": [
"25"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"90"
],
"textured_plate_temp_initial_layer": [
"90"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic ASA @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_asa",
"from": "system",
"setting_id": "cWBQa7XzDl3czIOs",
"filament_id": "OF0yFLkY",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic ASA @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"ASA"
],
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"12"
],
"nozzle_temperature": [
"270"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"5"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"20"
],
"fan_max_speed": [
"15"
],
"fan_min_speed": [
"1"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"30"
],
"filament_density": [
"1.04"
],
"filament_deretraction_speed": [
"80"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"70%"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"1"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"2"
],
"filament_retraction_minimum_travel": [
"1"
],
"filament_retraction_speed": [
"80"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"100"
],
"hot_plate_temp": [
"100"
],
"hot_plate_temp_initial_layer": [
"100"
],
"nozzle_temperature_initial_layer": [
"270"
],
"nozzle_temperature_range_high": [
"280"
],
"nozzle_temperature_range_low": [
"240"
],
"overhang_fan_speed": [
"15"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"16"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"110"
],
"textured_plate_temp": [
"100"
],
"textured_plate_temp_initial_layer": [
"100"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PETG @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "suyxKj9qKLtpBhhU",
"filament_id": "OFo6n2pB",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PETG @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"PETG"
],
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"8"
],
"nozzle_temperature": [
"230"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"5"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"20"
],
"fan_max_speed": [
"80"
],
"fan_min_speed": [
"15"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"0"
],
"filament_density": [
"1.23"
],
"filament_deretraction_speed": [
"80"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"80%"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"1"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"2"
],
"filament_retraction_minimum_travel": [
"1"
],
"filament_retraction_speed": [
"80"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"6"
],
"hot_plate_temp": [
"70"
],
"hot_plate_temp_initial_layer": [
"70"
],
"nozzle_temperature_initial_layer": [
"230"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"90"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"10"
],
"slow_down_min_speed": [
"25"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"70"
],
"textured_plate_temp_initial_layer": [
"70"
]
}
@@ -1,77 +1,69 @@
{
"type": "filament",
"name": "Sovol Zero PETG HS Nozzle",
"inherits": "Generic PETG @System",
"name": "Anycubic PETG @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle",
"from": "system",
"setting_id": "AfxHmpdOkMDJa2fk",
"filament_id": "OFymnal9",
"setting_id": "0uOqeEk5YgyZH4Yy",
"filament_id": "OFo6n2pB",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PETG @Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_type": [
"PETG"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_flow_ratio": [
"0.98"
"0.96"
],
"enable_pressure_advance": "1",
"pressure_advance": "0.048",
"filament_max_volumetric_speed": [
"15"
],
"nozzle_temperature_initial_layer": [
"265"
"8"
],
"nozzle_temperature": [
"250"
],
"nozzle_temperature_range_low": [
"230"
],
"nozzle_temperature_range_high": [
"280"
"close_fan_the_first_x_layers": [
"3"
],
"hot_plate_temp": [
"85"
],
"hot_plate_temp_initial_layer": [
"85"
"fan_cooling_layer_time": [
"30"
],
"fan_min_speed": [
"10"
],
"fan_max_speed": [
"40"
],
"fan_cooling_layer_time": [
"50"
"filament_density": [
"1.23"
],
"full_fan_speed_layer": [
"3"
"0"
],
"slow_down_layer_time": [
"10"
"hot_plate_temp": [
"75"
],
"slow_down_min_speed": [
"10"
"hot_plate_temp_initial_layer": [
"75"
],
"nozzle_temperature_initial_layer": [
"230"
],
"nozzle_temperature_range_high": [
"260"
],
"nozzle_temperature_range_low": [
"210"
],
"overhang_fan_speed": [
"70"
"80"
],
"overhang_fan_threshold": [
"10%"
],
"slow_down_layer_time": [
"10"
],
"temperature_vitrification": [
"60"
],
"close_fan_the_first_x_layers": [
"1"
],
"filament_retraction_length": [
"0.5"
],
"filament_z_hop": [
"0.4"
],
"activate_air_filtration": "1",
"during_print_exhaust_fan_speed": "50",
"complete_print_exhaust_fan_speed": "50",
"compatible_printers": [
"Sovol Zero 0.4 nozzle"
"70"
]
}
@@ -0,0 +1,42 @@
{
"type": "filament",
"name": "Anycubic PETG @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle",
"from": "system",
"setting_id": "OOOjWFMFhP1fMhFf",
"filament_id": "OFo6n2pB",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PETG @Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PETG"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"12"
],
"nozzle_temperature": [
"220"
],
"filament_retraction_length": [
"0.8"
],
"hot_plate_temp": [
"70"
],
"hot_plate_temp_initial_layer": [
"70"
],
"nozzle_temperature_initial_layer": [
"220"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.2 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "uJRZr6orTVm79FeE",
"filament_id": "OFmjN2bc",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.2 nozzle"
],
"filament_type": [
"PLA"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"1.6"
],
"nozzle_temperature": [
"230"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.2 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"230"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "udLvkeYZ9Av7GkDz",
"filament_id": "OFmjN2bc",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"PLA"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12"
],
"nozzle_temperature": [
"210"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_max_speed": [
"80"
],
"fan_min_speed": [
"60"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "W69H1Vca3f74FfYj",
"filament_id": "OFmjN2bc",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"12"
],
"nozzle_temperature": [
"220"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"65"
],
"textured_plate_temp_initial_layer": [
"65"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "TR27JCwXxHeVhVHN",
"filament_id": "OFmjN2bc",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"12"
],
"nozzle_temperature": [
"205"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_max_speed": [
"60"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.6"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"60"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"215"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "i0FTxiH68CKHiLLT",
"filament_id": "OF80Qbpq",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_max_speed": [
"80"
],
"fan_min_speed": [
"60"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"210"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,258 @@
{
"type": "filament",
"name": "Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "XHa1HSjh0RjAo0nz",
"filament_id": "OF80Qbpq",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_flow_ratio": [
"0.94"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"40"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.5"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"40"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"Slope Lift"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature": [
"210"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_layer_time_BRASS": [
"10"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"65"
],
"textured_plate_temp_initial_layer": [
"65"
]
}
@@ -0,0 +1,261 @@
{
"type": "filament",
"name": "Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "iRVPFxNMEfkCDnMh",
"filament_id": "OF80Qbpq",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Galaxy @Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_max_speed": [
"60"
],
"fan_max_speed_BRASS": [
"100"
],
"fan_min_speed": [
"80"
],
"fan_min_speed_BRASS": [
"100"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"40"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.5"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"40"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"205"
],
"nozzle_temperature_initial_layer": [
"215"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Glow @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "itTckVFabfsVbNBK",
"filament_id": "OF5PtjTp",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PLA Glow @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"PLA"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"7.2"
],
"nozzle_temperature": [
"210"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"0"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"40"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"0%"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"1"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.8"
],
"filament_retraction_minimum_travel": [
"2"
],
"filament_retraction_speed": [
"60"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_z_hop": [
"0.4"
],
"filament_z_hop_types": [
"Auto Lift"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"9"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA High Speed @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "YLxoiuRDXBWLQYw4",
"filament_id": "OFjVOWfJ",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PLA High Speed @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"PLA"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"18"
],
"nozzle_temperature": [
"205"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"2"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"210"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.035"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"7"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Marble @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "JwcCfY4XVCRJaDeS",
"filament_id": "OFCSyK66",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Marble @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.2"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"Slope Lift"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"210"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Marble @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "Sjw7irNgwCZMfWS3",
"filament_id": "OFCSyK66",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Marble @Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_flow_ratio": [
"0.94"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"50"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.2"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"40"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"Slope Lift"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature": [
"210"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"65"
],
"textured_plate_temp_initial_layer": [
"65"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Marble @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "HeQwxU4T2W1V0LM3",
"filament_id": "OFCSyK66",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Marble @Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"40"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.5"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"40"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"Slope Lift"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"205"
],
"nozzle_temperature_initial_layer": [
"210"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.035"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Matte @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "H3PIqeTzjvtFQXYv",
"filament_id": "OFIE3vOf",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PLA Matte @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"PLA"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"9"
],
"nozzle_temperature": [
"210"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"0"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.8"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"30"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"10"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"65"
],
"textured_plate_temp_initial_layer": [
"65"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Metal @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "4zmGMIi6jHJhU4c6",
"filament_id": "OF5F0S66",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Metal @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_flow_ratio": [
"0.97"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"40"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.8"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"30"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"210"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Metal @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "wLkJ1CJgdWnT4NoJ",
"filament_id": "OF5F0S66",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Metal @Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_flow_ratio": [
"0.94"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"50"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.2"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"40"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"Slope Lift"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature": [
"210"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"65"
],
"textured_plate_temp_initial_layer": [
"65"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Metal @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "kkcDxmDe6F9fwhoJ",
"filament_id": "OF5F0S66",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Metal @Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_max_speed": [
"60"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"40"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.5"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"40"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"Slope Lift"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"205"
],
"nozzle_temperature_initial_layer": [
"215"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.035"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA SE @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "QRl3zpmacQ8D8aNX",
"filament_id": "OFCp3Bgo",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PLA SE @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"PLA"
],
"filament_flow_ratio": [
"0.97"
],
"filament_max_volumetric_speed": [
"12"
],
"nozzle_temperature": [
"210"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.8"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"30"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"14"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"65"
],
"textured_plate_temp_initial_layer": [
"65"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic PLA Silk @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "qF5SGZKoINokZfx2",
"filament_id": "OFFwJWea",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic PLA Silk @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"PLA"
],
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"7.2"
],
"nozzle_temperature": [
"220"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.5"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"30"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature_initial_layer": [
"230"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"10"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"65"
],
"textured_plate_temp_initial_layer": [
"65"
]
}
@@ -0,0 +1,51 @@
{
"type": "filament",
"name": "Anycubic PLA Silk @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle",
"from": "system",
"setting_id": "6aUrszW2Dj8CNYIp",
"filament_id": "OFFwJWea",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Silk @Anycubic Kobra 3 V2 0.6 nozzle"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.6 nozzle"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"7.2"
],
"nozzle_temperature": [
"220"
],
"enable_pressure_advance": [
"1"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_retraction_length": [
"1.2"
],
"filament_retraction_speed": [
"60"
],
"nozzle_temperature_initial_layer": [
"230"
],
"pressure_advance": [
"0.025"
],
"slow_down_layer_time": [
"10"
]
}
@@ -0,0 +1,51 @@
{
"type": "filament",
"name": "Anycubic PLA Silk @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle",
"from": "system",
"setting_id": "f8K19ebfxiXji84y",
"filament_id": "OFFwJWea",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Silk @Anycubic Kobra 3 V2 0.8 nozzle"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.8 nozzle"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"7.2"
],
"nozzle_temperature": [
"220"
],
"enable_pressure_advance": [
"1"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"filament_retraction_length": [
"1.2"
],
"filament_retraction_speed": [
"80"
],
"hot_plate_temp": [
"65"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature_initial_layer": [
"230"
],
"pressure_advance": [
"0.025"
]
}
@@ -0,0 +1,273 @@
{
"type": "filament",
"name": "Anycubic PLA Translucent @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "NTs7c6NqAudTl9wk",
"filament_id": "OF7c9fln",
"instantiation": "true",
"filament_settings_id": [
"Anycubic PLA Translucent @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_vendor": [
"Anycubic"
],
"filament_type": [
"PLA"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"1"
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_cooling_layer_time_BRASS": [
"100"
],
"fan_max_speed": [
"80"
],
"fan_max_speed_BRASS": [
"100"
],
"fan_min_speed": [
"60"
],
"fan_min_speed_BRASS": [
"70"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"40"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.2"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"40"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"210"
],
"nozzle_temperature_BRASS": [
"205"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"0"
],
"slow_down_layer_time": [
"8"
],
"slow_down_layer_time_BRASS": [
"10"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "filament",
"name": "Anycubic TPU @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_filament_tpu",
"from": "system",
"setting_id": "oSWtTJpng3ERixPJ",
"filament_id": "OFMsDGbs",
"instantiation": "true",
"filament_vendor": [
"Anycubic"
],
"filament_settings_id": [
"Anycubic TPU @Anycubic Kobra 3 V2 0.4 nozzle"
],
"filament_type": [
"TPU"
],
"filament_flow_ratio": [
"1"
],
"filament_max_volumetric_speed": [
"3.2"
],
"nozzle_temperature": [
"210"
],
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"bed_type": [
"High Temp Plate"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"80"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"0"
],
"filament_density": [
"1.23"
],
"filament_deretraction_speed": [
"25"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"0%"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"1"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"2"
],
"filament_retraction_minimum_travel": [
"1"
],
"filament_retraction_speed": [
"35"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"230"
],
"nozzle_temperature_range_high": [
"230"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"95%"
],
"pressure_advance": [
"0.05"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"20"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,255 @@
{
"type": "machine",
"name": "Anycubic Kobra 3 V2 0.2 nozzle",
"inherits": "fdm_machine_common",
"from": "system",
"setting_id": "gaQ37xRo6J467j1y",
"instantiation": "true",
"printer_technology": "FFF",
"printer_settings_id": "Anycubic Kobra 3 V2 0.2 nozzle",
"printer_model": "Anycubic Kobra 3 V2",
"printer_variant": "0.2",
"nozzle_diameter": [
"0.2"
],
"default_print_profile": "0.10mm Standard @Anycubic Kobra 3 V2 0.2 nozzle",
"default_filament_profile": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.2 nozzle"
],
"disable_m73": "0",
"gcode_flavor": "klipper",
"printable_area": [
"0x0",
"255x0",
"255x255",
"0x255"
],
"printable_height": "260",
"thumbnails": [
"230x110"
],
"thumbnails_format": "PNG",
"thumbnails_internal": [
"512x512/PNG/top"
],
"thumbnails_internal_switch": "1",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [],
"bed_mesh_max": "0,0",
"bed_mesh_min": "0,0",
"bed_mesh_probe_distance": "0,0",
"before_layer_change_gcode": "; BEFORE_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "; FLUSH_START\n;;; M400 P0\nT[next_extruder] ; change extruder\n; 1\n;;; G1 E-2 F2400\n;;; G1 Z{max(toolchange_z+0.6, 5.0)} F600\n;;; G1 X271.5 F12000\n;;; G1 E-5 F600\n;;; G1 X278 F600\n;;; M400 P3530\n;;; G1 E-1 F600\n;;; G1 Z{max(toolchange_z+2.6, 7.0)} F600\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P31050\n;;; M400 P17510\n; 2\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n;;; G1 X250 F1200\n;;; M400 P0\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n; 3.1\n;;; M106 S255\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.2\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.3\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n;;; G1 Z{toolchange_z}\n;;; M400 P0\n; FLUSH_END",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"deretraction_speed": [
"40"
],
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "0",
"enable_long_retraction_when_cut": "0",
"extra_loading_move": "0",
"extruder_clearance_height_to_lid": "250",
"extruder_clearance_height_to_rod": "20",
"extruder_clearance_radius": "65",
"extruder_colour": [
"FF4D4F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": "; AFTER_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "G92 E0\nG1 E-2 F3600\n{if max_layer_z < max_print_height-1}G1 Z{max_layer_z+2} F900 ; Move print head further up{endif}\nG1 X250 Y220 F12000 ; present print\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107;turn off fan\nM84; disable motors\n; disable stepper motors\n\n",
"machine_load_filament_time": "42",
"machine_max_acceleration_e": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_travel": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_z": [
"1000",
"1000",
"1000"
],
"machine_max_jerk_e": [
"20",
"20",
"20"
],
"machine_max_jerk_x": [
"20",
"20",
"20"
],
"machine_max_jerk_y": [
"20",
"20",
"20"
],
"machine_max_jerk_z": [
"20",
"20",
"20"
],
"machine_max_speed_e": [
"600",
"300",
"780"
],
"machine_max_speed_x": [
"600",
"300",
"780"
],
"machine_max_speed_y": [
"600",
"300",
"780"
],
"machine_max_speed_z": [
"15",
"10",
"26"
],
"machine_min_extruding_rate": [
"0",
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0",
"0"
],
"machine_pause_gcode": "M600",
"machine_start_gcode": "G9111 bedTemp=[first_layer_bed_temperature] extruderTemp=[first_layer_temperature[initial_tool]]\nM117\nM900 K0.051\n; print_bed_min = {print_bed_min[0]},{print_bed_min[1]}\n; print_bed_max = {print_bed_max[0]},{print_bed_max[1]}\n; print_bed_size = {print_bed_size[0]},{print_bed_size[1]}\n; first_layer_print_min = {first_layer_print_min[0]},{first_layer_print_min[1]}\n; first_layer_print_max = {first_layer_print_max[0]},{first_layer_print_max[1]}\n; first_layer_print_size = {first_layer_print_size[0]},{first_layer_print_size[1]}",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.14"
],
"min_layer_height": [
"0.08"
],
"nozzle_height": "4",
"nozzle_hrc": "0",
"nozzle_type": "brass",
"nozzle_volume": "107",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printer_flush_multiplier": "1",
"printer_notes": "",
"printer_structure": "i3",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "0",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"0"
],
"retract_lift_above": [
"0.3"
],
"retract_lift_below": [
"258"
],
"retract_lift_enforce": [
"All Surfaces"
],
"retract_on_top_layer": [
"1"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retract_when_changing_layer": [
"1"
],
"retraction_distances_when_cut": [
"0"
],
"retraction_length": [
"0.8"
],
"retraction_minimum_travel": [
"0"
],
"retraction_speed": [
"40"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"wipe": [
"1"
],
"wipe_distance": [
"1"
],
"z_hop": [
"0.4"
],
"z_hop_types": [
"Auto Lift"
],
"z_offset": "0"
}
@@ -0,0 +1,251 @@
{
"type": "machine",
"name": "Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_machine_common",
"from": "system",
"setting_id": "l49qdfdrHYEO04bV",
"instantiation": "true",
"printer_technology": "FFF",
"printer_settings_id": "Anycubic Kobra 3 V2 0.4 nozzle",
"printer_model": "Anycubic Kobra 3 V2",
"printer_variant": "0.4",
"nozzle_diameter": [
"0.4"
],
"default_print_profile": "0.20mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"default_filament_profile": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.4 nozzle"
],
"disable_m73": "0",
"gcode_flavor": "klipper",
"printable_area": [
"0x0",
"255x0",
"255x255",
"0x255"
],
"printable_height": "260",
"thumbnails": "230x110/PNG",
"thumbnails_format": "PNG",
"thumbnails_internal": "512x512/PNG/top",
"thumbnails_internal_switch": "1",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [],
"bed_mesh_max": "0,0",
"bed_mesh_min": "0,0",
"bed_mesh_probe_distance": "0,0",
"before_layer_change_gcode": "; BEFORE_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "; FLUSH_START\n;;; M400 P0\nT[next_extruder] ; change extruder\n; 1\n;;; G1 E-2 F2400\n;;; G1 Z{max(toolchange_z+0.6, 5.0)} F600\n;;; G1 X271.5 F12000\n;;; G1 E-5 F600\n;;; G1 X278 F600\n;;; M400 P3530\n;;; G1 E-1 F600\n;;; G1 Z{max(toolchange_z+2.6, 7.0)} F600\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P31050\n;;; M400 P17510\n; 2\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n;;; G1 X250 F1200\n;;; M400 P0\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n; 3.1\n;;; M106 S255\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.2\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.3\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n;;; G1 Z{toolchange_z}\n;;; M400 P0\n; FLUSH_END",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"deretraction_speed": [
"60"
],
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "0",
"enable_long_retraction_when_cut": "0",
"extra_loading_move": "0",
"extruder_clearance_height_to_lid": "250",
"extruder_clearance_height_to_rod": "20",
"extruder_clearance_radius": "65",
"extruder_colour": [
"FF4D4F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": "; AFTER_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "M400\nG92 E0 ; zero the extruder\nG1 E-2 F3600\n{if max_layer_z < max_print_height-1}G1 Z{max_layer_z+2} F900 ; Move print head further up{endif}\nG1 X250 Y220 F12000 ; present print\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107;turn off fan\nM84; disable motors\n; disable stepper motors",
"machine_load_filament_time": "42",
"machine_max_acceleration_e": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_travel": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_z": [
"1000",
"1000",
"1000"
],
"machine_max_jerk_e": [
"20",
"20",
"20"
],
"machine_max_jerk_x": [
"20",
"20",
"20"
],
"machine_max_jerk_y": [
"20",
"20",
"20"
],
"machine_max_jerk_z": [
"20",
"20",
"20"
],
"machine_max_speed_e": [
"600",
"300",
"780"
],
"machine_max_speed_x": [
"600",
"300",
"780"
],
"machine_max_speed_y": [
"600",
"300",
"780"
],
"machine_max_speed_z": [
"15",
"10",
"26"
],
"machine_min_extruding_rate": [
"0",
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0",
"0"
],
"machine_pause_gcode": "M600",
"machine_start_gcode": "G9111 bedTemp=[first_layer_bed_temperature] extruderTemp=[first_layer_temperature[initial_tool]]\nM117\nM900 K0.051\n; print_bed_min = {print_bed_min[0]},{print_bed_min[1]}\n; print_bed_max = {print_bed_max[0]},{print_bed_max[1]}\n; print_bed_size = {print_bed_size[0]},{print_bed_size[1]}\n; first_layer_print_min = {first_layer_print_min[0]},{first_layer_print_min[1]}\n; first_layer_print_max = {first_layer_print_max[0]},{first_layer_print_max[1]}\n; first_layer_print_size = {first_layer_print_size[0]},{first_layer_print_size[1]}",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.28"
],
"min_layer_height": [
"0.08"
],
"nozzle_height": "4",
"nozzle_hrc": "0",
"nozzle_type": "brass",
"nozzle_volume": "107",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printer_flush_multiplier": "1",
"printer_notes": "",
"printer_structure": "i3",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "0",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"0"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"259"
],
"retract_lift_enforce": [
"All Surfaces"
],
"retract_on_top_layer": [
"1"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retract_when_changing_layer": [
"1"
],
"retraction_distances_when_cut": [
"0"
],
"retraction_length": [
"1"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"60"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "0",
"support_chamber_temp_control": "0",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"wipe": [
"1"
],
"wipe_distance": [
"2"
],
"z_hop": [
"0.4"
],
"z_hop_types": [
"Slope Lift"
],
"z_offset": "0"
}
@@ -0,0 +1,251 @@
{
"type": "machine",
"name": "Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "fdm_machine_common",
"from": "system",
"setting_id": "hQQgQT5HeCVGpBAL",
"instantiation": "true",
"printer_technology": "FFF",
"printer_settings_id": "Anycubic Kobra 3 V2 0.6 nozzle",
"printer_model": "Anycubic Kobra 3 V2",
"printer_variant": "0.6",
"nozzle_diameter": [
"0.6"
],
"default_print_profile": "0.30mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"default_filament_profile": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle"
],
"disable_m73": "0",
"gcode_flavor": "klipper",
"printable_area": [
"0x0",
"255x0",
"255x255",
"0x255"
],
"printable_height": "260",
"thumbnails": "230x110/PNG",
"thumbnails_format": "PNG",
"thumbnails_internal": "512x512/PNG/top",
"thumbnails_internal_switch": "1",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [],
"bed_mesh_max": "0,0",
"bed_mesh_min": "0,0",
"bed_mesh_probe_distance": "0,0",
"before_layer_change_gcode": "; BEFORE_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "; FLUSH_START\n;;; M400 P0\nT[next_extruder] ; change extruder\n; 1\n;;; G1 E-2 F2400\n;;; G1 Z{max(toolchange_z+0.6, 5.0)} F600\n;;; G1 X271.5 F12000\n;;; G1 E-5 F600\n;;; G1 X278 F600\n;;; M400 P3530\n;;; G1 E-1 F600\n;;; G1 Z{max(toolchange_z+2.6, 7.0)} F600\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P31050\n;;; M400 P17510\n; 2\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n;;; G1 X250 F1200\n;;; M400 P0\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n; 3.1\n;;; M106 S255\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.2\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.3\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n;;; G1 Z{toolchange_z}\n;;; M400 P0\n; FLUSH_END",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"deretraction_speed": [
"30"
],
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "0",
"enable_long_retraction_when_cut": "0",
"extra_loading_move": "0",
"extruder_clearance_height_to_lid": "250",
"extruder_clearance_height_to_rod": "20",
"extruder_clearance_radius": "65",
"extruder_colour": [
"FF4D4F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": "; AFTER_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-1 F3600 ; retract\n{if max_layer_z < max_print_height-1}G1 Z{max_layer_z+2} F600 ; Move print head further up{endif}\nG1 X250 Y220 F12000 ; present print\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107;turn off fan\nM84; disable motors\n; disable stepper motors\n\n",
"machine_load_filament_time": "42",
"machine_max_acceleration_e": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_travel": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_z": [
"1000",
"1000",
"1000"
],
"machine_max_jerk_e": [
"20",
"20",
"20"
],
"machine_max_jerk_x": [
"20",
"20",
"20"
],
"machine_max_jerk_y": [
"20",
"20",
"20"
],
"machine_max_jerk_z": [
"20",
"20",
"20"
],
"machine_max_speed_e": [
"600",
"300",
"780"
],
"machine_max_speed_x": [
"600",
"300",
"780"
],
"machine_max_speed_y": [
"600",
"300",
"780"
],
"machine_max_speed_z": [
"15",
"10",
"26"
],
"machine_min_extruding_rate": [
"0",
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0",
"0"
],
"machine_pause_gcode": "M600",
"machine_start_gcode": "G9111 bedTemp=[first_layer_bed_temperature] extruderTemp=[first_layer_temperature[initial_tool]]\nM117\nM900 K0.05\n; print_bed_min = {print_bed_min[0]},{print_bed_min[1]}\n; print_bed_max = {print_bed_max[0]},{print_bed_max[1]}\n; print_bed_size = {print_bed_size[0]},{print_bed_size[1]}\n; first_layer_print_min = {first_layer_print_min[0]},{first_layer_print_min[1]}\n; first_layer_print_max = {first_layer_print_max[0]},{first_layer_print_max[1]}\n; first_layer_print_size = {first_layer_print_size[0]},{first_layer_print_size[1]}",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.42"
],
"min_layer_height": [
"0.12"
],
"nozzle_height": "4",
"nozzle_hrc": "0",
"nozzle_type": "brass",
"nozzle_volume": "107",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printer_flush_multiplier": "1",
"printer_notes": "",
"printer_structure": "i3",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "0",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"0"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"259"
],
"retract_lift_enforce": [
"All Surfaces"
],
"retract_on_top_layer": [
"1"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retract_when_changing_layer": [
"1"
],
"retraction_distances_when_cut": [
"0"
],
"retraction_length": [
"0.8"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"30"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"wipe": [
"1"
],
"wipe_distance": [
"2"
],
"z_hop": [
"0.4"
],
"z_hop_types": [
"Auto Lift"
],
"z_offset": "0"
}
@@ -0,0 +1,255 @@
{
"type": "machine",
"name": "Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "fdm_machine_common",
"from": "system",
"setting_id": "LBhbohm7o4jW6OYw",
"instantiation": "true",
"printer_technology": "FFF",
"printer_settings_id": "Anycubic Kobra 3 V2 0.8 nozzle",
"printer_model": "Anycubic Kobra 3 V2",
"printer_variant": "0.8",
"nozzle_diameter": [
"0.8"
],
"default_print_profile": "0.40mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"default_filament_profile": [
"Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle"
],
"disable_m73": "0",
"gcode_flavor": "klipper",
"printable_area": [
"0x0",
"255x0",
"255x255",
"0x255"
],
"printable_height": "260",
"thumbnails": [
"230x110"
],
"thumbnails_format": "PNG",
"thumbnails_internal": [
"512x512/PNG/top"
],
"thumbnails_internal_switch": "1",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [],
"bed_mesh_max": "0,0",
"bed_mesh_min": "0,0",
"bed_mesh_probe_distance": "0,0",
"before_layer_change_gcode": "; BEFORE_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "; FLUSH_START\n;;; M400 P0\nT[next_extruder] ; change extruder\n; 1\n;;; G1 E-2 F2400\n;;; G1 Z{max(toolchange_z+0.6, 5.0)} F600\n;;; G1 X271.5 F12000\n;;; G1 E-5 F600\n;;; G1 X278 F600\n;;; M400 P3530\n;;; G1 E-1 F600\n;;; G1 Z{max(toolchange_z+2.6, 7.0)} F600\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P31050\n;;; M400 P17510\n; 2\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n;;; G1 X250 F1200\n;;; M400 P0\n;;; G1 X278 F18000\n;;; G1 X271.5 F1200\n;;; G1 E2 F300\n;;; M400 P0\n; 3.1\n;;; M106 S255\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.2\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n; 3.3\n;;; G1 X36 Y260 Z-0.8 F9600\n;;; G1 X50 Y260 Z1 F9600\n;;; G1 X86 Y260 Z1 F9600\n;;; G1 X90 Y260 Z-0.8 F9600\n;;; G1 X90 Y259 Z-0.8 F9600\n;;; G1 X86 Y259 Z1 F9600\n;;; G1 X50 Y259 Z1 F9600\n;;; G1 X36 Y259 Z-0.8 F9600\n;;; G1 Z{toolchange_z}\n;;; M400 P0\n; FLUSH_END",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"deretraction_speed": [
"0"
],
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "0",
"enable_long_retraction_when_cut": "0",
"extra_loading_move": "0",
"extruder_clearance_height_to_lid": "250",
"extruder_clearance_height_to_rod": "20",
"extruder_clearance_radius": "65",
"extruder_colour": [
"FF4D4F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": "; AFTER_LAYER_CHANGE [layer_num] @ [layer_z]mm",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-2 F3000 ; retract\n{if max_layer_z < max_print_height-1}G1 Z{max_layer_z+2} F600 ; Move print head further up{endif}\nG1 X250 Y220 F12000 ; present print\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107;turn off fan\nM84; disable motors\n; disable stepper motors\n\n",
"machine_load_filament_time": "42",
"machine_max_acceleration_e": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_travel": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000",
"20000"
],
"machine_max_acceleration_z": [
"1000",
"1000",
"1000"
],
"machine_max_jerk_e": [
"20",
"20",
"20"
],
"machine_max_jerk_x": [
"20",
"20",
"20"
],
"machine_max_jerk_y": [
"20",
"20",
"20"
],
"machine_max_jerk_z": [
"20",
"20",
"20"
],
"machine_max_speed_e": [
"600",
"300",
"780"
],
"machine_max_speed_x": [
"600",
"300",
"780"
],
"machine_max_speed_y": [
"600",
"300",
"780"
],
"machine_max_speed_z": [
"15",
"10",
"26"
],
"machine_min_extruding_rate": [
"0",
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0",
"0"
],
"machine_pause_gcode": "M600",
"machine_start_gcode": "G9111 bedTemp=[first_layer_bed_temperature] extruderTemp=[first_layer_temperature[initial_tool]]\nM117\nM900 K0.051\n; print_bed_min = {print_bed_min[0]},{print_bed_min[1]}\n; print_bed_max = {print_bed_max[0]},{print_bed_max[1]}\n; print_bed_size = {print_bed_size[0]},{print_bed_size[1]}\n; first_layer_print_min = {first_layer_print_min[0]},{first_layer_print_min[1]}\n; first_layer_print_max = {first_layer_print_max[0]},{first_layer_print_max[1]}\n; first_layer_print_size = {first_layer_print_size[0]},{first_layer_print_size[1]}",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.56"
],
"min_layer_height": [
"0.16"
],
"nozzle_height": "4",
"nozzle_hrc": "0",
"nozzle_type": "brass",
"nozzle_volume": "107",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printer_flush_multiplier": "1",
"printer_notes": "",
"printer_structure": "i3",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "0",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"0"
],
"retract_lift_above": [
"0.3"
],
"retract_lift_below": [
"259.6"
],
"retract_lift_enforce": [
"All Surfaces"
],
"retract_on_top_layer": [
"1"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retract_when_changing_layer": [
"1"
],
"retraction_distances_when_cut": [
"0"
],
"retraction_length": [
"1"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"40"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"wipe": [
"1"
],
"wipe_distance": [
"2"
],
"z_hop": [
"0.4"
],
"z_hop_types": [
"Auto Lift"
],
"z_offset": "0"
}
@@ -0,0 +1,12 @@
{
"type": "machine_model",
"machine_tech": "FFF",
"family": "Anycubic",
"name": "Anycubic Kobra 3 V2",
"model_id": "Anycubic Kobra 3 V2",
"nozzle_diameter": "0.4;0.2;0.6;0.8",
"bed_model": "Anycubic Kobra 3 V2_buildplate_model.stl",
"bed_texture": "Anycubic Kobra 3 V2_buildplate_texture.svg",
"hotend_model": "",
"default_materials": "Anycubic PLA @Anycubic Kobra 3 V2 0.2 nozzle;Anycubic PLA @Anycubic Kobra 3 V2 0.4 nozzle;Anycubic PLA @Anycubic Kobra 3 V2 0.6 nozzle;Anycubic PLA @Anycubic Kobra 3 V2 0.8 nozzle"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.08mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "9yiDozcVDSxKkz4V",
"instantiation": "true",
"print_settings_id": "0.08mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.08",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "7",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "5000",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "1",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "auto_brim",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "10000",
"default_jerk": "9",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "250",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "20",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "45",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "45",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "350",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "5000",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "200",
"ironing_angle": "-1",
"ironing_flow": "8%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.42",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "3",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "200",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "5",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "1",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "1",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "10000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "grid",
"sparse_infill_speed": "450",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.08",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_interface_top_layers": "2",
"support_line_width": "0.42",
"support_object_xy_distance": "60%",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "15",
"support_top_z_distance": "0.08",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "15%",
"top_shell_layers": "9",
"top_shell_thickness": "0.8",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "200",
"travel_acceleration": "10000",
"travel_jerk": "9",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "120%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.10mm Standard @Anycubic Kobra 3 V2 0.2 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "eSyZsnWMuOyokoLr",
"instantiation": "true",
"print_settings_id": "0.10mm Standard @Anycubic Kobra 3 V2 0.2 nozzle",
"layer_height": "0.1",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.2 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "5",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "50%",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "outer_only",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "10000",
"default_jerk": "10",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.075",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "0",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "100",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "10",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "30",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.25",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.1",
"initial_layer_speed": "30",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "10",
"inner_wall_line_width": "0.22",
"inner_wall_speed": "150",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "100%",
"internal_solid_infill_line_width": "0.22",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "120",
"ironing_angle": "-1",
"ironing_flow": "15%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.22",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "10",
"outer_wall_line_width": "0.22",
"outer_wall_speed": "80",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "2",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "100%",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "0",
"seam_slope_min_length": "20",
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "100%",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.22",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "150",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.1",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.5",
"support_interface_speed": "80",
"support_interface_top_layers": "2",
"support_line_width": "0.22",
"support_object_xy_distance": "0.35",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "40",
"support_top_z_distance": "0.1",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "25%",
"top_shell_layers": "7",
"top_shell_thickness": "0.8",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.22",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "120",
"travel_acceleration": "15000",
"travel_jerk": "12",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "4",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "120%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,58 @@
{
"type": "process",
"name": "0.12mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "0.12mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"from": "system",
"setting_id": "HqXRokM0mAA691LV",
"instantiation": "true",
"print_settings_id": "0.12mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.12",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"bottom_shell_thickness": "0",
"bridge_acceleration": "2000",
"bridge_speed": "30",
"brim_type": "auto_brim",
"default_acceleration": "5000",
"default_jerk": "9",
"gap_infill_speed": "180",
"initial_layer_infill_speed": "50",
"initial_layer_speed": "50",
"inner_wall_acceleration": "4000",
"inner_wall_jerk": "9",
"inner_wall_speed": "150",
"internal_solid_infill_acceleration": "5000",
"internal_solid_infill_speed": "180",
"ironing_flow": "10%",
"outer_wall_acceleration": "2000",
"outer_wall_jerk": "9",
"outer_wall_speed": "60",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"overhang_4_4_speed": "10",
"prime_tower_width": "35",
"raft_first_layer_expansion": "5",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"seam_slope_conditional": "1",
"seam_slope_inner_walls": "1",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"small_perimeter_speed": "50%",
"sparse_infill_acceleration": "5000",
"sparse_infill_speed": "180",
"support_interface_top_layers": "2",
"support_threshold_angle": "20",
"top_bottom_infill_wall_overlap": "15%",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_speed": "150",
"travel_acceleration": "5000",
"travel_jerk": "9",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wipe_on_loops": "0",
"wipe_tower_extra_spacing": "120%"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.12mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "NCKx6glFcaEOhqZC",
"instantiation": "true",
"print_settings_id": "0.12mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.12",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "5",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "5000",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "auto_brim",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "10000",
"default_jerk": "9",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "350",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "20",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "45",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "45",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "300",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "5000",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "200",
"ironing_angle": "-1",
"ironing_flow": "10%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.42",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "130",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "5",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "1",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "10000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "430",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.12",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_interface_top_layers": "3",
"support_line_width": "0.42",
"support_object_xy_distance": "60%",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "20",
"support_top_z_distance": "0.12",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "15%",
"top_shell_layers": "5",
"top_shell_thickness": "0.6",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "200",
"travel_acceleration": "10000",
"travel_jerk": "9",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "120%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,51 @@
{
"type": "process",
"name": "0.16mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "0.16mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"from": "system",
"setting_id": "mVDCX89vYKfBA57g",
"instantiation": "true",
"print_settings_id": "0.16mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.16",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"bottom_shell_thickness": "0",
"bridge_acceleration": "2000",
"default_acceleration": "4000",
"default_jerk": "9",
"infill_anchor_max": "20",
"initial_layer_infill_speed": "50",
"initial_layer_speed": "50",
"inner_wall_acceleration": "4000",
"inner_wall_jerk": "9",
"internal_solid_infill_acceleration": "4000",
"internal_solid_infill_speed": "200",
"outer_wall_acceleration": "2000",
"outer_wall_jerk": "9",
"outer_wall_speed": "150",
"overhang_1_4_speed": "60",
"overhang_3_4_speed": "10",
"overhang_4_4_speed": "10",
"prime_tower_width": "30",
"raft_first_layer_expansion": "5",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"seam_slope_conditional": "1",
"seam_slope_inner_walls": "1",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"small_perimeter_speed": "50%",
"sparse_infill_acceleration": "4000",
"sparse_infill_speed": "200",
"support_line_width": "0.42",
"support_threshold_angle": "25",
"top_bottom_infill_wall_overlap": "15%",
"travel_acceleration": "4000",
"travel_jerk": "9",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wipe_on_loops": "0",
"wipe_tower_extra_spacing": "120%"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.16mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "ut3FZjM7h3doFjRg",
"instantiation": "true",
"print_settings_id": "0.16mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.16",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "4",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "5000",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "auto_brim",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "10000",
"default_jerk": "9",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "250",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "20",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "45",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "45",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "200",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "10000",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "150",
"ironing_angle": "-1",
"ironing_flow": "10%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.42",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "130",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "5",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "1",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "5000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "300",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.16",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_interface_top_layers": "2",
"support_line_width": "0.42",
"support_object_xy_distance": "60%",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "25",
"support_top_z_distance": "0.16",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "15%",
"top_shell_layers": "6",
"top_shell_thickness": "1",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "150",
"travel_acceleration": "10000",
"travel_jerk": "9",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "120%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,57 @@
{
"type": "process",
"name": "0.20mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "0.20mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"from": "system",
"setting_id": "V7T6yBxuQzWucCpA",
"instantiation": "true",
"print_settings_id": "0.20mm High Quality @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.2",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"bottom_shell_thickness": "0",
"bridge_acceleration": "4000",
"bridge_speed": "50",
"brim_object_gap": "0.1",
"brim_width": "5",
"default_acceleration": "4000",
"default_jerk": "9",
"initial_layer_infill_speed": "50",
"initial_layer_speed": "50",
"inner_wall_acceleration": "4000",
"inner_wall_jerk": "9",
"inner_wall_speed": "150",
"internal_solid_infill_acceleration": "4000",
"internal_solid_infill_speed": "250",
"ironing_flow": "10%",
"outer_wall_acceleration": "2000",
"outer_wall_jerk": "9",
"outer_wall_speed": "60",
"overhang_4_4_speed": "10",
"prime_tower_width": "30",
"raft_first_layer_expansion": "5",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"seam_slope_conditional": "1",
"seam_slope_inner_walls": "1",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"sparse_infill_acceleration": "4000",
"sparse_infill_density": "15%",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "270",
"support_line_width": "0.42",
"support_threshold_angle": "30",
"top_bottom_infill_wall_overlap": "15%",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_speed": "200",
"travel_acceleration": "4000",
"travel_jerk": "9",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wipe_on_loops": "0",
"wipe_tower_extra_spacing": "120%"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.20mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "K5se4jnf2XHJNkEQ",
"instantiation": "true",
"print_settings_id": "0.20mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.2",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "5000",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "auto_brim",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "10000",
"default_jerk": "9",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "250",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "20",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "45",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "45",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "200",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "10000",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "130",
"ironing_angle": "-1",
"ironing_flow": "15%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.42",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "130",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "5",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "0",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "5000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "300",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.2",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_interface_top_layers": "2",
"support_line_width": "0.4",
"support_object_xy_distance": "60%",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "30",
"support_top_z_distance": "0.25",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "0",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "15%",
"top_shell_layers": "5",
"top_shell_thickness": "1",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "130",
"travel_acceleration": "10000",
"travel_jerk": "9",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "120%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.24mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "cg8f6Q9o8nRePSC9",
"instantiation": "true",
"print_settings_id": "0.24mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.24",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "5000",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "auto_brim",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "10000",
"default_jerk": "9",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "200",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "10",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "45",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "45",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "200",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "10000",
"internal_solid_infill_line_width": "0.45",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "200",
"ironing_angle": "-1",
"ironing_flow": "10%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.42",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "120",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "5",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "0",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "5000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "200",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.2",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_interface_top_layers": "2",
"support_line_width": "0.42",
"support_object_xy_distance": "60%",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "35",
"support_top_z_distance": "0.2",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "15%",
"top_shell_layers": "4",
"top_shell_thickness": "1",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "180",
"travel_acceleration": "10000",
"travel_jerk": "9",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "120%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,24 @@
{
"type": "process",
"name": "0.24mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "0.30mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"from": "system",
"setting_id": "DhqKrBJZh4W22xna",
"instantiation": "true",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"print_settings_id": "0.24mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"layer_height": "0.24",
"brim_type": "auto_brim",
"default_acceleration": "6000",
"default_jerk": "9",
"elefant_foot_compensation": "0.1",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"outer_wall_jerk": "9",
"raft_first_layer_expansion": "5",
"sparse_infill_acceleration": "6000",
"support_threshold_angle": "30",
"top_bottom_infill_wall_overlap": "15%",
"travel_acceleration": "10000",
"travel_jerk": "9"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.28mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "Qe8XQonRxfA8Jei1",
"instantiation": "true",
"print_settings_id": "0.28mm Standard @Anycubic Kobra 3 V2 0.4 nozzle",
"layer_height": "0.28",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "2000",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "auto_brim",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "10000",
"default_jerk": "9",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "200",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "20",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "45",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "45",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "200",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "10000",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "180",
"ironing_angle": "-1",
"ironing_flow": "10%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.42",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "120",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "0%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "5",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "30",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "0",
"seam_slope_min_length": "10",
"seam_slope_start_height": "10%",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "5000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "grid",
"sparse_infill_speed": "200",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.2",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_interface_top_layers": "2",
"support_line_width": "0.42",
"support_object_xy_distance": "60%",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "40",
"support_top_z_distance": "0.2",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "25%",
"top_shell_layers": "4",
"top_shell_thickness": "1",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "180",
"travel_acceleration": "10000",
"travel_jerk": "9",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "120%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.30mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "13ES5eks7VTR3G2E",
"instantiation": "true",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"print_settings_id": "0.30mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"layer_height": "0.3",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.6 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "500",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "outer_only",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "5000",
"default_jerk": "20",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.075",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "50",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "10",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "30",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.62",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.3",
"initial_layer_speed": "30",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "10000",
"inner_wall_jerk": "15",
"inner_wall_line_width": "0.62",
"inner_wall_speed": "150",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "5000",
"internal_solid_infill_line_width": "0.62",
"internal_solid_infill_pattern": "monotonic",
"internal_solid_infill_speed": "150",
"ironing_angle": "-1",
"ironing_flow": "15%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.62",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "0",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "15",
"outer_wall_line_width": "0.62",
"outer_wall_speed": "120",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "15",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "2",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "35",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "1",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "0",
"seam_slope_min_length": "10",
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "10000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.62",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "100",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.2",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "80",
"support_interface_top_layers": "3",
"support_line_width": "0.62",
"support_object_xy_distance": "0.35",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "40",
"support_top_z_distance": "0.25",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "25%",
"top_shell_layers": "3",
"top_shell_thickness": "0.6",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "5000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.62",
"top_surface_pattern": "monotonicline",
"top_surface_speed": "150",
"travel_acceleration": "15000",
"travel_jerk": "12",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "150%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,17 @@
{
"type": "process",
"name": "0.32mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "0.40mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"from": "system",
"setting_id": "avPzsOBN3DnXTaol",
"instantiation": "true",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"print_settings_id": "0.32mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"layer_height": "0.32",
"initial_layer_print_height": "0.32",
"inner_wall_speed": "120",
"outer_wall_speed": "80",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "30",
"top_solid_infill_flow_ratio": "0.95"
}
@@ -0,0 +1,24 @@
{
"type": "process",
"name": "0.36mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"inherits": "0.30mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"from": "system",
"setting_id": "7pIVSig189FDjOMY",
"instantiation": "true",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"print_settings_id": "0.36mm Standard @Anycubic Kobra 3 V2 0.6 nozzle",
"layer_height": "0.36",
"brim_type": "auto_brim",
"default_acceleration": "6000",
"default_jerk": "9",
"elefant_foot_compensation": "0.1",
"inner_wall_acceleration": "6000",
"inner_wall_jerk": "9",
"outer_wall_jerk": "9",
"raft_first_layer_expansion": "5",
"sparse_infill_acceleration": "6000",
"support_threshold_angle": "30",
"top_bottom_infill_wall_overlap": "15%",
"travel_acceleration": "10000",
"travel_jerk": "9"
}
@@ -0,0 +1,289 @@
{
"type": "process",
"name": "0.40mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "fdm_process_common",
"from": "system",
"setting_id": "0yxg7c5tH07ZMIL4",
"instantiation": "true",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"print_settings_id": "0.40mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"layer_height": "0.4",
"compatible_printers": [
"Anycubic Kobra 3 V2 0.8 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"alternate_extra_wall": "0",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "5000",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.9",
"bridge_no_support": "0",
"bridge_speed": "30",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.15",
"brim_type": "outer_only",
"brim_width": "5",
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "6000",
"default_jerk": "20",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "1",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "1",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_fill_target": "topbottom",
"gap_infill_speed": "50",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400",
"infill_anchor_max": "10",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "15%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "30",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.82",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.4",
"initial_layer_speed": "30",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "0",
"inner_wall_jerk": "15",
"inner_wall_line_width": "0.82",
"inner_wall_speed": "150",
"interface_shells": "0",
"internal_bridge_flow": "1",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "10000",
"internal_solid_infill_line_width": "0.82",
"internal_solid_infill_pattern": "zig-zag",
"internal_solid_infill_speed": "150",
"ironing_angle": "-1",
"ironing_flow": "15%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.1",
"ironing_speed": "15",
"ironing_type": "no ironing",
"is_infill_first": "0",
"line_width": "0.82",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "5",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.5",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "0",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "15",
"outer_wall_line_width": "0.82",
"outer_wall_speed": "120",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "25",
"overhang_4_4_speed": "5",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"prime_tower_brim_width": "5",
"prime_tower_width": "35",
"prime_volume": "20",
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "90%",
"raft_first_layer_expansion": "2",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"rotate_solid_infill_direction": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "100%",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "0",
"seam_slope_min_length": "20",
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "0",
"small_area_infill_flow_compensation": "0",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "5000",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.82",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "100",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "0",
"support_angle": "0",
"support_base_pattern": "default",
"support_base_pattern_spacing": "0.2",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.2",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "-1",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "80",
"support_interface_top_layers": "3",
"support_line_width": "0.82",
"support_object_xy_distance": "0.35",
"support_on_build_plate_only": "1",
"support_remove_small_overhang": "1",
"support_speed": "100",
"support_style": "default",
"support_threshold_angle": "40",
"support_top_z_distance": "0.25",
"support_type": "tree(auto)",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "25%",
"top_shell_layers": "3",
"top_shell_thickness": "0.8",
"top_solid_infill_flow_ratio": "0.97",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.82",
"top_surface_pattern": "monotonic",
"top_surface_speed": "150",
"travel_acceleration": "10000",
"travel_jerk": "12",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "1.5",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "0",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "15",
"wipe_tower_extra_spacing": "150%",
"wipe_tower_extruder": "0",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}
@@ -0,0 +1,17 @@
{
"type": "process",
"name": "0.48mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"inherits": "0.40mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"from": "system",
"setting_id": "2cCCPfRX7H33XrMb",
"instantiation": "true",
"filename_format": "{timestamp}-{if plate_name==\"\" then input_filename_base+\"_plate\" else plate_name endif}{\"(\"+plate_number+\")\"}_{filament_type[initial_tool]}_{layer_height}_{print_time}.gcode",
"print_settings_id": "0.48mm Standard @Anycubic Kobra 3 V2 0.8 nozzle",
"layer_height": "0.48",
"initial_layer_print_height": "0.48",
"inner_wall_speed": "180",
"outer_wall_speed": "140",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "30",
"top_solid_infill_flow_ratio": "0.95"
}
+8806 -10354
View File
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More