Compare commits

..
Author SHA1 Message Date
Ian Chua f27b0a1f9d Merge branch main into feat/printer-agent-infra 2026-09-22 12:11:40 +08:00
Kris Austin 824b216f18 feat(gui): assignable keyboard shortcuts (#15706) 2026-09-21 17:36:04 -03:00
Ian Bassi bfe458507b Add X-Ray view mode to 3D viewport (#15770) 2026-09-21 14:23:32 -03:00
Tim Schneiderandyw4z b6bb1b92c9 Add Meltingplot vendor profiles (CHX 350 + MBL series) (#14756)
* Add Meltingplot vendor profiles (CHX 350 + MBL series)

Adds the Meltingplot vendor bundle with 5 printer models:
- CHX 350 (880x422x943, RepRapFirmware/Duet)
- MBL 133/136/308/480 (RepRapFirmware/Duet)

Each model ships 0.4/0.6/0.8/1.0/1.2 nozzle variants. Layer height
presets span 40-60% of the nozzle diameter and deliberately avoid
heights that divide the Z screw lead evenly (CHX: 1204 ball screw,
4 mm lead; MBL: TR4x2 trapezoidal screw, 8 mm lead) so periodic
screw error does not repeat as banding.

All printers use 2.85 mm filament, so the bundle carries its own
filament library (PLA, StoneFil, ABS, TitanX, ASA, PETG, PA6 CF HT,
STYX 12, PP 9-2, PET-CF15, Extrudr PLA NX2 Matt, Igus iglidur J260)
with the 2.85 mm diameter pinned once in the vendor-local
fdm_filament_common base.

Machine limits mirror the printers' firmware configuration; machine
limit emission is disabled so the values only feed the time estimator.

* Add per-nozzle volumetric flow limits and nozzle size in filename

Cap filament volumetric speed per nozzle (0.4: 14, 0.6: 20, 0.8: 26,
1.0: 30, 1.2: 40 mm3/s). Filaments whose limit exceeds a nozzle's
capability get a nozzle-scoped child profile that only lowers
filament_max_volumetric_speed; filament_id is inherited so all nozzle
variants remain the same material.

Also include layer height and nozzle diameter in the g-code filename.

* Set CHX 350 machine time cost to 5 EUR/h

* Inherit Meltingplot filaments from OrcaFilamentLibrary generics

Per the profile creation guide, vendor filament profiles now inherit
from Generic * @System instead of vendor-local fdm_filament_* copies.
Each profile carries only Meltingplot-specific deviations plus the
2.85 mm filament diameter; the seven local fdm_filament_* base files
are removed.

Deliberate pins where the library default would change tuned behavior:
- PLA/ABS/TitanX keep filament_max_volumetric_speed 20 (0.6 nozzle cap)
- ABS/PET-CF15 keep close_fan_the_first_x_layers 1
- STYX 12 sets required_nozzle_HRC 0 (unfilled PA12, density 1.02)

* Remove Meltingplot StoneFil filament profile

* Meltingplot ABS: use library fan settings

* Meltingplot TitanX/ABS: use library fan and nozzle temperature settings

* Remove STYX 12, PP 9-2 and Igus iglidur J260 filament profiles

* Meltingplot ASA: use library fan_max_speed

* Derive per-nozzle volumetric speed caps from physical limit formula

Caps now follow V = 34*d * m / S: the 34*d limit line calibrated on
Micro Swiss Volcano plated copper at 2.85 mm, material factor m from
the OrcaFilamentLibrary generic ratios (PLA/ABS/ASA 1.0, PETG 10/12,
PETG-CF 11.5/12, PA-CF 8/12, PLA Matte 11/12), safety factor S = 1.25
covering batch/moisture/wear/diameter tolerances.

Each material base now serves the 1.2 nozzle at its maximum cap;
children @0.4-@1.0 lower the cap per nozzle. Machine variant
default_filament_profile entries point at the matching preset.

* Scale slow_down_layer_time per nozzle from bead cross-section

Minimum layer time follows the derived cooling rule: heat per layer
scales with bead cross-section (layer height x line width), so the
0.8-nozzle-tuned values are scaled by q(d)/q(0.8) using each nozzle's
standard preset geometry. Bases carry the 1.2 value, children @0.4-@1.0
their nozzle-specific value.

* Meltingplot: lift Z above the print before the end macro

Add a G90 / G1 Z{min(max_layer_z + 5, printable_height)} F600 move at the
start of machine_end_gcode, before M98 print_end shuts the printer down and
parks it. Besides clearing the part, the explicit Z coordinate lets the Duet
file-info parser pick up the object height.

* Meltingplot: cap default layer height at 40% of outer wall width

A 45 deg slope shifts each bead outward by exactly one layer height. With
the Slic3r bead model (rectangle (w-h) x h plus half-circles of diameter h)
the flat contact band to the layer below is w - 2h, so the maximum
self-supporting angle is atan((w-h)/h). Support cannot compensate: the
stair tread at 45 deg is only h wide, far below one support line width, so
no support line ever fits underneath a single step.

All ten machine variants defaulted to h/w = 0.455..0.524, i.e. at or past
the h/w = 0.5 point where the flat contact vanishes. The 0.8 nozzle default
(0.44 mm at w = 0.84) reached atan(0.4/0.44) = 42.3 deg and failed on 45 deg
slopes even with support.

Default presets now satisfy h <= 0.40 * outer_wall_line_width, which leaves
one third of the bead's flat underside in contact at 45 deg and puts the
geometric limit at 56.3 deg. To keep the defaults on sensible ladder rungs,
outer wall width is widened where it was the binding constraint:
chx_small 110 -> 115%, chx_large 105 -> 110%, mbl_04 105 -> 115%.

Ladders are unchanged; the thicker rungs stay available for parts without
steep overhangs.

* Meltingplot PLA: raise slow_down_layer_time by calibration factor 1.5

Print feedback on CHX 350 with a 0.8 nozzle at 0.44 mm layer height showed
curling at the retraction points with the derived value of 25 s. There is no
cooling headroom left to trade: fdm_filament_pla pins fan_min_speed =
fan_max_speed = 100, and additional_cooling_fan_speed is inert because no
Meltingplot machine enables auxiliary_fan. Minimum layer time is the only
remaining lever; 35 s prints cleanly at that geometry.

The cross-section rule only fixes the ratios between nozzle sizes, so this
is a calibration of the PLA anchor itself: both PLA ladders are scaled by
1.5 (Extrudr 9/20/38/56/83 s, Meltingplot PLA 8/17/30/45/66 s for
0.4/0.6/0.8/1.0/1.2). The Extrudr base fan_cooling_layer_time goes 60 -> 100
so the 1.2-nozzle value stays below it.

Other materials are left unchanged - only the PLA anchor has a real
counter-example so far.

* Meltingplot: drop layer heights that cannot print 45 degree walls

A preset whose layer height exceeds ~45% of the outer wall line width has
less than ~6 degrees of reserve on a 45 degree wall (max self-supporting
angle atan((w-h)/h)), and support cannot compensate because the 45 degree
stair tread is only h wide - far below one support line. Those presets are
not usable in practice, so shipping them only invites failed prints.

Removes the 22 rungs above h/w = 0.45 and prunes them from the vendor
index. What remains per nozzle (default first):

  CHX 350   0.4: 0.18 | 0.6: 0.24 0.28 | 0.8: 0.32 0.36
            1.0: 0.44 0.48 | 1.2: 0.48 0.56
  MBL       0.4: 0.18 | 0.6: 0.24 0.28 | 0.8: 0.36 0.34
            1.0: 0.44 0.48 | 1.2: 0.48 0.56

The 0.4 nozzle keeps a single rung: 0.20 mm would qualify (h/w = 0.435) but
divides both screw leads evenly (4/0.20, 8/0.20) and stays excluded by the
Z-artifact rule, and 0.22 is already at 0.478.

Also corrects the MBL 0.8 default to 0.36 mm, which at w = 0.92 sits at
h/w = 0.391 and therefore still satisfies the stricter 40% default rule.

* Meltingplot: require 5 degrees of reserve on 45 degree walls

Replaces the two separate thresholds (h <= 0.40 * outer wall width for
defaults, 0.45 for ladder rungs) with a single requirement stated on the
design constraint itself: every shipped preset must reach

  a_max = atan((w - h) / h) >= 50 deg

i.e. 5 degrees of reserve on a 45 degree wall, equivalent to
h <= 0.456 * outer_wall_line_width. The default is simply the thickest rung
that passes.

The 11 degrees the 40% rule produced were more margin than the failure mode
warrants, and cost throughput for no return. For calibration: across 940
machine defaults from 60 vendor bundles in this repo, the median reserve is
+1.8 deg, 71% ship less than 5 deg, and 8% cannot geometrically produce a
45 deg wall at all.

Adds the rungs the relaxed threshold makes available - 0.30 (0.6 nozzle,
both series) and 0.38 (0.8 nozzle, both series) - and restores the 0.30 mm
MBL preset removed in 5b4862b3 with its original setting_id. 0.20 mm on the
0.4 nozzle and 0.50 mm on the 1.0 nozzle would also qualify but stay
excluded because they divide both screw leads evenly.

Defaults are now (0.4/0.6/0.8/1.0/1.2) 0.18/0.30/0.38/0.48/0.56 for both
series, at 50.2 to 57.3 deg. The 1.2 nozzle deliberately keeps 0.56 rather
than the 0.60 the rule would allow: solidification time scales with h^2 and
bead weight with h*w, so the largest nozzle is the one that should not sit
on the minimum.

* Meltingplot: disable precise wall by default

Precise wall was inheriting OrcaSlicer's global default of true. Disable it
bundle-wide in the vendor process root so it applies to CHX 350 and all MBL
models. Note it was already ignored on the CHX small-nozzle branch, which
uses the inner-outer-inner wall sequence.

* Meltingplot CHX: raise max extruding acceleration to 6000

The 4000 limit silently clamped the profiles' 6000 values for default and
inner wall acceleration, since GCodeWriter caps print acceleration against
machine_max_acceleration_extruding regardless of emit_machine_limits_to_gcode.
Raising it to 6000 matches the X/Y limits so the configured values are emitted
as-is. The firmware's own M201 still governs what is actually driven.

* Meltingplot PA6 CF HT: raise part cooling floor to 40%

Sharp 90 degree corners were washing out layer by layer while straight walls
and overhangs printed cleanly. Overhangs are fine because overhang_fan_speed
forces 100% regardless of layer time; everything else fell back to
fan_min_speed, since at the layer times seen in practice neither branch of the
layer-time fan interpolation applies.

Raise fan_min_speed to 40% and set reduce_fan_stop_start_freq so that floor is
actually applied instead of dropping to zero. Also lower the auxiliary fan to
40% and raise the overhang cooling threshold to 95%, matching the values
validated on the print.

* Meltingplot: re-mint filament ids with orca_id_tool

Upstream now requires every filament_id to be a minted "OF" id derived
from the (filament_vendor, filament_type, name) triple and recorded in
scripts/filament_id_snapshot.json. The hand-made ids this bundle shipped
with (MPFPLA0, EXTNX2M, ...) were rejected by orca_extra_profile_check.

Regenerate them with "orca_id_tool.py --generate --vendor Meltingplot"
and record the result with --update-snapshot. No setting_id changed, and
the ids were never released, so no existing project file refers to them.

* Meltingplot: normalize bundle for updated profile checks

Drop obsolete keys (silent_mode, adaptive_layer_height, tree_support_with_infill) and rebuild the vendor index in canonical order, as orca_profile_tool.py normalize / update-index write them.

* Meltingplot: list per-nozzle filaments in default_materials

The unsuffixed filament presets only cover the 1.2 mm variants, so the 0.4-1.0 mm printer presets had no compatible entry in their model's default_materials. The validator's check_printer_default_materials rejects that, and load_installed_filaments would auto-install no filament for those variants on first run. Name the @0.4/0.6/0.8/1.0 nozzle presets alongside the base ones for PLA, PETG, ABS and ASA.

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-09-22 00:14:33 +08:00
61dbe5572f Add Flashforge Adventurer A5 printer profiles (#14733)
* Add Flashforge Adventurer A5 printer profiles

Adds system profiles for the Flashforge Adventurer A5 to the existing
Flashforge vendor: the machine model with 0.25/0.4/0.6/0.8 mm nozzle variants,
14 process presets, and 43 filament presets, plus the printer cover image.

All presets inherit from existing Flashforge bases already in-tree
(Adventurer 5M Pro nozzle profiles, AD5M Pro process/filament presets,
Flashforge generics); no new base assets are introduced (the A5 reuses the
existing 5M-series bed/hotend models and buildplate texture). Every inherits
reference and sub_path was validated to resolve.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Assign setting_id to Adventurer A5 presets (fix profile check)

The new A5 filament and process presets were missing the deterministic
setting_id required by OrcaSlicer's profile validator. Generated via
scripts/assign_vendor_setting_ids.py (61 instantiated presets). Verified with
scripts/orca_extra_profile_check.py: 0 errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Fix Flashforge Adventurer A5 profiles so the bundle loads and validates

The new A5 presets were not in canonical form, several filaments resolved
no or the wrong filament_id, and the model and machines pointed at
non-existent or AD5M Pro defaults. Run the standard profile tooling
(normalize, update-index, generate-id), give the branded filaments the ids
of their existing Flashforge products, and repoint the defaults at
A5-compatible filaments and processes. Bump the Flashforge bundle version.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-21 23:19:41 +08:00
2adb631d6f RH3D new printer and print profiles update (#14707)
* Update 0.25mm Standard @E3NG v1.2S.json

* Create 0.20mm Fast @Virtu E3.json

* Update 0.20mm Fast Virtu E3.json

* Create 0.20mm SLOW Virtu E3.json

* Update and rename 0.20mm Fast @Virtu E3.json to 0.20mm FAST @Virtu E3.json

* Update and rename 0.20mm Fast @E3NG v1.2S.json to 0.20mm FAST @E3NG v1.2S.json

* Update and rename 0.20mm Slow @E3NG v1.2S.json to 0.20mm SLOW @E3NG v1.2S.json

* Update and rename 0.20mm Standard @E3NG v1.2S.json to 0.20mm STANDARD @E3NG v1.2S.json

* Create 0.20mm STANDARD @VIRTU E3

* Update and rename 0.20mm FAST Virtu E3.json to 0.20mm FAST VIRTU E3.json

* Rename 0.20mm SLOW Virtu E3.json to 0.20mm SLOW VIRTU E3.json

* Update 0.20mm STANDARD @VIRTU E3

* Update 0.20mm STANDARD VIRTU E3

* Update and rename 0.25mm Fast @E3NG v1.2S.json to 0.25mm FAST @E3NG v1.2S.json

* Create 0.25mm FAST VIRTU E3

* Update and rename 0.15mm Standard @E3NG v1.2S.json to 0.15mm STANDARD @E3NG v1.2S.json

* Update and rename 0.10mm Standard @E3NG v1.2S.json to 0.10mm STANDARD @E3NG v1.2S.json

* Create 0.15mm STANDARD VIRTU E3

* Create 0.10mm STANDARD VIRTU E3.json

* Rename 0.15mm STANDARD @VIRTU E3 to 0.15mm STANDARD @VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3

* Update and rename 0.25mm FAST VIRTU E3 to 0.25mm FAST VIRTU E3.json

* Rename 0.20mm STANDARD VIRTU E3 to 0.20mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update and rename 0.25mm Standard @E3NG v1.2S.json to 0.25mm STANDARD @E3NG v1.2S.json

* Create 0.25mm STANDARD VIRTU E3.json

* Create process_common_VIRTU E3.json

* Create process_FAST_VIRTU E3.json

* Update 0.20mm FAST VIRTU E3.json

* Update 0.25mm FAST VIRTU E3.json

* Create process_SLOW_VIRTU E3.json

* Update 0.20mm SLOW @VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update and rename process_common_VIRTU E3.json to process_STANDARD_VIRTU E3.json

* Update 0.10mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3.json

* Update 0.25mm STANDARD @VIRTU E3.json

* Update process_STANDARD_VIRTU E3.json

* Update 0.25mm STANDARD VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD @VIRTU E3.json

* Update 0.10mm STANDARD VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update RH3D.json

* Update RH3D.json

* Create VIRTU E3 - 0.2 nozzle.json

* Create VIRTU E3 - 0.3 nozzle.json

* Create VIRTU E3 - 0.4 nozzle.json

* Create VIRTU E3 - 0.5 nozzle.json

* Create VIRTU E3 - 0.6 nozzle.json

* Create VIRTU E3,json

* Update fdm_common_E3NG v1.2S.json

* Update fdm_machine_common.json

* Create fdm_common_VIRTU E3.json

* Create Generic ABS VIRTU E3.json

* Create Generic ASA @VIRTU E3.json

* Update Generic ASA VIRTU E3.json

* Create Generic PCCF VIRTU E3.json

* Create Generic PETG @VIRTU E3.json

* Create Generic PLA VIRTU E3.json

* Create Generic TPU VIRTU E3.json

* Update Generic ASA VIRTU E3.json

* Update Generic PETG VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update 0.15mm STANDARD VIRTU E3.json

* Rename VIRTU E3,json to VIRTU E3.json

* Add files via upload

* Update VIRTU E3 - 0.2 nozzle.json

* Update E3NG v1.2S - 0.2 nozzle.json

* Update E3NG v1.2S - 0.3 nozzle.json

* Update E3NG v1.2S - 0.4 nozzle.json

* Update E3NG v1.2S - 0.5 nozzle.json

* Update E3NG v1.2S - 0.6 nozzle.json

* Update 0.10mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @E3NG v1.2S.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.25mm STANDARD @E3NG v1.2S.json

* Delete resources/profiles/RH3D/VIRTU-bed.stl

* Update fdm_common_VIRTU E3.json

* Add files via upload

* Delete resources/profiles/RH3D/E3NG-bed-texture.svg

* Add files via upload

* Delete resources/profiles/RH3D/VIRTU E3_cover.png

* Add files via upload

* Add files via upload

* Create process_STANDARD_E3NG.json

* Create process_SLOW_E3NG.json

* Update and rename process_STANDARD_E3NG.json to process_STANDARD_E3NG v1.2S.json

* Update and rename process_SLOW_E3NG.json to process_SLOW_E3NG v1.2S.json

* Create process_FAST_E3NG v1.2S.json

* Update 0.25mm STANDARD @E3NG v1.2S.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @E3NG v1.2S.json

* Update 0.10mm STANDARD @E3NG v1.2S.json

* Update 0.20mm SLOW @E3NG v1.2S.json

* Update 0.20mm FAST @E3NG v1.2S.json

* Update 0.25mm FAST @E3NG v1.2S.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.20mm STANDARD VIRTU E3.json

* Delete resources/profiles/RH3D/process/process_common_E3NG v1.2S.json

* Update RH3D.json

* Update fdm_process_common.json

* Update fdm_filament_common.json

* Update fdm_filament_abs.json

* Update fdm_filament_abs.json

* Update fdm_filament_asa.json

* Update fdm_filament_pccf.json

* Update fdm_filament_petg.json

* Update fdm_filament_pla.json

* Update fdm_process_common.json

* Update fdm_common_VIRTU E3.json

update speeds

* Update fdm_common_E3NG v1.2S.json

update speeds

* Update fdm_process_common.json

fix accel_to_decel

* Update fdm_machine_common.json

fix speed profile output

* Create 0.10mm SLOW @E3NG v1.2S.json

* Create 0.10mm FAST @E3NG v1.2S.json

* Create 0.15mm FAST @E3NG v1.2S.json

* Create 0.15mm SLOW @E3NG v1.2S.json

* Create 0.25mm SLOW @E3NG v1.2S.json

* Create 0.10mm SLOW VIRTU E3.json

* Create 0.10mm FAST VIRTU E3.json

* Create 0.15mm SLOW VIRTU E3.json

* Create 0.15mm FAST VIRTU E3.json

* Create 0.25mm SLOW VIRTU E3.json

* Update RH3D.json

add more slow and fast profiles

* Update 0.20mm FAST @E3NG v1.2S.json

* Update 0.20mm SLOW @E3NG v1.2S.json

* Update 0.20mm FAST @VIRTU E3.json

* Update 0.20mm SLOW @VIRTU E3.json

* Update fdm_process_common.json

* Update fdm_process_common.json

* Update Generic ABS @VIRTU E3.json

* Update Generic ABS VIRTU E3.json

* Update Generic PCCF VIRTU E3.json

* Update Generic PETG VIRTU E3.json

* Update Generic PLA VIRTU E3.json

* Update Generic ASA VIRTU E3.json

* Update Generic TPU VIRTU E3.json

* Update 0.20mm SLOW @E3NG v1.2S.json

* Update 0.25mm SLOW @E3NG v1.2S.json

* Update 0.15mm FAST @VIRTU E3.json

* Update 0.20mm FAST VIRTU E3.json

* Update 0.20mm STANDARD @E3NG v1.2S.json

* Update 0.15mm SLOW @E3NG v1.2S.json

* Update 0.25mm STANDARD @VIRTU E3.json

* Update 0.20mm STANDARD VIRTU E3.json

* Update 0.20mm FAST @E3NG v1.2S.json

* Update 0.25mm FAST VIRTU E3.json

* Update 0.10mm FAST VIRTU E3.json

* Update 0.10mm SLOW VIRTU E3.json

* Update 0.15mm SLOW VIRTU E3.json

* Update 0.20mm SLOW VIRTU E3.json

* Update 0.25mm FAST @E3NG v1.2S.json

* Update 0.10mm SLOW @E3NG v1.2S.json

* Update 0.10mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @VIRTU E3.json

* Update 0.25mm STANDARD @E3NG v1.2S.json

* Update 0.15mm STANDARD @E3NG v1.2S.json

* Update 0.25mm SLOW @VIRTU E3.json

* Update 0.10mm STANDARD VIRTU E3.json

* Update 0.15mm FAST @E3NG v1.2S.json

* Update 0.10mm FAST @E3NG v1.2S.json

* Update VIRTU E3 - 0.4 nozzle.json

* Update VIRTU E3 - 0.5 nozzle.json

* Update VIRTU E3 - 0.6 nozzle.json

* Update VIRTU E3 - 0.3 nozzle.json

* Update VIRTU E3 - 0.2 nozzle.json

* Replace cover PNGs for edge to edge images

* Update 0.10mm STANDARD @E3NG v1.2S.json

added alias with previous name

* Update 0.10mm STANDARD @E3NG v1.2S.json

update aliases

* Update and rename 0.10mm STANDARD @E3NG v1.2S.json to 0.10mm Standard @E3NG v1.2S.json

* Update RH3D.json

update naming

* Update and rename 0.10mm FAST @E3NG v1.2S.json to 0.10mm Fast @E3NG v1.2S.json

* Update and rename 0.10mm FAST VIRTU E3.json to 0.10mm Fast VIRTU E3.json

* Update and rename 0.15mm FAST @E3NG v1.2S.json to 0.15mm Fast @E3NG v1.2S.json

* Update and rename 0.15mm FAST VIRTU E3.json to 0.15mm Fast VIRTU E3.json

* Update and rename 0.20mm FAST @E3NG v1.2S.json to 0.20mm Fast @E3NG v1.2S.json

* Update and rename 0.20mm FAST VIRTU E3.json to 0.20mm Fast VIRTU E3.json

* Update and rename 0.25mm FAST @E3NG v1.2S.json to 0.25mm Fast @E3NG v1.2S.json

* Update and rename 0.25mm FAST @VIRTU E3.json to 0.25mm Fast @VIRTU E3.json

* Update and rename process_FAST_E3NG v1.2S.json to process_Fast_E3NG v1.2S.json

* Update and rename process_FAST_VIRTU E3.json to process_Fast_VIRTU E3.json

* Update and rename 0.10mm SLOW @E3NG v1.2S.json to 0.10mm Slow @E3NG v1.2S.json

* Update and rename 0.10mm SLOW @VIRTU E3.json to 0.10mm Slow @VIRTU E3.json

* Update and rename 0.15mm SLOW @E3NG v1.2S.json to 0.15mm Slow @E3NG v1.2S.json

* Update and rename 0.20mm SLOW @E3NG v1.2S.json to 0.20mm Slow @E3NG v1.2S.json

* Update and rename 0.15mm SLOW VIRTU E3.json to 0.15mm Slow VIRTU E3.json

* Update and rename 0.20mm SLOW @VIRTU E3.json to 0.20mm Slow @VIRTU E3.json

* Update and rename 0.25mm SLOW @E3NG v1.2S.json to 0.25mm Slow @E3NG v1.2S.json

* Update and rename 0.25mm SLOW @VIRTU E3.json to 0.25mm Slow @VIRTU E3.json

* Update and rename process_SLOW_E3NG v1.2S.json to process_Slow_E3NG v1.2S.json

* Update and rename process_SLOW_VIRTU E3.json to process_Slow_VIRTU E3.json

* Update and rename 0.10mm STANDARD @VIRTU E3.json to 0.10mm Standard @VIRTU E3.json

* Update and rename 0.15mm STANDARD @E3NG v1.2S.json to 0.15mm Standard @E3NG v1.2S.json

* Update and rename 0.20mm STANDARD @E3NG v1.2S.json to 0.20mm Standard @E3NG v1.2S.json

* Update and rename 0.15mm STANDARD @VIRTU E3.json to 0.15mm Standard @VIRTU E3.json

* Update and rename 0.20mm STANDARD @VIRTU E3.json to 0.20mm Standard @VIRTU E3.json

* Update and rename 0.25mm STANDARD @E3NG v1.2S.json to 0.25mm Standard @E3NG v1.2S.json

* Update and rename 0.25mm STANDARD VIRTU E3.json to 0.25mm Standard VIRTU E3.json

* Update and rename process_STANDARD_E3NG v1.2S.json to process_Standard_E3NG v1.2S.json

* Update and rename process_STANDARD_VIRTU E3.json to process_Standard_VIRTU E3.json

* Update E3NG v1.2S - 0.2 nozzle.json

* Update E3NG v1.2S - 0.3 nozzle.json

* Update E3NG v1.2S - 0.4 nozzle.json

* Update E3NG v1.2S - 0.5 nozzle.json

* Update E3NG v1.2S - 0.6 nozzle.json

* Update VIRTU E3 - 0.2 nozzle.json

* Update VIRTU E3 - 0.3 nozzle.json

* Update VIRTU E3 - 0.4 nozzle.json

* Update VIRTU E3 - 0.5 nozzle.json

* Update VIRTU E3 - 0.6 nozzle.json

* Update 0.15mm Slow @E3NG v1.2S.json

* Update 0.10mm Fast VIRTU E3.json

* Update 0.20mm Slow VIRTU E3.json

* Update 0.10mm Standard @E3NG v1.2S.json

* Update 0.10mm Fast @E3NG v1.2S.json

* Update 0.25mm Standard @E3NG v1.2S.json

* Update 0.15mm Standard @E3NG v1.2S.json

* Update 0.15mm Standard VIRTU E3.json

* Update 0.20mm Standard VIRTU E3.json

* Update 0.20mm Standard @E3NG v1.2S.json

* Update 0.25mm Slow VIRTU E3.json

* Update 0.25mm Fast @E3NG v1.2S.json

* Update 0.20mm Slow @E3NG v1.2S.json

* Update 0.10mm Slow VIRTU E3.json

* Update 0.25mm Slow @E3NG v1.2S.json

* Update 0.25mm Standard VIRTU E3.json

* Update 0.10mm Standard VIRTU E3.json

* Update 0.20mm Fast @E3NG v1.2S.json

* Update 0.10mm Slow @E3NG v1.2S.json

* Update 0.15mm Fast @E3NG v1.2S.json

* Update 0.15mm Fast VIRTU E3.json

* Update 0.15mm Slow VIRTU E3.json

* Update 0.20mm Fast VIRTU E3.json

* Update 0.25mm Fast VIRTU E3.json

* Update fdm_machine_common.json

* Profile verification/fix

Fixing profiles with orca_profile_tool.py

* bump version

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-09-21 22:02:31 +08:00
İlker Kara 1e038bfc53 fix(linux): build deps on older GCC and Ubuntu 22.04 (#15151)
- GMP: name the parameters in the configure probe from
  0001-GMP_GCC15.patch. Unnamed parameters are a hard error on GCC 10
  and older, so configure failed there.
- TBB: turn off the automatic hwloc search so a system libhwloc-dev is
  not picked up.
- scripts/linux.d/debian: run apt update before checking which
  webkit2gtk package exists, and prefer webkit2gtk-4.1 since the build
  requires it. Add automake, which MPFR's autoreconf needs.
2026-09-21 09:36:55 -03:00
barmanr cdcef47e3d test: bump OrcaArena profile version for OTA retry (#15798)
Merged by /bot merge on behalf of @barmanr (id 281100727).
Grants: resources/profiles/OrcaArena, resources/profiles/OrcaArena.json
Head: 32113de7fd
2026-09-21 11:10:10 +00:00
Ian Chua cf1c164546 feat: add printer-agent.md doc to HLSD 2026-09-21 18:40:24 +08:00
Ian Chua 4f8a31e9db fix: run post_merge_profiles.yml after bot merges PR. (#15797)
# 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?
-->
When a PR is merged using the bot with `/bot merge`, it doesn't invoke
`post_merge_profiles.yml` because post_merge_profiles.yml only starts on
a push or manual dispatch.

# 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-21 18:33:35 +08:00
Ian Chua ced4a31cdb Merge branch 'main' into fix/run-profiles-ci-after-bot-merge 2026-09-21 18:32:58 +08:00
peachismomo 8581df4a8a fix: update pr-merge-bot.yml to run post_merge_profiles.yml after merge 2026-09-21 18:30:25 +08:00
Byeon Ho cheol. 162cf7fd4c Update Cubicon profiles: filament/process tuning and xCeler-Mini compatibility (#14660) 2026-09-21 18:18:57 +08:00
peachismomo 09d67b1bb4 fix: remove some logging 2026-09-21 18:17:15 +08:00
barmanr 64cad00569 fix: update OrcaArena product URL (#15796)
Merged by /bot merge on behalf of @barmanr (id 281100727).
Grants: resources/profiles/OrcaArena, resources/profiles/OrcaArena.json
Head: 794db5d30d
2026-09-21 09:53:13 +00:00
SoftFever 45940a573d Grant pull-requests write so profile PR labels and the partner notice actually post 2026-09-21 17:13:44 +08:00
HanifKoh 8b63628cf9 Restore Plugin HTML After a WebKit Reload (#15737)
Plugin dialog content is injected with SetPage, so on the WebKit backends a
reload (context menu, keyboard shortcut or location.reload()) re-fetches the
SetPage base URL instead of the injected document, and the plugin UI is gone
for good: load_plugin_content() returned early once m_content_loaded was set.

Re-inject the plugin HTML when a main-frame load after the initial swap is
neither that swap nor a page the plugin linked to. m_own_page_load marks the
load our own SetPage caused, and the URL test recognises the reload: the
injected document and the directory a reload re-fetches both report the base
URL, so a load of any other URL is left alone. The test ignores a fragment the
page navigated to, and undoes the escaping the web view applies to what the
resources path holds.

A load reaching the base URL is not enough on its own, because WebKitGTK reports
a navigation that never committed against the document that stayed and then
finishes that document again: a link to a missing file therefore arrives as a
load of the base URL and reads exactly like a reload. So the re-injection also
requires a navigation to the base URL to have committed, which a reload always
does and a failure never does.

A bootstrap page that cannot be loaded is still not recovered from: WebKitGTK
substitutes a stock error page for it, and that load supersedes the swap
whichever way the swap is ordered around it. The file ships, so this is a
broken-install path; nothing here makes it worse than it already was.

No separate MSW path is needed: wxWebViewEdge ignores the SetPage base URL, so
its documents report about:blank and the test never matches there, and WebView2
reloads NavigateToString content from its own history entry anyway.
2026-09-21 17:09:05 +08:00
dremc c8bfd2ad3e Fix instantiation on DREMC Filament (#14659) 2026-09-21 16:53:16 +08:00
Alexander Haibl 3eae4c6997 fix-start-gcode for many creality printers (#14652) 2026-09-21 16:22:32 +08:00
gyarros 83eaf3bcfc FilAr PLA-mate: lower bed temperature to 50 C (#14489) 2026-09-21 16:07:49 +08:00
Davide Garberi 454ef1571b Update generic filament profiles for Creality SPARKX i7 (#14388) 2026-09-21 16:01:14 +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 e168d900f2 fix: stop flatpak DataChannel build from re-cloning over the sandboxed network 2026-09-18 22:10:30 +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 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 4d85b6627e fix: wrap command_* with small wrapper 2026-09-17 12:51:17 +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
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 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 8e48312b1f Merge branch 'main' into feat/printer-agent-impl 2026-08-25 13:47:11 +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 2bbb229c91 Merge branch 'main' into refactor/printer-agent-interface 2026-08-19 23:30:22 +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
442 changed files with 16473 additions and 2804 deletions
@@ -75,8 +75,6 @@ jobs:
if [ -z "$base" ] || [ "$base" = "0000000000000000000000000000000000000000" ] || ! git cat-file -e "$base^{commit}" 2>/dev/null; then
base="$head^"
fi
echo "Diffing $base..$head"
mapfile -t candidates < <(
git diff --name-only "$base" "$head" -- resources/profiles \
| sed -nE 's#^resources/profiles/([^/]+)/.*#\1#p; s#^resources/profiles/([^/]+)\.json$#\1#p' \
@@ -95,7 +93,6 @@ jobs:
done
if [ "${#vendors[@]}" -eq 0 ]; then
echo "No changed vendor profiles in this push; nothing to publish."
echo "vendors=" >> "$GITHUB_OUTPUT"
exit 0
fi
@@ -138,13 +135,10 @@ jobs:
done
if [ "${#unauthorized[@]}" -ne 0 ]; then
echo "Changed vendor profiles are not covered by FOLDER_MERGERS: ${unauthorized[*]}"
echo "No profile caches will be published for this push."
echo "vendors=" >> "$GITHUB_OUTPUT"
exit 0
fi
printf 'Changed vendors: %s\n' "${vendors[*]}"
echo "vendors=${vendors[*]}" >> "$GITHUB_OUTPUT"
- name: Resolve Orca version
@@ -163,7 +157,6 @@ jobs:
# OrcaCloud keys R2 on; orca_ver (X.Y.Z) is the asset-name prefix.
echo "release_tag=$raw" >> "$GITHUB_OUTPUT"
echo "orca_ver=$orca_ver" >> "$GITHUB_OUTPUT"
echo "Orca version: release_tag=$raw asset_prefix=$orca_ver"
- name: Validate profile versions
id: pver
@@ -179,7 +172,6 @@ jobs:
exit 1
fi
printf '%s\t%s\n' "$v" "$pv" >> "$RUNNER_TEMP/pver.tsv"
echo "$v -> $pv"
done
- name: Download generate_system_cache
@@ -214,7 +206,6 @@ jobs:
pv="$(awk -F'\t' -v v="$v" '$1==v{print $2}' "$RUNNER_TEMP/pver.tsv")"
name="${orca_ver}_${v}_${pv}_${ts}.zip"
( cd resources/profiles && zip -q -j "$out/$name" "$v.opc" )
echo "packaged $name"
done
echo "dir=$out" >> "$GITHUB_OUTPUT"
+24 -2
View File
@@ -520,6 +520,28 @@ jobs:
} catch (error) {
core.warning(`Merged successfully, but dispatching build_all.yml failed: ${error.message}`);
}
// ---- re-kick the profile publish ----
// Same reason as above: post_merge_profiles.yml is push-triggered, so a
// GITHUB_TOKEN merge never starts it. workflow_dispatch skips the paths:
// filter, so only dispatch when the PR actually touched profiles.
const touchesProfiles = files.some((file) =>
[file.filename, file.previous_filename]
.filter(Boolean)
.some((p) => p.startsWith('resources/profiles/'))
);
if (touchesProfiles) {
try {
await github.rest.actions.createWorkflowDispatch({
owner,
repo,
workflow_id: 'post_merge_profiles.yml',
ref: pr.base.ref
});
core.info(`Dispatched post_merge_profiles.yml on ${pr.base.ref}.`);
} catch (error) {
core.warning(`Merged successfully, but dispatching post_merge_profiles.yml failed: ${error.message}`);
}
}
label-profile:
# Independent of the merge rules: any PR that changes only files inside
@@ -529,7 +551,7 @@ jobs:
&& github.event_name == 'pull_request_target'
permissions:
contents: read
pull-requests: read
pull-requests: write
issues: write
runs-on: ubuntu-latest
timeout-minutes: 5
@@ -636,7 +658,7 @@ jobs:
&& github.event_name == 'pull_request_target'
permissions:
contents: read # delegatable subtree, for file modes
pull-requests: read
pull-requests: write
issues: write # label + comment
runs-on: ubuntu-latest
timeout-minutes: 10
+42 -1
View File
@@ -826,6 +826,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 +1137,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,6 +1150,7 @@ 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
@@ -1142,7 +1175,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 +1193,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 +1325,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
+23 -11
View File
@@ -156,7 +156,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 +202,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
@@ -240,12 +246,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 +267,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
@@ -386,10 +395,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 +405,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 +484,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
+3 -3
View File
@@ -5,7 +5,7 @@
#if defined (__GNUC__) && ! defined (__cplusplus)
typedef unsigned long long t1;typedef t1*t2;
-void g(){}
+void g(int,t1 const*,t1,t2,t1 const*,int){}
+void g(int a,t1 const*b,t1 c,t2 dd,t1 const*e,int ff){}
void h(){}
static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
{t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
@@ -17,7 +17,7 @@
#if defined (__GNUC__) && ! defined (__cplusplus)
typedef unsigned long long t1;typedef t1*t2;
-void g(){}
+void g(int,t1 const*,t1,t2,t1 const*,int){}
+void g(int a,t1 const*b,t1 c,t2 dd,t1 const*e,int ff){}
void h(){}
static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
{t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
@@ -26,7 +26,7 @@
#if defined (__GNUC__) && ! defined (__cplusplus)
typedef unsigned long long t1;typedef t1*t2;
-void g(){}
+void g(int,t1 const*,t1,t2,t1 const*,int){}
+void g(int a,t1 const*b,t1 c,t2 dd,t1 const*e,int ff){}
void h(){}
static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
{t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
+1
View File
@@ -15,6 +15,7 @@ orcaslicer_add_cmake_project(
-DTBB_BUILD_SHARED=OFF
-DTBB_BUILD_TESTS=OFF
-DTBB_TEST=OFF
-DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=ON
-DTBB_ENABLE_IPO=OFF
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
+132
View File
@@ -0,0 +1,132 @@
# Keyboard Shortcuts
## Why it exists
Key events arrive in several windows (the main frame's char hook, the 3D canvases, the
gizmo manager and the object list), and the same keys are shown again in menu labels,
toolbar tooltips, gizmo names and the shortcuts dialog. The registry is the one table all
of them read. Each binding is defined once; dispatchers look key events up there, labels
are derived from it, and a change the user makes updates all of them.
## Data model
`KeyChord` (`src/slic3r/GUI/KeyChord.hpp`) is one key press: the key code as
`wxEVT_KEY_DOWN` reports it, plus the `wxMOD_*` modifiers held with it. It has two
text forms. The canonical one (`Ctrl+Shift+S`) is platform-neutral and doubles as the wx
accelerator string and the config format. The display one uses translated modifier
names and the command and option glyphs on macOS. `KeyChord::from_event()` turns any wx
key event into the same key code and modifiers, so a chord recorded in the dialog is
equal to the chord a dispatcher builds from the key press.
`Shortcut` is the enum of every user-facing binding. `shortcut_table` in
`src/slic3r/GUI/Shortcuts.cpp` gives each one a config key, a description, a context
mask, a default chord, a `repeatable` flag and a `modifier_variants` flag, in the order
the dialog lists them; a `static_assert` keeps the table and the enum in step.
`ShortcutRegistry` overlays the user's overrides on the defaults and keeps a
chord-to-shortcut index for lookups. It reads and writes the `shortcuts` section of
`AppConfig`. Only overrides are stored, so a default can change between releases
without touching anyone's config; `none` records a shortcut the user unbound.
## Contexts
A key press is looked up in the context of the window that received it.
| Context | Dispatcher | Examples |
|--------------|-----------------------------------------------------------|-------------------------------|
| `Global` | `MainFrame`'s `wxEVT_CHAR_HOOK`, before any child sees it | New project, camera views |
| `Plater` | `GLCanvas3D` of the 3D and assembly views | Arrange, gizmo activation |
| `Preview` | `GLCanvas3D` of the G-code preview | One-layer mode, jump to layer |
| `ObjectList` | the object list | Copy, delete, auto drop |
| `Painting` | `GLGizmosManager` while a painting gizmo is open | Circle, sphere, fill tools |
A shortcut can belong to several contexts, which is how copy and paste are a single
binding for the canvas and the object list. Two shortcuts can share a chord when their
contexts do not overlap; `C` is the cut gizmo in the 3D view, the G-code window in the
preview and the circle tool while painting. A Global chord is dispatched before every
other context, so the dialog treats it as conflicting with all of them.
A Global shortcut has to include Ctrl or Alt or use a key that types nothing, since a
bare printable key in the frame hook would swallow that character in every text field.
The dialog refuses such chords and `ShortcutRegistry::load()` drops them from the config.
Space counts as typing. The speed dial's default is the one bare Space, and
`MainFrame` leaves it to a focused control that uses Space itself (text fields, buttons,
combo boxes), so it opens the dial from the canvases and the tab strip only.
## Which event a chord matches
Letters, digits and special keys match on `wxEVT_KEY_DOWN`. Its key codes do not depend
on the keyboard layout: the key labelled `Q` on an AZERTY keyboard and the key in the
same position under a Cyrillic layout both report `Q`. Numpad keys fold onto their main
keyboard equivalents, so `Ctrl+1` and `Ctrl+Numpad 1` are one binding.
Punctuation matches on `wxEVT_CHAR`, because only the char event knows which character
a key produced under the active layout. `+` is Shift and `=` on a US keyboard and a key
of its own on a German one, and the binding means the character in both cases. The
canvas looks a key up on key-down first and, when nothing matched, once more on the char
event, for punctuation chords only. The dialog records chords the same way: a printable
non-alphanumeric key pressed with nothing but Shift is taken from the char event that
follows.
wxGTK does not report key auto-repeat, so the canvases share one record of the keys
seen going down and swallow the repeats of every shortcut not marked `repeatable`. Zoom
and undo repeat, for example; a toggle such as Tab does not. The record is shared because
a shortcut can move the focus to another canvas while its key is still held; a key
released while no canvas had the focus is dropped on the next press.
A few shortcuts have `modifier_variants`: Shift or Ctrl added to their binding selects a
step of the same action (1 mm and camera-space moves of the selection, five-step slider
moves). Only a binding without Shift or Ctrl of its own has steps, so no two bindings
share one. `ShortcutRegistry::match()` looks the exact chord up first and only then, when
nothing is bound to it, looks for such a shortcut whose binding is the chord minus those
modifiers, reporting which were added; a binding on Ctrl+Shift+key therefore wins over
the combined step. The Shift and Ctrl steps themselves are reserved. `step_owner()` names
the shortcut they belong to, the capture dialog refuses to assign them, and
`conflicts()` reports exact chords only. A binding made before its key became a stepping
key keeps its chord and shadows that one step. A move or rotation of the selection
started from the keyboard runs until the key that started it is released, or the
canvas loses focus, so a held key is one undo step.
## Labels
Menu labels, toolbar tooltips, gizmo names, the context menu and the shortcuts dialog
read the registry, so a rebinding shows up in all of them. Each tracked menu item keeps
its base label; `MainFrame::update_shortcut_labels()` appends the current binding
again after an edit, which also installs the new wx accelerator.
A chord that is unsafe as a menu accelerator, meaning a bare printable key, is appended
to the label as plain text so the menu cannot take it away from text fields. The macOS
edit menu shows its clipboard and undo entries that way, because a system-menu key
equivalent for Cmd+C would run instead of the text field's own copy.
On macOS the object list receives no key events at all, so its bindings are installed as
a `wxAcceleratorTable`, regenerated from the registry after each edit.
## Editing
The shortcuts dialog has a page per context, each opening with a line that says when its
keys apply. A page lists the shortcuts under the headings of `section_table`, with the
fixed keys that cannot change (mouse buttons, the step modifiers, Esc, the digit keys
that pick a filament) sorted into the same sections. The mouse drag rows describe the
camera actions chosen in Preferences; their button opens Preferences > Control with that
option scrolled into view and focused, instead of editing a key.
Editing a row opens a capture dialog that records the next chord, names the shortcuts it
would take the chord from, and on confirmation unbinds those and binds this one.
Resetting a row asks the same question when its default is now held by another
shortcut, so a reset cannot leave two shortcuts on one chord. Each change is written to
the config at once and pushed to the menus, tooltips and accelerator tables through
`GUI_App::on_shortcuts_changed()`. The dialog opens from the Help menu and Preferences >
Control on the Global page, and from the `?` key on the page of the view that received it.
## Adding a shortcut
1. Add the enum value to `Shortcut` and its row to `shortcut_table`, in the position
the dialog should list it; the row's section heading is the `section_table` entry
above it, so a new section needs an entry there too. Pick a default that does not
collide inside its contexts; the `[Shortcuts]` tests check every default against the
others.
2. Handle it in the dispatcher of its context: `MainFrame::handle_global_shortcut`,
`GLCanvas3D::handle_shortcut`, `ObjectList::dispatch_shortcut`, or a gizmo's
`on_tool_shortcut`. A gizmo that opens on a key sets `m_shortcut` in its constructor.
3. Where the UI shows the key, ask the registry (`display()` for tooltips,
`accelerator()` for menu labels); no label holds a literal key name.
+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
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Creality",
"version": "02.03.02.82",
"version": "02.03.02.84",
"force_update": "0",
"description": "Creality configurations",
"machine_model_list": [
@@ -55,7 +55,7 @@
"0"
],
"filament_max_volumetric_speed": [
"12"
"8"
],
"filament_retract_before_wipe": [
"100"
@@ -43,19 +43,19 @@
"1.75"
],
"filament_flow_ratio": [
"0.98"
"0.95"
],
"filament_is_support": [
"0"
],
"filament_max_volumetric_speed": [
"16"
"14"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_retract_before_wipe": [
"nil"
"100%"
],
"filament_retract_restart_extra": [
"nil"
@@ -67,7 +67,7 @@
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
"2"
],
"filament_retraction_speed": [
"nil"
@@ -106,7 +106,10 @@
"0"
],
"slow_down_layer_time": [
"8"
"14"
],
"slow_down_min_speed": [
"20"
],
"temperature_vitrification": [
"110"
@@ -118,7 +121,7 @@
"55"
],
"filament_start_gcode": [
"; Filament gcode\n"
";filament start gcode\n"
],
"filament_end_gcode": [
"; filament end gcode \n"
@@ -153,7 +156,7 @@
"filament_unloading_speed_start": "100",
"material_flow_dependent_temperature": "0",
"material_flow_temp_graph": "[[0.2,210],[0.6,220]]",
"pressure_advance": "0.12",
"pressure_advance": "0.032",
"support_material_interface_fan_speed": "-1",
"compatible_printers": [
"Creality SPARKX i7 0.2 nozzle",
@@ -54,7 +54,7 @@
"machine_min_travel_rate": "0,0",
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 X20 Y-1 F30000\nG1 Z0.3 F1200\nG1 X100 E10 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X1 Z-0.300\nG1 X4\nG92 E0\nG1 Z1 F1200",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 X20 Y-1 F30000\nG1 Z0.3 F1200\nG1 X100 E10 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X1 Z-0.300\nG1 X4\nG92 E0\nG1 Z1 F1200",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"nozzle_hrc": "0",
@@ -123,7 +123,7 @@
"default_filament_profile": [
"Generic PLA HF @Creality"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -123,7 +123,7 @@
"default_filament_profile": [
"Generic PLA HF @Creality"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -123,7 +123,7 @@
"default_filament_profile": [
"Generic PLA HF @Creality"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -124,7 +124,7 @@
"default_filament_profile": [
"Generic PLA HF @Creality"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -124,7 +124,7 @@
"default_filament_profile": [
"Generic PLA HF @Creality"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -124,7 +124,7 @@
"default_filament_profile": [
"Generic PLA HF @Creality"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -56,7 +56,7 @@
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "1",
"machine_ptc_exist": "1",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"nozzle_hrc": "0",
@@ -123,7 +123,7 @@
"default_filament_profile": [
"Generic PLA @Creality K1-all"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails_format": "PNG",
@@ -57,7 +57,7 @@
"machine_min_travel_rate": "0,0",
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "1",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"nozzle_hrc": "0",
@@ -57,7 +57,7 @@
"machine_min_travel_rate": "0,0",
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "1",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"nozzle_hrc": "0",
@@ -55,7 +55,7 @@
"machine_min_travel_rate": "0,0",
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "1",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"nozzle_hrc": "0",
@@ -124,7 +124,7 @@
"default_filament_profile": [
"Generic PLA @Creality K1-all"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -124,7 +124,7 @@
"default_filament_profile": [
"Generic PLA @Creality K1-all"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -124,7 +124,7 @@
"default_filament_profile": [
"Generic PLA @Creality K1-all"
],
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_end_gcode": "END_PRINT",
"scan_first_layer": "0",
"thumbnails": [
@@ -56,7 +56,7 @@
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "1",
"machine_ptc_exist": "1",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"nozzle_hrc": "0",
@@ -57,7 +57,7 @@
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "1",
"machine_ptc_exist": "1",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"nozzle_hrc": "0",
@@ -59,7 +59,7 @@
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "0",
"machine_ptc_exist": "0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "30",
"manual_filament_change": "0",
@@ -59,7 +59,7 @@
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "0",
"machine_ptc_exist": "0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "30",
"manual_filament_change": "0",
@@ -59,7 +59,7 @@
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "0",
"machine_ptc_exist": "0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "30",
"manual_filament_change": "0",
@@ -59,7 +59,7 @@
"machine_pause_gcode": "PAUSE",
"machine_platform_motion_enable": "0",
"machine_ptc_exist": "0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "30",
"manual_filament_change": "0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Cubicon",
"version": "02.04.00.05",
"version": "02.04.00.06",
"force_update": "0",
"description": "Cubicon configurations",
"machine_model_list": [
@@ -15,7 +15,7 @@
"115"
],
"hot_plate_temp_initial_layer": [
"115"
"120"
],
"close_fan_the_first_x_layers": [
"3"
@@ -24,13 +24,13 @@
"30"
],
"filament_density": [
"1.24"
"1.04"
],
"filament_flow_ratio": [
"0.99"
],
"filament_max_volumetric_speed": [
"23"
"14"
],
"nozzle_temperature_initial_layer": [
"240"
@@ -39,19 +39,19 @@
"80"
],
"fan_min_speed": [
"70"
"15"
],
"slow_down_min_speed": [
"30"
"20"
],
"slow_down_layer_time": [
"3"
"10"
],
"nozzle_temperature": [
"245"
],
"temperature_vitrification": [
"78"
"105"
],
"nozzle_temperature_range_low": [
"220"
@@ -61,5 +61,14 @@
],
"additional_cooling_fan_speed": [
"0"
],
"activate_air_filtration": [
"1"
],
"during_print_exhaust_fan_speed": [
"0"
],
"complete_print_exhaust_fan_speed": [
"255"
]
}
@@ -12,10 +12,10 @@
"Cubicon"
],
"hot_plate_temp": [
"100"
"105"
],
"hot_plate_temp_initial_layer": [
"100"
"115"
],
"close_fan_the_first_x_layers": [
"3"
@@ -24,13 +24,13 @@
"30"
],
"filament_density": [
"1.24"
"1.04"
],
"filament_flow_ratio": [
"0.99"
"1.04"
],
"filament_max_volumetric_speed": [
"23"
"8"
],
"nozzle_temperature_initial_layer": [
"225"
@@ -39,19 +39,19 @@
"80"
],
"fan_min_speed": [
"70"
"15"
],
"slow_down_min_speed": [
"30"
"20"
],
"slow_down_layer_time": [
"3"
"10"
],
"nozzle_temperature": [
"230"
],
"temperature_vitrification": [
"78"
"105"
],
"nozzle_temperature_range_low": [
"220"
@@ -61,5 +61,32 @@
],
"additional_cooling_fan_speed": [
"0"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.04"
],
"filament_retraction_length": [
"1.2"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
]
}
@@ -15,7 +15,7 @@
"115"
],
"hot_plate_temp_initial_layer": [
"115"
"120"
],
"close_fan_the_first_x_layers": [
"3"
@@ -24,13 +24,13 @@
"30"
],
"filament_density": [
"1.24"
"1.04"
],
"filament_flow_ratio": [
"0.99"
],
"filament_max_volumetric_speed": [
"23"
"14"
],
"nozzle_temperature_initial_layer": [
"240"
@@ -39,19 +39,19 @@
"80"
],
"fan_min_speed": [
"70"
"15"
],
"slow_down_min_speed": [
"30"
"20"
],
"slow_down_layer_time": [
"3"
"10"
],
"nozzle_temperature": [
"240"
],
"temperature_vitrification": [
"85"
"105"
],
"nozzle_temperature_range_low": [
"220"
@@ -10,5 +10,77 @@
],
"filament_vendor": [
"Cubicon"
],
"fan_max_speed": [
"25"
],
"fan_min_speed": [
"0"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.01"
],
"close_fan_the_first_x_layers": [
"5"
],
"overhang_fan_threshold": [
"50%"
],
"overhang_fan_speed": [
"25"
],
"slow_down_layer_time": [
"8"
],
"filament_max_volumetric_speed": [
"4"
],
"filament_flow_ratio": [
"0.94"
],
"nozzle_temperature_initial_layer": [
"245"
],
"nozzle_temperature": [
"250"
],
"nozzle_temperature_range_low": [
"240"
],
"nozzle_temperature_range_high": [
"280"
],
"filament_retraction_length": [
"0.8"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
],
"activate_air_filtration": [
"1"
],
"during_print_exhaust_fan_speed": [
"0"
],
"complete_print_exhaust_fan_speed": [
"255"
]
}
@@ -15,7 +15,7 @@
"80"
],
"hot_plate_temp_initial_layer": [
"80"
"85"
],
"close_fan_the_first_x_layers": [
"3"
@@ -54,12 +54,45 @@
"70"
],
"nozzle_temperature_range_low": [
"230"
"220"
],
"nozzle_temperature_range_high": [
"250"
],
"additional_cooling_fan_speed": [
"0"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.08"
],
"filament_retraction_length": [
"2.0"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
],
"activate_air_filtration": [
"1"
],
"complete_print_exhaust_fan_speed": [
"255"
]
}
@@ -53,5 +53,38 @@
],
"additional_cooling_fan_speed": [
"80"
],
"close_fan_the_first_x_layers": [
"1"
],
"filament_retraction_length": [
"2.0"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
],
"activate_air_filtration": [
"1"
],
"during_print_exhaust_fan_speed": [
"255"
],
"complete_print_exhaust_fan_speed": [
"255"
]
}
@@ -18,5 +18,14 @@
],
"nozzle_temperature_range_high": [
"220"
],
"filament_max_volumetric_speed": [
"8"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.025"
]
}
@@ -73,12 +73,12 @@
"20000"
],
"machine_max_acceleration_z": [
"250",
"500"
"50",
"100"
],
"machine_max_speed_z": [
"25",
"12"
"5",
"10"
],
"machine_max_acceleration_retracting": [
"5000",
@@ -5,7 +5,8 @@
"instantiation": "false",
"compatible_printers": [
"Cubicon xCeler-I 0.4 nozzle",
"Cubicon xCeler-Plus 0.4 nozzle"
"Cubicon xCeler-Plus 0.4 nozzle",
"Cubicon xCeler-Mini 0.4 nozzle"
],
"print_settings_id": "cubicon common @base",
"accel_to_decel_enable": "1",
@@ -14,26 +15,24 @@
"bridge_flow": "0.9",
"internal_bridge_flow": "0.9",
"brim_type": "no_brim",
"detect_overhang_wall": "1",
"detect_overhang_wall": "0",
"resolution": "0.012",
"elefant_foot_compensation": "0.15",
"percise_outer_wall": "1",
"percise_z_height": "0.2",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_prime_tower": "0",
"enable_support": "0",
"exclude_object": "0",
"filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
"gap_infill_speed": "250",
"infill_combination": "1",
"infill_combination": "0",
"infill_direction": "45",
"infill_wall_overlap": "15",
"infill_anchor": "400%",
"infill_anchor_max": "20",
"initial_layer_line_width": "0.5",
"initial_layer_print_height": "0.25",
"initial_layer_speed": "60",
"initial_layer_infill_speed": "60",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "50",
"initial_layer_infill_speed": "100",
"initial_layer_travel_speed": "500",
"slow_down_layers": "1",
"only_one_wall_top": "1",
@@ -47,9 +46,9 @@
"outer_wall_speed": "200",
"print_sequence": "by layer",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_crossing_wall": "1",
"reduce_infill_retraction": "1",
"seam_position": "back",
"seam_position": "aligned",
"seam_gap": "10%",
"enable_arc_fitting": "0",
"staggered_inner_seams": "1",
@@ -57,7 +56,7 @@
"skirt_distance": "2.5",
"skirt_height": "1",
"skirt_speed": "50",
"skirt_start_angle": "-45",
"skirt_start_angle": "-135",
"sparse_infill_density": "15",
"sparse_infill_speed": "270",
"sparse_infill_pattern": "grid",
@@ -84,7 +83,7 @@
"support_threshold_angle": "15",
"wall_loops": "2",
"thick_bridges": "0",
"extra_perimeters_on_overhangs": "1",
"extra_perimeters_on_overhangs": "0",
"top_shell_layers": "5",
"top_shell_thickness": "1",
"slow_down_curled_perimeters": "0",
@@ -93,18 +92,18 @@
"travel_jerk": "12",
"infill_jerk": "12",
"initial_layer_jerk": "9",
"inner_wall_jerk": "7",
"outer_wall_jerk": "7",
"default_acceleration": "13000",
"travel_acceleration": "13000",
"outer_wall_acceleration": "5000",
"inner_wall_acceleration": "5000",
"initial_layer_acceleration": "1000",
"inner_wall_jerk": "3.5",
"outer_wall_jerk": "3",
"default_acceleration": "10000",
"travel_acceleration": "10000",
"outer_wall_acceleration": "2000",
"inner_wall_acceleration": "6000",
"initial_layer_acceleration": "500",
"top_surface_acceleration": "2000",
"raft_first_layer_density": "90",
"raft_first_layer_expansion": "2",
"precise_outer_wall": "1",
"precise_z_height": "0",
"precise_z_height": "1",
"slowdown_for_curled_perimeters": "0",
"bridge_speed": "50",
"internal_bridge_speed": "150%",
@@ -112,5 +111,7 @@
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"independent_support_layer_height": "1"
"independent_support_layer_height": "1",
"solid_infill_direction": "90",
"max_travel_detour_distance": "80%"
}
@@ -62,7 +62,7 @@
"top_surface_line_width": "0.4",
"top_surface_speed": "30",
"travel_speed": "400",
"enable_prime_tower": "1",
"enable_prime_tower": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0"
@@ -42,7 +42,7 @@
"enable_arc_fitting": "1",
"enable_extra_bridge_layer": "disabled",
"enable_overhang_speed": "1",
"enable_prime_tower": "1",
"enable_prime_tower": "0",
"enable_support": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all",
+249 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Flashforge",
"url": "",
"version": "02.04.00.08",
"version": "02.04.00.09",
"force_update": "0",
"description": "Flashforge configurations",
"machine_model_list": [
@@ -25,6 +25,10 @@
"name": "Flashforge Adventurer 5M Pro",
"sub_path": "machine/Flashforge Adventurer 5M Pro.json"
},
{
"name": "Flashforge Adventurer A5",
"sub_path": "machine/Flashforge Adventurer A5.json"
},
{
"name": "Flashforge Artemis",
"sub_path": "machine/Flashforge Artemis.json"
@@ -199,6 +203,10 @@
"name": "0.20mm Standard @FF AD5X",
"sub_path": "process/0.20mm Standard @FF AD5X.json"
},
{
"name": "0.20mm Standard @FF Adventurer A5 0.4 nozzle",
"sub_path": "process/0.20mm Standard @FF Adventurer A5 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @FF C5",
"sub_path": "process/0.20mm Standard @FF C5.json"
@@ -311,6 +319,10 @@
"name": "0.30mm Standard @FF AD5X 0.6 nozzle",
"sub_path": "process/0.30mm Standard @FF AD5X 0.6 nozzle.json"
},
{
"name": "0.30mm Standard @FF Adventurer A5 0.6 nozzle",
"sub_path": "process/0.30mm Standard @FF Adventurer A5 0.6 nozzle.json"
},
{
"name": "0.40mm Standard @Flashforge AD5M Pro 0.8 Nozzle",
"sub_path": "process/0.40mm Standard @Flashforge AD5M Pro 0.8 Nozzle.json"
@@ -443,6 +455,10 @@
"name": "0.14mm Standard @Flashforge AD5M 0.25 Nozzle",
"sub_path": "process/0.14mm Standard @Flashforge AD5M 0.25 Nozzle.json"
},
{
"name": "0.12mm Fine @FF Adventurer A5 0.4 nozzle",
"sub_path": "process/0.12mm Fine @FF Adventurer A5 0.4 nozzle.json"
},
{
"name": "0.06mm Standard @Flashforge AD5M Pro 0.25 Nozzle",
"sub_path": "process/0.06mm Standard @Flashforge AD5M Pro 0.25 Nozzle.json"
@@ -463,6 +479,10 @@
"name": "0.10mm Standard @Flashforge AD5M Pro 0.25 Nozzle",
"sub_path": "process/0.10mm Standard @Flashforge AD5M Pro 0.25 Nozzle.json"
},
{
"name": "0.12mm Standard @FF Adventurer A5 0.25 nozzle",
"sub_path": "process/0.12mm Standard @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "0.12mm Standard @FF G4 0.25 nozzle",
"sub_path": "process/0.12mm Standard @FF G4 0.25 nozzle.json"
@@ -483,6 +503,10 @@
"name": "0.14mm Standard @Flashforge AD5M Pro 0.25 Nozzle",
"sub_path": "process/0.14mm Standard @Flashforge AD5M Pro 0.25 Nozzle.json"
},
{
"name": "0.24mm Draft @FF Adventurer A5 0.4 nozzle",
"sub_path": "process/0.24mm Draft @FF Adventurer A5 0.4 nozzle.json"
},
{
"name": "0.24mm Fine @Flashforge AD5M 0.8 Nozzle",
"sub_path": "process/0.24mm Fine @Flashforge AD5M 0.8 Nozzle.json"
@@ -495,6 +519,10 @@
"name": "0.18mm Fine @FF AD5X 0.6 nozzle",
"sub_path": "process/0.18mm Fine @FF AD5X 0.6 nozzle.json"
},
{
"name": "0.18mm Fine @FF Adventurer A5 0.6 nozzle",
"sub_path": "process/0.18mm Fine @FF Adventurer A5 0.6 nozzle.json"
},
{
"name": "0.24mm Fine @Flashforge AD5M Pro 0.8 Nozzle",
"sub_path": "process/0.24mm Fine @Flashforge AD5M Pro 0.8 Nozzle.json"
@@ -503,6 +531,10 @@
"name": "0.40mm Standard @FF AD5X 0.8 nozzle",
"sub_path": "process/0.40mm Standard @FF AD5X 0.8 nozzle.json"
},
{
"name": "0.40mm Standard @FF Adventurer A5 0.8 nozzle",
"sub_path": "process/0.40mm Standard @FF Adventurer A5 0.8 nozzle.json"
},
{
"name": "0.56mm Draft @Flashforge AD5M Pro 0.8 Nozzle",
"sub_path": "process/0.56mm Draft @Flashforge AD5M Pro 0.8 Nozzle.json"
@@ -511,6 +543,10 @@
"name": "0.42mm Draft @FF AD5X 0.6 nozzle",
"sub_path": "process/0.42mm Draft @FF AD5X 0.6 nozzle.json"
},
{
"name": "0.42mm Draft @FF Adventurer A5 0.6 nozzle",
"sub_path": "process/0.42mm Draft @FF Adventurer A5 0.6 nozzle.json"
},
{
"name": "0.08mm Standard @FF C5 0.25 nozzle",
"sub_path": "process/0.08mm Standard @FF C5 0.25 nozzle.json"
@@ -527,13 +563,37 @@
"name": "0.14mm Standard @FF C5 0.25 nozzle",
"sub_path": "process/0.14mm Standard @FF C5 0.25 nozzle.json"
},
{
"name": "0.06mm Standard @FF Adventurer A5 0.25 nozzle",
"sub_path": "process/0.06mm Standard @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "0.08mm Standard @FF Adventurer A5 0.25 nozzle",
"sub_path": "process/0.08mm Standard @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "0.10mm Standard @FF Adventurer A5 0.25 nozzle",
"sub_path": "process/0.10mm Standard @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "0.14mm Standard @FF Adventurer A5 0.25 nozzle",
"sub_path": "process/0.14mm Standard @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "0.24mm Fine @FF AD5X 0.8 nozzle",
"sub_path": "process/0.24mm Fine @FF AD5X 0.8 nozzle.json"
},
{
"name": "0.24mm Fine @FF Adventurer A5 0.8 nozzle",
"sub_path": "process/0.24mm Fine @FF Adventurer A5 0.8 nozzle.json"
},
{
"name": "0.56mm Draft @FF AD5X 0.8 nozzle",
"sub_path": "process/0.56mm Draft @FF AD5X 0.8 nozzle.json"
},
{
"name": "0.56mm Draft @FF Adventurer A5 0.8 nozzle",
"sub_path": "process/0.56mm Draft @FF Adventurer A5 0.8 nozzle.json"
}
],
"filament_list": [
@@ -661,6 +721,10 @@
"name": "Flashforge ABS Basic @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge ABS Basic @FF Adventurer A5",
"sub_path": "filament/Flashforge ABS Basic @FF Adventurer A5.json"
},
{
"name": "Flashforge ABS Basic @FF G4",
"sub_path": "filament/Flashforge ABS Basic @FF G4.json"
@@ -741,6 +805,10 @@
"name": "Flashforge ASA Basic",
"sub_path": "filament/Flashforge ASA Basic.json"
},
{
"name": "Flashforge ASA Basic @FF Adventurer A5",
"sub_path": "filament/Flashforge ASA Basic @FF Adventurer A5.json"
},
{
"name": "Generic ASA @FF AD5M 0.25 Nozzle",
"sub_path": "filament/Generic ASA @FF AD5M 0.25 Nozzle.json"
@@ -769,6 +837,10 @@
"name": "Flashforge HS PETG @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge HS PETG @FF Adventurer A5",
"sub_path": "filament/Flashforge HS PETG @FF Adventurer A5.json"
},
{
"name": "Flashforge HS PETG @FF G4",
"sub_path": "filament/Flashforge HS PETG @FF G4.json"
@@ -801,6 +873,10 @@
"name": "Flashforge PETG Pro @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PETG Pro @FF Adventurer A5",
"sub_path": "filament/Flashforge PETG Pro @FF Adventurer A5.json"
},
{
"name": "Flashforge PETG Pro @FF G4",
"sub_path": "filament/Flashforge PETG Pro @FF G4.json"
@@ -825,6 +901,10 @@
"name": "Flashforge PETG Transparent @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PETG Transparent @FF Adventurer A5",
"sub_path": "filament/Flashforge PETG Transparent @FF Adventurer A5.json"
},
{
"name": "Flashforge PETG Transparent @FF G4",
"sub_path": "filament/Flashforge PETG Transparent @FF G4.json"
@@ -925,6 +1005,10 @@
"name": "Flashforge PETG-CF @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PETG-CF @FF Adventurer A5",
"sub_path": "filament/Flashforge PETG-CF @FF Adventurer A5.json"
},
{
"name": "Generic PETG-CF10 @Flashforge AD4",
"sub_path": "filament/Generic PETG-CF10 @Flashforge AD4.json"
@@ -1069,6 +1153,14 @@
"name": "Flashforge HS PLA @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge HS PLA @FF Adventurer A5",
"sub_path": "filament/Flashforge HS PLA @FF Adventurer A5.json"
},
{
"name": "Flashforge HS PLA+ @FF Adventurer A5",
"sub_path": "filament/Flashforge HS PLA+ @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA @FF AD5M 0.25 Nozzle",
"sub_path": "filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json"
@@ -1089,6 +1181,10 @@
"name": "Flashforge PLA Basic @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Basic @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Basic @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA Color Change",
"sub_path": "filament/Flashforge PLA Color Change.json"
@@ -1105,6 +1201,10 @@
"name": "Flashforge PLA Color Change @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Color Change @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Color Change @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA Galaxy",
"sub_path": "filament/Flashforge PLA Galaxy.json"
@@ -1121,6 +1221,14 @@
"name": "Flashforge PLA Galaxy @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Galaxy @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Galaxy @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA LITE @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA LITE @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA Luminous",
"sub_path": "filament/Flashforge PLA Luminous.json"
@@ -1137,6 +1245,10 @@
"name": "Flashforge PLA Luminous @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Luminous @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Luminous @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA Matte",
"sub_path": "filament/Flashforge PLA Matte.json"
@@ -1153,6 +1265,10 @@
"name": "Flashforge PLA Matte @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Matte @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Matte @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA Metal",
"sub_path": "filament/Flashforge PLA Metal.json"
@@ -1169,6 +1285,10 @@
"name": "Flashforge PLA Metal @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Metal @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Metal @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA Pro",
"sub_path": "filament/Flashforge PLA Pro.json"
@@ -1185,6 +1305,10 @@
"name": "Flashforge PLA Pro @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Pro @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Pro @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA Sparkle",
"sub_path": "filament/Flashforge PLA Sparkle.json"
@@ -1201,6 +1325,14 @@
"name": "Flashforge PLA Sparkle @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Sparkle @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Sparkle @FF Adventurer A5.json"
},
{
"name": "Flashforge R PLA @FF Adventurer A5",
"sub_path": "filament/Flashforge R PLA @FF Adventurer A5.json"
},
{
"name": "Generic PLA @FF AD5M 0.25 Nozzle",
"sub_path": "filament/Generic PLA @FF AD5M 0.25 Nozzle.json"
@@ -1269,6 +1401,10 @@
"name": "Flashforge PLA-CF @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA-CF @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA-CF @FF Adventurer A5.json"
},
{
"name": "Flashforge PPS @FF G4",
"sub_path": "filament/Flashforge PPS @FF G4.json"
@@ -1313,6 +1449,10 @@
"name": "Flashforge PLA Silk @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge PLA Silk @FF Adventurer A5",
"sub_path": "filament/Flashforge PLA Silk @FF Adventurer A5.json"
},
{
"name": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle",
"sub_path": "filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json"
@@ -1413,6 +1553,10 @@
"name": "Flashforge TPU 95A @FF AD5X 0.8 nozzle",
"sub_path": "filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge TPU 95A @FF Adventurer A5",
"sub_path": "filament/Flashforge TPU 95A @FF Adventurer A5.json"
},
{
"name": "Flashforge TPU 95A @FF G4",
"sub_path": "filament/Flashforge TPU 95A @FF G4.json"
@@ -1453,6 +1597,10 @@
"name": "Generic TPU @Flashforge AD4",
"sub_path": "filament/Generic TPU @Flashforge AD4.json"
},
{
"name": "Kexcelled TPU 64D @FF Adventurer A5",
"sub_path": "filament/Kexcelled TPU 64D @FF Adventurer A5.json"
},
{
"name": "Flashforge ABS Basic @FF AD5M 0.25 nozzle",
"sub_path": "filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json"
@@ -1949,6 +2097,10 @@
"name": "Polymaker CoPA @FF G4P 0.8 HF nozzle",
"sub_path": "filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json"
},
{
"name": "Generic PETG @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Generic PETG @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge HS PETG @FF G4 0.6 HF nozzle",
"sub_path": "filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json"
@@ -2045,6 +2197,10 @@
"name": "Flashforge PETG-CF @FF G4P 0.6 nozzle",
"sub_path": "filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json"
},
{
"name": "Flashforge HS PLA @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge HS PLA @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge HS PLA @FF AD5X 0.25 nozzle",
"sub_path": "filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json"
@@ -2057,6 +2213,10 @@
"name": "Flashforge HS PLA @FF G4P 0.25 nozzle",
"sub_path": "filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json"
},
{
"name": "Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Basic @FF AD5M 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json"
@@ -2105,6 +2265,10 @@
"name": "Flashforge PLA Galaxy @FF G4P 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json"
},
{
"name": "Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Luminous @FF AD5M 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json"
@@ -2197,6 +2361,14 @@
"name": "Flashforge PLA Sparkle @FF G4P 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json"
},
{
"name": "Flashforge R PLA @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge R PLA @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Generic PLA @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Generic PLA @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge HS PLA @FF G4 0.6 HF nozzle",
"sub_path": "filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json"
@@ -2497,6 +2669,66 @@
"name": "Flashforge PLA Silk @FF AD5M 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json"
},
{
"name": "Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge HS PETG @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge HS PETG @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle",
"sub_path": "filament/Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge ABS Basic @FF C5",
"sub_path": "filament/Flashforge ABS Basic @FF C5.json"
@@ -2907,6 +3139,10 @@
"name": "Flashforge AD5X 0.25 nozzle",
"sub_path": "machine/FlashForge AD5X 0.25 nozzle.json"
},
{
"name": "Flashforge Adventurer A5 0.25 nozzle",
"sub_path": "machine/Flashforge Adventurer A5 0.25 nozzle.json"
},
{
"name": "Flashforge Guider4 0.25 nozzle",
"sub_path": "machine/Flashforge Guider4 0.25 nozzle.json"
@@ -2919,6 +3155,10 @@
"name": "Flashforge AD5X 0.4 nozzle",
"sub_path": "machine/Flashforge AD5X 0.4 nozzle.json"
},
{
"name": "Flashforge Adventurer A5 0.4 nozzle",
"sub_path": "machine/Flashforge Adventurer A5 0.4 nozzle.json"
},
{
"name": "Flashforge Creator 5 0.25 nozzle",
"sub_path": "machine/Flashforge Creator 5 0.25 nozzle.json"
@@ -2963,10 +3203,18 @@
"name": "Flashforge AD5X 0.6 nozzle",
"sub_path": "machine/Flashforge AD5X 0.6 nozzle.json"
},
{
"name": "Flashforge Adventurer A5 0.6 nozzle",
"sub_path": "machine/Flashforge Adventurer A5 0.6 nozzle.json"
},
{
"name": "Flashforge AD5X 0.8 nozzle",
"sub_path": "machine/Flashforge AD5X 0.8 nozzle.json"
},
{
"name": "Flashforge Adventurer A5 0.8 nozzle",
"sub_path": "machine/Flashforge Adventurer A5 0.8 nozzle.json"
},
{
"name": "Flashforge Guider4 0.4 HF nozzle",
"sub_path": "machine/Flashforge Guider4 0.4 HF nozzle.json"
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,44 @@
{
"type": "filament",
"name": "Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge ABS Basic @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "jRIJ0cO4GhaMg2By",
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"105"
],
"eng_plate_temp_initial_layer": [
"105"
],
"filament_settings_id": [
"Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"textured_cool_plate_temp": [
"0"
],
"textured_cool_plate_temp_initial_layer": [
"0"
],
"textured_plate_temp": [
"105"
],
"textured_plate_temp_initial_layer": [
"105"
]
}
@@ -0,0 +1,50 @@
{
"type": "filament",
"name": "Flashforge ABS Basic @FF Adventurer A5",
"inherits": "Generic ABS @Flashforge",
"from": "system",
"setting_id": "rDW4AwKc7SD7WIxN",
"filament_id": "OFibWuBd",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"105"
],
"eng_plate_temp_initial_layer": [
"105"
],
"filament_settings_id": [
"Flashforge ABS Basic @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"textured_cool_plate_temp": [
"0"
],
"textured_cool_plate_temp_initial_layer": [
"0"
],
"textured_plate_temp": [
"105"
],
"textured_plate_temp_initial_layer": [
"105"
]
}
@@ -0,0 +1,44 @@
{
"type": "filament",
"name": "Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge ASA Basic @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "OIUW8rw2VhNpeVpF",
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"105"
],
"eng_plate_temp_initial_layer": [
"105"
],
"filament_settings_id": [
"Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"textured_cool_plate_temp": [
"0"
],
"textured_cool_plate_temp_initial_layer": [
"0"
],
"textured_plate_temp": [
"105"
],
"textured_plate_temp_initial_layer": [
"105"
]
}
@@ -0,0 +1,50 @@
{
"type": "filament",
"name": "Flashforge ASA Basic @FF Adventurer A5",
"inherits": "Generic ASA @Flashforge",
"from": "system",
"setting_id": "FY9mcqOyuu1Gqq1m",
"filament_id": "OFFFg2Pf",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"105"
],
"eng_plate_temp_initial_layer": [
"105"
],
"filament_settings_id": [
"Flashforge ASA Basic @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"textured_cool_plate_temp": [
"0"
],
"textured_cool_plate_temp_initial_layer": [
"0"
],
"textured_plate_temp": [
"105"
],
"textured_plate_temp_initial_layer": [
"105"
]
}
@@ -0,0 +1,44 @@
{
"type": "filament",
"name": "Flashforge HS PETG @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge HS PETG @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "UFal5gkMUJpoiOWP",
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"70"
],
"eng_plate_temp_initial_layer": [
"70"
],
"filament_settings_id": [
"Flashforge HS PETG @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"supertack_plate_temp": [
"70"
],
"supertack_plate_temp_initial_layer": [
"70"
],
"textured_cool_plate_temp": [
"70"
],
"textured_cool_plate_temp_initial_layer": [
"70"
],
"textured_plate_temp": [
"70"
],
"textured_plate_temp_initial_layer": [
"70"
]
}
@@ -0,0 +1,59 @@
{
"type": "filament",
"name": "Flashforge HS PETG @FF Adventurer A5",
"inherits": "Generic PETG @Flashforge",
"from": "system",
"setting_id": "ZpNEEHTtvhMJS8Kv",
"filament_id": "OFDxxTpW",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"close_fan_the_first_x_layers": [
"2"
],
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"70"
],
"eng_plate_temp_initial_layer": [
"70"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"21"
],
"filament_settings_id": [
"Flashforge HS PETG @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"supertack_plate_temp": [
"70"
],
"supertack_plate_temp_initial_layer": [
"70"
],
"textured_cool_plate_temp": [
"70"
],
"textured_cool_plate_temp_initial_layer": [
"70"
],
"textured_plate_temp": [
"70"
],
"textured_plate_temp_initial_layer": [
"70"
]
}
@@ -0,0 +1,26 @@
{
"type": "filament",
"name": "Flashforge HS PLA @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge HS PLA @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "Ewx6vNp0sDLDczPc",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"filament_settings_id": [
"Flashforge HS PLA @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge HS PLA @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "2L7FS5JeAyPb3y0s",
"filament_id": "OFIK2H3G",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge HS PLA @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,36 @@
{
"type": "filament",
"name": "Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle",
"from": "system",
"setting_id": "DeiDOP4VfKSyMtjw",
"filament_id": "OFXB8ZI7",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_flow_ratio": [
"0.95"
],
"filament_settings_id": [
"Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,50 @@
{
"type": "filament",
"name": "Flashforge HS PLA+ @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "V4jIUQzxoZkK50mn",
"filament_id": "OFXB8ZI7",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_flow_ratio": [
"0.94"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge HS PLA+ @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,44 @@
{
"type": "filament",
"name": "Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PETG Basic @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "0sotIYsGkpQpcq6Y",
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"70"
],
"eng_plate_temp_initial_layer": [
"70"
],
"filament_settings_id": [
"Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"supertack_plate_temp": [
"70"
],
"supertack_plate_temp_initial_layer": [
"70"
],
"textured_cool_plate_temp": [
"70"
],
"textured_cool_plate_temp_initial_layer": [
"70"
],
"textured_plate_temp": [
"70"
],
"textured_plate_temp_initial_layer": [
"70"
]
}
@@ -0,0 +1,44 @@
{
"type": "filament",
"name": "Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PETG Pro @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "SZmG7gbmfOCGc8Fa",
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"70"
],
"eng_plate_temp_initial_layer": [
"70"
],
"filament_settings_id": [
"Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"supertack_plate_temp": [
"70"
],
"supertack_plate_temp_initial_layer": [
"70"
],
"textured_cool_plate_temp": [
"70"
],
"textured_cool_plate_temp_initial_layer": [
"70"
],
"textured_plate_temp": [
"70"
],
"textured_plate_temp_initial_layer": [
"70"
]
}
@@ -0,0 +1,92 @@
{
"type": "filament",
"name": "Flashforge PETG Pro @FF Adventurer A5",
"inherits": "Generic PETG @Flashforge",
"from": "system",
"setting_id": "rPy6e6kaIt2tI34j",
"filament_id": "OFXiArjA",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"additional_cooling_fan_speed": [
"60"
],
"close_fan_the_first_x_layers": [
"2"
],
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"75"
],
"eng_plate_temp_initial_layer": [
"75"
],
"fan_max_speed": [
"50"
],
"fan_min_speed": [
"10"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"10"
],
"filament_settings_id": [
"Flashforge PETG Pro @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"75"
],
"hot_plate_temp_initial_layer": [
"75"
],
"nozzle_temperature": [
"265"
],
"nozzle_temperature_range_high": [
"270"
],
"overhang_fan_speed": [
"100"
],
"slow_down_layer_time": [
"12"
],
"slow_down_min_speed": [
"20"
],
"supertack_plate_temp": [
"75"
],
"supertack_plate_temp_initial_layer": [
"75"
],
"support_material_interface_fan_speed": [
"100"
],
"textured_cool_plate_temp": [
"75"
],
"textured_cool_plate_temp_initial_layer": [
"75"
],
"textured_plate_temp": [
"75"
],
"textured_plate_temp_initial_layer": [
"75"
]
}
@@ -0,0 +1,44 @@
{
"type": "filament",
"name": "Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PETG Transparent @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "PJ1sXWRB5uQa7TAJ",
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"70"
],
"eng_plate_temp_initial_layer": [
"70"
],
"filament_settings_id": [
"Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"supertack_plate_temp": [
"70"
],
"supertack_plate_temp_initial_layer": [
"70"
],
"textured_cool_plate_temp": [
"70"
],
"textured_cool_plate_temp_initial_layer": [
"70"
],
"textured_plate_temp": [
"70"
],
"textured_plate_temp_initial_layer": [
"70"
]
}
@@ -0,0 +1,92 @@
{
"type": "filament",
"name": "Flashforge PETG Transparent @FF Adventurer A5",
"inherits": "Generic PETG @Flashforge",
"from": "system",
"setting_id": "axOWrjnN5lofH9qM",
"filament_id": "OFwjMiKL",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"additional_cooling_fan_speed": [
"60"
],
"close_fan_the_first_x_layers": [
"2"
],
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"75"
],
"eng_plate_temp_initial_layer": [
"75"
],
"fan_max_speed": [
"50"
],
"fan_min_speed": [
"10"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"10"
],
"filament_settings_id": [
"Flashforge PETG Transparent @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"75"
],
"hot_plate_temp_initial_layer": [
"75"
],
"nozzle_temperature": [
"265"
],
"nozzle_temperature_range_high": [
"270"
],
"overhang_fan_speed": [
"100"
],
"slow_down_layer_time": [
"12"
],
"slow_down_min_speed": [
"20"
],
"supertack_plate_temp": [
"75"
],
"supertack_plate_temp_initial_layer": [
"75"
],
"support_material_interface_fan_speed": [
"100"
],
"textured_cool_plate_temp": [
"75"
],
"textured_cool_plate_temp_initial_layer": [
"75"
],
"textured_plate_temp": [
"75"
],
"textured_plate_temp_initial_layer": [
"75"
]
}
@@ -0,0 +1,53 @@
{
"type": "filament",
"name": "Flashforge PETG-CF @FF Adventurer A5",
"inherits": "Generic PETG-CF10 @Flashforge",
"from": "system",
"setting_id": "aDSOS4PWssYHk8Fh",
"filament_id": "OFuFEtKX",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp": [
"70"
],
"eng_plate_temp_initial_layer": [
"70"
],
"filament_flow_ratio": [
"0.98"
],
"filament_settings_id": [
"Flashforge PETG-CF @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"supertack_plate_temp": [
"70"
],
"supertack_plate_temp_initial_layer": [
"70"
],
"textured_cool_plate_temp": [
"70"
],
"textured_cool_plate_temp_initial_layer": [
"70"
],
"textured_plate_temp": [
"70"
],
"textured_plate_temp_initial_layer": [
"70"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Basic @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "e8JkrQPgHO1ekM7Q",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Basic @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "HCpI817HAWckXBtk",
"filament_id": "OFJ3F2jm",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Basic @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Color Change @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "8ifsgreK3DQhMfeh",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Color Change @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "o1Fl6t8nFCKZoj3Q",
"filament_id": "OFMkAW6r",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Color Change @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.035"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Galaxy @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "WViVLfSsNolVB55w",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Galaxy @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "4rpfTTgZrsVDwxI9",
"filament_id": "OFJJ0Ar3",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Galaxy @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,36 @@
{
"type": "filament",
"name": "Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle",
"from": "system",
"setting_id": "FpqRF3Gw0ftvpvay",
"filament_id": "OFDDdgHM",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_flow_ratio": [
"1.04"
],
"filament_settings_id": [
"Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,50 @@
{
"type": "filament",
"name": "Flashforge PLA LITE @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "2QZaQyg66IJPbsSc",
"filament_id": "OFDDdgHM",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_flow_ratio": [
"1.02"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA LITE @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Luminous @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "e3Yir3COUY9MyFdE",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Luminous @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "GqNeJoH4M1IVAXrZ",
"filament_id": "OFdqkWtz",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Luminous @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Matte @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "o2Ttw4qaxOTgEWtp",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Matte @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "Jk7PRQkF2lFEtI8Q",
"filament_id": "OF6qAuyi",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Matte @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Metal @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "eg4osx9bpk61uXvT",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Metal @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "Gs8hS5CpV3W62pjs",
"filament_id": "OFAebKg8",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Metal @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Pro @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "sD9IWFJxvKTDfpXm",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Pro @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "vTVCr1id0cTtMzuE",
"filament_id": "OFm4SivL",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Pro @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,35 @@
{
"type": "filament",
"name": "Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Silk @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "ipe3qzXePPZ9pMmY",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature": [
"220"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Silk @FF Adventurer A5",
"inherits": "Generic PLA-Silk @Flashforge",
"from": "system",
"setting_id": "XXmeUWaLyVCTDS6G",
"filament_id": "OFgjgN35",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_flow_ratio": [
"0.98"
],
"filament_settings_id": [
"Flashforge PLA Silk @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.035"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,32 @@
{
"type": "filament",
"name": "Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA Sparkle @FF AD5M 0.25 nozzle",
"from": "system",
"setting_id": "VV75FchmjnPjnDE8",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Flashforge PLA Sparkle @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "dscnwSfbrGWiS4Um",
"filament_id": "OFV5c8hG",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge PLA Sparkle @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,56 @@
{
"type": "filament",
"name": "Flashforge PLA-CF @FF Adventurer A5",
"inherits": "Generic PLA-CF10 @Flashforge",
"from": "system",
"setting_id": "EpC2ItdGUxFV7x1y",
"filament_id": "OF9cAwMK",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"eng_plate_temp_initial_layer": [
"55"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"15"
],
"filament_settings_id": [
"Flashforge PLA-CF @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
],
"textured_plate_temp_initial_layer": [
"55"
]
}
@@ -0,0 +1,33 @@
{
"type": "filament",
"name": "Flashforge R PLA @FF Adventurer A5 0.25 nozzle",
"inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle",
"from": "system",
"setting_id": "G0qAKoO8Dyo0hO6G",
"filament_id": "OFT02Lz9",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_settings_id": [
"Flashforge R PLA @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,50 @@
{
"type": "filament",
"name": "Flashforge R PLA @FF Adventurer A5",
"inherits": "Generic PLA @Flashforge",
"from": "system",
"setting_id": "sN7eGcbuGZxGrbR5",
"filament_id": "OFT02Lz9",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"45"
],
"cool_plate_temp_initial_layer": [
"45"
],
"eng_plate_temp": [
"55"
],
"filament_max_volumetric_speed": [
"22"
],
"filament_settings_id": [
"Flashforge R PLA @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"hot_plate_temp": [
"55"
],
"pressure_advance": [
"0.0325"
],
"slow_down_layer_time": [
"8"
],
"textured_cool_plate_temp": [
"45"
],
"textured_cool_plate_temp_initial_layer": [
"45"
],
"textured_plate_temp": [
"55"
]
}
@@ -0,0 +1,38 @@
{
"type": "filament",
"name": "Flashforge TPU 95A @FF Adventurer A5",
"inherits": "Generic TPU @Flashforge",
"from": "system",
"setting_id": "2MT9C2rvvQ3uU1lG",
"filament_id": "OFSqIcJC",
"filament_vendor": [
"Flashforge"
],
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp": [
"45"
],
"eng_plate_temp_initial_layer": [
"45"
],
"filament_settings_id": [
"Flashforge TPU 95A @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"textured_plate_temp": [
"45"
],
"textured_plate_temp_initial_layer": [
"45"
]
}
@@ -0,0 +1,17 @@
{
"type": "filament",
"name": "Generic PETG @FF Adventurer A5 0.25 nozzle",
"inherits": "Generic PETG @FF AD5M 0.25 Nozzle",
"from": "system",
"setting_id": "KSKX6BHNQgmOEShO",
"instantiation": "true",
"filament_max_volumetric_speed": [
"1.2"
],
"filament_settings_id": [
"Generic PETG @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
]
}
@@ -0,0 +1,35 @@
{
"type": "filament",
"name": "Generic PLA @FF Adventurer A5 0.25 nozzle",
"inherits": "Generic PLA @FF AD5M 0.25 Nozzle",
"from": "system",
"setting_id": "kHdLzX8Auwz9tFvw",
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp_initial_layer": [
"60"
],
"filament_max_volumetric_speed": [
"2.2"
],
"filament_settings_id": [
"Generic PLA @FF Adventurer A5 0.25 nozzle"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}
@@ -0,0 +1,38 @@
{
"type": "filament",
"name": "Kexcelled TPU 64D @FF Adventurer A5",
"inherits": "Generic TPU @Flashforge",
"from": "system",
"setting_id": "OB4I8nwZn8sCcCcF",
"filament_id": "OF20zavY",
"filament_vendor": [
"Kexcelled"
],
"instantiation": "true",
"cool_plate_temp": [
"40"
],
"cool_plate_temp_initial_layer": [
"40"
],
"eng_plate_temp": [
"45"
],
"eng_plate_temp_initial_layer": [
"45"
],
"filament_settings_id": [
"Kexcelled TPU 64D @FF Adventurer A5"
],
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle",
"Flashforge Adventurer A5 0.6 nozzle",
"Flashforge Adventurer A5 0.8 nozzle"
],
"textured_plate_temp": [
"45"
],
"textured_plate_temp_initial_layer": [
"45"
]
}
@@ -0,0 +1,233 @@
{
"type": "machine",
"name": "Flashforge Adventurer A5 0.25 nozzle",
"inherits": "Flashforge Adventurer 5M Pro 0.25 Nozzle",
"from": "system",
"setting_id": "TZyRxvTiJNKNJWCD",
"instantiation": "true",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "1",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [
"0x0"
],
"bed_mesh_max": "99999,99999",
"bed_mesh_min": "-99999,-99999",
"bed_mesh_probe_distance": "50,50",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"default_filament_profile": [
"Generic PLA @Flashforge"
],
"default_print_profile": "0.12mm Standard @FF Adventurer A5 0.25 nozzle",
"deretraction_speed": [
"35"
],
"disable_m73": "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": "150",
"extruder_clearance_height_to_rod": "27",
"extruder_clearance_radius": "76",
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"gcode_flavor": "klipper",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature",
"machine_load_filament_time": "0",
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000"
],
"machine_max_acceleration_z": [
"500",
"500"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9"
],
"machine_max_jerk_z": [
"3",
"3"
],
"machine_max_speed_e": [
"30",
"30"
],
"machine_max_speed_x": [
"600",
"600"
],
"machine_max_speed_y": [
"600",
"600"
],
"machine_max_speed_z": [
"20",
"20"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG1 Z5 F6000\nG90 E0\nM83\nG1 E-1 F600\nG1 E8 F300\nG1 X85 Y110 Z0.2 F1200\nG1 X-110 E15 F2400\nG1 Y0 E4 F2400\nG1 X-109.6 F2400\nG1 Y110 E5 F2400\nG92 E0",
"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_diameter": [
"0.25"
],
"nozzle_height": "2.5",
"nozzle_hrc": "0",
"nozzle_type": "stainless_steel",
"nozzle_volume": "0",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printable_area": [
"-110x-110",
"110x-110",
"110x110",
"-110x110"
],
"printable_height": "220",
"printer_model": "Flashforge Adventurer A5",
"printer_notes": "",
"printer_settings_id": "Flashforge Adventurer A5 0.25 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.25",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "1",
"retract_before_wipe": [
"100%"
],
"retract_length_toolchange": [
"2"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"0"
],
"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": [
"18"
],
"retraction_length": [
"1"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"35"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "0",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"thumbnails": "140x110/PNG",
"thumbnails_format": "PNG",
"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.3"
],
"z_hop_types": [
"Auto Lift"
],
"z_offset": "0"
}
@@ -0,0 +1,233 @@
{
"type": "machine",
"name": "Flashforge Adventurer A5 0.4 nozzle",
"inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle",
"from": "system",
"setting_id": "EOhWyVbRzFtAc33v",
"instantiation": "true",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "1",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [
"0x0"
],
"bed_mesh_max": "99999,99999",
"bed_mesh_min": "-99999,-99999",
"bed_mesh_probe_distance": "50,50",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"default_filament_profile": [
"Generic PLA @Flashforge"
],
"default_print_profile": "0.20mm Standard @FF Adventurer A5 0.4 nozzle",
"deretraction_speed": [
"35"
],
"disable_m73": "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": "150",
"extruder_clearance_height_to_rod": "27",
"extruder_clearance_radius": "76",
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"gcode_flavor": "klipper",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature",
"machine_load_filament_time": "0",
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000"
],
"machine_max_acceleration_z": [
"500",
"500"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9"
],
"machine_max_jerk_z": [
"3",
"3"
],
"machine_max_speed_e": [
"30",
"30"
],
"machine_max_speed_x": [
"600",
"600"
],
"machine_max_speed_y": [
"600",
"600"
],
"machine_max_speed_z": [
"20",
"20"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.28"
],
"min_layer_height": [
"0.08"
],
"nozzle_diameter": [
"0.4"
],
"nozzle_height": "2.5",
"nozzle_hrc": "0",
"nozzle_type": "hardened_steel",
"nozzle_volume": "0",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printable_area": [
"-110x-110",
"110x-110",
"110x110",
"-110x110"
],
"printable_height": "220",
"printer_model": "Flashforge Adventurer A5",
"printer_notes": "",
"printer_settings_id": "Flashforge Adventurer A5 0.4 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.4",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "1",
"retract_before_wipe": [
"100%"
],
"retract_length_toolchange": [
"2"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"0"
],
"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": [
"18"
],
"retraction_length": [
"0.8"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"35"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "0",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"thumbnails": "140x110/PNG",
"thumbnails_format": "PNG",
"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,233 @@
{
"type": "machine",
"name": "Flashforge Adventurer A5 0.6 nozzle",
"inherits": "Flashforge Adventurer 5M Pro 0.6 Nozzle",
"from": "system",
"setting_id": "gu3ZxlImr6zK3yb6",
"instantiation": "true",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "1",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [
"0x0"
],
"bed_mesh_max": "99999,99999",
"bed_mesh_min": "-99999,-99999",
"bed_mesh_probe_distance": "50,50",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"default_filament_profile": [
"Generic PLA @Flashforge"
],
"default_print_profile": "0.30mm Standard @FF Adventurer A5 0.6 nozzle",
"deretraction_speed": [
"35"
],
"disable_m73": "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": "150",
"extruder_clearance_height_to_rod": "27",
"extruder_clearance_radius": "76",
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"gcode_flavor": "klipper",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature",
"machine_load_filament_time": "0",
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000"
],
"machine_max_acceleration_z": [
"500",
"500"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9"
],
"machine_max_jerk_z": [
"3",
"3"
],
"machine_max_speed_e": [
"30",
"30"
],
"machine_max_speed_x": [
"600",
"600"
],
"machine_max_speed_y": [
"600",
"600"
],
"machine_max_speed_z": [
"20",
"20"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.42"
],
"min_layer_height": [
"0.15"
],
"nozzle_diameter": [
"0.6"
],
"nozzle_height": "2.5",
"nozzle_hrc": "0",
"nozzle_type": "hardened_steel",
"nozzle_volume": "0",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printable_area": [
"-110x-110",
"110x-110",
"110x110",
"-110x110"
],
"printable_height": "220",
"printer_model": "Flashforge Adventurer A5",
"printer_notes": "",
"printer_settings_id": "Flashforge Adventurer A5 0.6 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.6",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "1",
"retract_before_wipe": [
"100%"
],
"retract_length_toolchange": [
"2"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"0"
],
"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": [
"18"
],
"retraction_length": [
"1.2"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"35"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "0",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"thumbnails": "140x110/PNG",
"thumbnails_format": "PNG",
"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,233 @@
{
"type": "machine",
"name": "Flashforge Adventurer A5 0.8 nozzle",
"inherits": "Flashforge Adventurer 5M Pro 0.8 Nozzle",
"from": "system",
"setting_id": "tKE8SP6KOhIupWbU",
"instantiation": "true",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "1",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [
"0x0"
],
"bed_mesh_max": "99999,99999",
"bed_mesh_min": "-99999,-99999",
"bed_mesh_probe_distance": "50,50",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"default_filament_profile": [
"Generic PLA @Flashforge"
],
"default_print_profile": "0.40mm Standard @FF Adventurer A5 0.8 nozzle",
"deretraction_speed": [
"35"
],
"disable_m73": "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": "150",
"extruder_clearance_height_to_rod": "27",
"extruder_clearance_radius": "76",
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"gcode_flavor": "klipper",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature",
"machine_load_filament_time": "0",
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"20000",
"20000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"20000",
"20000"
],
"machine_max_acceleration_x": [
"20000",
"20000"
],
"machine_max_acceleration_y": [
"20000",
"20000"
],
"machine_max_acceleration_z": [
"500",
"500"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9"
],
"machine_max_jerk_z": [
"3",
"3"
],
"machine_max_speed_e": [
"30",
"30"
],
"machine_max_speed_x": [
"600",
"600"
],
"machine_max_speed_y": [
"600",
"600"
],
"machine_max_speed_z": [
"20",
"20"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG1 Z5 F6000\nG1 E-1.5 F600\nG1 E12 F800\nG1 X85 Y110 Z0.3 F1200\nG1 X-110 E30 F2400\nG1 Y0 E8 F2400\nG1 X-109.6 F2400\nG1 Y110 E10 F2400\nG92 E0",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.56"
],
"min_layer_height": [
"0.24"
],
"nozzle_diameter": [
"0.8"
],
"nozzle_height": "2.5",
"nozzle_hrc": "0",
"nozzle_type": "hardened_steel",
"nozzle_volume": "0",
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printable_area": [
"-110x-110",
"110x-110",
"110x110",
"-110x110"
],
"printable_height": "220",
"printer_model": "Flashforge Adventurer A5",
"printer_notes": "",
"printer_settings_id": "Flashforge Adventurer A5 0.8 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.8",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "1",
"retract_before_wipe": [
"100%"
],
"retract_length_toolchange": [
"2"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"0"
],
"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": [
"18"
],
"retraction_length": [
"1.5"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"35"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "0",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "1",
"template_custom_gcode": "",
"thumbnails": "140x110/PNG",
"thumbnails_format": "PNG",
"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"
],
"z_hop_types": [
"Auto Lift"
],
"z_offset": "0"
}
@@ -0,0 +1,12 @@
{
"type": "machine_model",
"name": "Flashforge Adventurer A5",
"model_id": "Flashforge-Adventurer-A5",
"nozzle_diameter": "0.25;0.4;0.6;0.8",
"machine_tech": "FFF",
"family": "Flashforge",
"bed_model": "flashforge_adventurer5m_series_buildplate_model.STL",
"bed_texture": "flashforge_adventurer5m_buildplate_texture.svg",
"hotend_model": "flashforge_adventurer_5m_series_hotend.STL",
"default_materials": "Generic ABS @Flashforge;Generic PETG @Flashforge;Generic PLA @Flashforge;Flashforge PLA Basic @FF Adventurer A5;Generic PLA @FF Adventurer A5 0.25 nozzle"
}
@@ -0,0 +1,23 @@
{
"type": "process",
"name": "0.06mm Standard @FF Adventurer A5 0.25 nozzle",
"inherits": "0.06mm Standard @Flashforge AD5M Pro 0.25 Nozzle",
"from": "system",
"setting_id": "426xS3MFF3smfdDE",
"instantiation": "true",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "1",
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"infill_wall_overlap": "15%",
"only_one_wall_top": "1",
"print_settings_id": "0.06mm Standard @FF Adventurer A5 0.25 nozzle",
"seam_slope_conditional": "1",
"seam_slope_inner_walls": "1",
"slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "25",
"sparse_infill_pattern": "grid",
"wipe_speed": "200"
}
@@ -0,0 +1,23 @@
{
"type": "process",
"name": "0.08mm Standard @FF Adventurer A5 0.25 nozzle",
"inherits": "0.08mm Standard @Flashforge AD5M Pro 0.25 Nozzle",
"from": "system",
"setting_id": "2N8NG8IpxxCPXZlq",
"instantiation": "true",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "1",
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"infill_wall_overlap": "15%",
"only_one_wall_top": "1",
"print_settings_id": "0.08mm Standard @FF Adventurer A5 0.25 nozzle",
"seam_slope_conditional": "1",
"seam_slope_inner_walls": "1",
"slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "25",
"sparse_infill_pattern": "grid",
"wipe_speed": "200"
}
@@ -0,0 +1,23 @@
{
"type": "process",
"name": "0.10mm Standard @FF Adventurer A5 0.25 nozzle",
"inherits": "0.10mm Standard @Flashforge AD5M Pro 0.25 Nozzle",
"from": "system",
"setting_id": "H74U0yaiNgyQpdbc",
"instantiation": "true",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "1",
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
"compatible_printers": [
"Flashforge Adventurer A5 0.25 nozzle"
],
"infill_wall_overlap": "15%",
"only_one_wall_top": "1",
"print_settings_id": "0.10mm Standard @FF Adventurer A5 0.25 nozzle",
"seam_slope_conditional": "1",
"seam_slope_inner_walls": "1",
"slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "25",
"sparse_infill_pattern": "grid",
"wipe_speed": "200"
}
@@ -0,0 +1,24 @@
{
"type": "process",
"name": "0.12mm Fine @FF Adventurer A5 0.4 nozzle",
"inherits": "0.12mm Fine @Flashforge AD5M Pro 0.4 Nozzle",
"from": "system",
"setting_id": "G5AhxHk95GfXw6ec",
"instantiation": "true",
"bridge_flow": "1",
"enable_arc_fitting": "1",
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
"compatible_printers": [
"Flashforge Adventurer A5 0.4 nozzle"
],
"infill_wall_overlap": "15%",
"initial_layer_print_height": "0.2",
"only_one_wall_top": "1",
"print_settings_id": "0.12mm Fine @FF Adventurer A5 0.4 nozzle",
"seam_slope_conditional": "1",
"seam_slope_inner_walls": "1",
"slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "25",
"sparse_infill_pattern": "grid",
"support_line_width": "0.42"
}

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