Compare commits

...
Author SHA1 Message Date
ExPikaPaka 053019261f Merge remote-tracking branch 'origin/image-gizmo' into image-gizmo
# Conflicts:
#	src/slic3r/GUI/Gizmos/GLGizmoTextureDisplacement.hpp
2026-10-13 08:47:58 +02:00
ExPikaPaka b0d586837b Merge upstream main into image-gizmo
Three conflicts, all in the texture displacement gizmo, all resolved by
keeping both sides:

- Two independent additions landed next to apply_standard_mode_presets():
  upstream's store_panel_state() and this branch's image-mode declarations.

- m_color_tex_source: upstream changed it from a raw const void* to a
  weak_ptr to the image bytes, so a freed and reallocated image can no longer
  pass for the old one. That is the better key and it is kept; the colour
  correction key this branch added sits beside it, and the cache test now
  checks the image, the smoothing and the correction.
2026-10-13 08:43:14 +02:00
HanifKoh 869e450981 Keep Per-Nozzle Values When a User Preset Syncs Through the Cloud (#16355)
The cloud upload sent only the keys that differ from the parent, so a
variant layout equal to the parent's was left out. On download the
loader sized every per-variant value by the missing layout, cut it to
one value and kept the parent's values for the other nozzles and nozzle
volume types. On dual-nozzle printers the right nozzle's settings
silently reverted to the parent's after a sync.

Upload the variant layout always, as the local save already does, and
read copies stored without it against the parent's layout when they
carry one value per parent variant.
2026-10-13 13:59:48 +08:00
hikaru0602 b920116fbd Fix manual tool change handling when loading G-code files (#15379)
Opened or drag-dropped G-code files ignored `; MANUAL_TOOL_CHANGE` comments, so the preview showed every move on the first filament. Only `apply_config(const PrintConfig&)` read `manual_filament_change`, and loading a file goes through `apply_config(const DynamicPrintConfig&)`. Read the option there too, initialize the flag to false, and add a regression test.
2026-10-12 20:03:04 -05:00
Downtime 237586675f fix(gui): remove legacy fixed-function OpenGL texture calls (#16270)
Debug builds asserted on startup because these calls raise GL errors on a core-profile context. Both draws already use shaders, so removing the calls changes nothing on compatibility contexts.
2026-10-12 20:01:57 -05:00
Ian Bassi 6d35ff6b9a Rewrite Fix Model on CGAL 6.2, fix Split to parts, remove Win10 SDK leftovers (#16366)
* Add CGAL-based mesh repair, drop Netfabb remnants

Add repair_mesh() in MeshRepair.cpp, a CGAL-based repair that replaces MeshBoolean::cgal::repair(). It welds cracks, cancels coincident triangles, fixes orientation, fills holes (including planar annular regions), removes local self-intersections, and unites crossing shells with libigl's exact boolean while following the nonzero winding rule used by slicing.

FixModelByCgal now repairs each volume in place without splitting it into parts, and reports whether the mesh was modified so unchanged meshes keep their painting and ids. The texture import repair prompt no longer depends on the Windows SDK, and the FIX_THROUGH_CGAL_ALWAYS conditionals are removed. The commented-out Netfabb/WIN10SDK build code is deleted.

libslic3r_cgal now builds with CGAL_LINKED_WITH_TBB and links TBB. Add docs/HLSD/mesh-repair.md and unit tests in test_mesh_repair.cpp.

* Parallelize repair while preserving separate shells

Repair connected mesh units and shells independently in parallel, keep crossing shells separate, and limit self-intersection remeshing to local defects. Update mesh-repair documentation and tests for the revised behavior.

* Make mesh repair deterministic and report its progress

Flags written from parallel loops were std::vector<bool>, whose neighbouring
bits share a word, so shells could be kept or dropped at random; they are now
std::vector<char>. Holes of up to 100 edges are filled with the search over all
triangles: the search restricted to a 3D Delaunay triangulation picks between
equally good fills differently from run to run.

Shells of fewer than four faces are dropped, as the volumes of two triangles
back to back need not cancel exactly, and a shell that self-intersection removal
changed is split again so the pieces it cut off are dropped too.

repair_mesh() takes a progress callback in place of the cancel callback, and
Fix Model reports each stage. The object's bounding box is now invalidated even
when a cancel or an error stops the repair after some volumes were replaced.

The edge-use sort, union-find and box-overlap code shared by several stages is
factored out, the topology analysed for welding is reused to build the work
units, the orientation pass checks only the edges it cut, and the output is
written from the shells without joining them first.

* Fix Split to parts crashing on flat pieces and staying offered after a repair

ModelVolume::split() added every piece to the object and then deleted the
pieces without a convex hull. When the first piece was flat, as often in a
triangle soup, that deleted the volume being split while split() and its
caller kept using it. A part made only of flat pieces lost all its volumes,
and a soup added thousands of pieces, saving a backup of the object for each
one it deleted. Pieces without a convex hull are now dropped before any joins
the object, the volume being split keeps the first remaining piece, and a part
with no solid piece is left whole. Other parts of the object without a convex
hull are no longer deleted as a side effect.

ModelVolume caches whether its mesh can be split, and set_mesh() kept the
cached value, so after Fix Model, Simplify or Emboss replaced a mesh, Split to
parts could still be offered for a single piece. set_mesh() and reset_mesh()
now clear the cache.

* Import STEP surface models with Split compound enabled

Splitting a compound kept only its solids, so a surface model, which OCCT
reads as a compound of loose faces, gave nothing to mesh and the import failed
with "Meshing of a model file failed or no valid shape". Each shell outside a
solid now becomes a part too, and loose faces stay together as one part, as
they do without splitting.

* Add Fix All for plates and re-enable --repair on the command line

ModelVolume::repair() applies repair_mesh() to a part and replaces the mesh
only when the repair changed it. Fix Model, the new Fix All and Fix All Plates
items of the plate context menu, and the command line's --repair option, which
had been commented out since the Win10 SDK repair was dropped, all use it.

With Keep painted feature after mesh change off, Fix Model cleared the painting
of every part of an object before repairing. Now only a part whose mesh changes
loses its painting, so fixing a whole project does not wipe it. The
notification counts the models that needed no repair instead of listing them as
repaired, and objects that did not change are not refreshed.
2026-10-12 21:59:17 -03:00
HMITCHR 075b03975f Read the initial filament start G-code through get_at() (#16080)
A filament_start_gcode list shorter than the filament count made the Bambu start-of-export path throw std::out_of_range. Use get_at() like the other filament_start_gcode reads, and add a regression test.
2026-10-12 19:55:02 -05:00
Kris Austin a379ec4a67 ci(macOS): retry stapler staple after notarization (#16424)
stapler fetches the notarization ticket from Apple's CloudKit server,
and a dropped connection there (NSURLError -1005, exit 68) failed the
whole macOS universal job twice on 2026-10-12, after notarization had
already been accepted. Rerunning the job passed, but repeats the full
build and both notarizations.

Wrap both stapler calls in the existing retry helper already used for
hdiutil in this step.
2026-10-12 19:36:45 -05:00
Alexandre Folle de Menezes 6700d4c5df Verify and improve AI pt_BR translations (#16377) 2026-10-12 20:57:57 -03:00
Downtimeandkenrap a28c9c3a82 fix(gui): guard gizmo actions before deferred initialization (#16268)
GLGizmosManager can be called while its gizmo list is empty, either at startup before the canvas has loaded the gizmos or after their init() failed. reset_all_states(), open_gizmo(), open_gizmo_by_shortcut() and activate_gizmo() now return early in that case. This fixes a Debug-build assert when a new project resets the gizmos at startup, and an out-of-bounds read in release builds when a gizmo shortcut key is pressed after gizmo init failed. activate_gizmo(Undefined) still returns true, since no gizmo is open. The reset_all_states() guard was first proposed in #16074 by kenrap.

Co-authored-by: kenrap <101818165+kenrap@users.noreply.github.com>
2026-10-12 18:25:17 -05:00
packerlschupfer 3dd547c8be CLI: Fix the -50 error reason assuming a 3mf upload (#16339)
The reason recorded for CLI_NO_SUITABLE_OBJECTS (-50) assumed a 3mf being uploaded. The CLI also slices STL, OBJ and STEP input, so the reason now states what both -50 sites check: the plate is empty, or no object on it is both printable and fully inside the print volume. The exit code is unchanged.

Adds tests/cli/test_cli_no_suitable_objects.sh.
2026-10-12 18:23:55 -05:00
f0e9cdc470 raft expansion (#16416)
Update ConfigManipulation.cpp

Co-authored-by: Accelerator <22743445+acceleratorlastorder@users.noreply.github.com>
Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
2026-10-12 18:24:25 -03:00
Downtime 58a71331d0 fix(gui): balance ImGui style stacks in gizmo windows (#16269)
Pop the FramePadding style var before end() in the move and rotate gizmo windows. It was pushed inside the window and popped after End(), which failed ImGui's style stack check in Debug builds.
2026-10-12 15:32:59 -05:00
packerlschupfer f127b758ed CLI: Don't rotate objects when arranging unless --allow-rotations is passed (#15033)
The CLI's arrange no longer rotates objects unless --allow-rotations is passed, which matches the GUI's default. STL, OBJ and STEP inputs are arranged even without --arrange, so a part that only fits the bed when rotated now exits with -50 unless --allow-rotations is given. The CLI prints that reason to stderr.
2026-10-12 15:17:38 -05:00
Fernando Marino` 1494de66de Bracket a toolchange's own gcode against FanMover splitting its moves (#15904)
FanMover could split a move inside change_filament_gcode to place a delayed fan command. It computed the split point from the last position the G-code set, but on Bambu printers the firmware moves the head during the T command, so the inserted waypoint sent the head to a spot the template never visits (#15789).

Both toolchange paths, set_extruder() and the Type1 append_tcr(), now wrap the template output in ;_FAN_MOVER_SKIP_START/END tags when fan speed-up or kick-start is on. FanMover keeps fan commands inside them where they are and drops the tags from the output. multifilament_config() also sizes the per-filament options that the wipe tower reads by index.
2026-10-12 14:26:20 -05:00
SoftFever 3ca182a98e Fix H2C start G-code record-data comments (#16406)
This fixes the H2C start G-code template by commenting the two
`========== record data ==========` separator lines.

Those lines are currently emitted as raw text inside
`machine_start_gcode`. Since they are not comments or G-code commands,
they can make the generated start sequence invalid or firmware-dependent
when the template is used. The fix preserves the separators as comments.

Fixes #16218.

Validation:
- Parsed the modified JSON profile with Python `json.loads`.
- Checked both `record data` separator lines now start with `;` after
unescaping the G-code string.
2026-10-13 01:07:25 +08:00
SoftFever 5e19fc0e6c Stop leaking layers on re-slice and honor each object's slice closing radius (#16066)
# Description

Re-slicing no longer leaks layers in two places. Tree supports dropped
the support layers above the topmost overhang without freeing them. And
an object that had sliced itself, then became identical to another
object (for example a copy whose original lost a per-object setting or
modifier), leaked its own layers when it switched to sharing that
object's slices; it now frees them once it takes the shared layers over.
If slicing is cancelled before that point, they still leak, as before.
Tree support also stops copying its collision and avoidance areas on
every lookup, and releases its working cache once supports are generated
instead of keeping it until the next slice. Elephant-foot compensation
now uses each object's own slice closing radius, where the first object
sliced in a session used to fix the value for every later slice.

Slicing output changes only on layers with more than one region printed
with elephant-foot compensation and no raft, and only where an object's
slice closing radius differs from the value the session had fixed.

# Screenshots/Recordings/Graphs

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

## Tests

Adds a regression test for an object that switches to sharing another
object's slices. The `fff_print` suite passes.

<!--
> 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)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-10-13 00:28:26 +08:00
SoftFever 3f4709aaa7 Fix stale and hidden highlights in the texture displacement gizmo (#16409)
# Description

Fixes highlights in the texture displacement gizmo that stayed on screen
after the state behind them changed, or were drawn where they could not
be seen. Erase whole model, Select whole model and Capture current view
update the paint highlight at once instead of on the next right-click. A
stroke released outside the 3D view ends on the next mouse move, in
every paint gizmo, rather than leaving the brush stuck in its pressed
colour. The layer textures stop showing an image that has been replaced.
Selecting islands in the UV editor switches a Normal view to Fast, where
their highlight is visible instead of buried under the displaced relief,
and Normal comes back once no island is selected unless another view was
picked in the meantime.

No change to slicing output; the changes are confined to the paint
gizmos and the UV editor.

# 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-10-13 00:23:33 +08:00
SoftFever c63bd5d474 Switch to the Fast view while UV islands are selected in the texture gizmo
The island highlight was hidden under the Normal view's relief. Normal comes back once no island is selected, unless another view was picked in the meantime.
2026-10-13 00:18:51 +08:00
SoftFever 6263502697 Free a sharing object's own layers only when it takes over the shared ones 2026-10-13 00:15:07 +08:00
HanifKoh 1a9201690d Draw Preview Segments With 16-Bit Indices (#16389)
The segment draw switched to an element buffer of 8-bit indices. GCN 1/2
GPUs cannot read 8-bit indices in hardware, so the driver converts them,
and on a Mac Pro 2013 FirePro under Windows Boot Camp the toolpaths come
out as scattered spikes. 16-bit indices are supported everywhere and keep
the eight shader runs per segment.
2026-10-13 00:09:18 +08:00
SoftFever c6a338f35f Fix stale paint highlights and textures in the texture displacement gizmo
Erase whole model, Select whole model and Capture current view update the
highlight at once. A stroke released outside the 3D view ends on the next mouse
move, in every paint gizmo, instead of leaving the brush in its pressed colour.
The layer textures no longer show an image that was replaced.
2026-10-12 23:18:38 +08:00
HanifKoh 4f2d2ae11a Wait for the PR's Deps Cache in clang-tidy When deps/ Changes (#16374)
* Wait for the PR's Deps Cache in clang-tidy When deps/ Changes

* Fail the clang-tidy Deps Wait When Listing Caches Keeps Failing

* Wait for Deps Through ci_deps_cache.sh in clang-tidy

Reuse the macOS deps wait for Linux: the job names, workflow and cache
ref are passed in, and a new 'own' mode waits for the PR's own build
when it changes deps/. A PR that keeps deps/ now waits for a running base
build with the same deps, and warns when it falls back to older ones. The
wait ends as soon as the deps job fails.
2026-10-12 23:17:41 +08:00
SoftFever c57b5dc6c5 Merge branch 'main' into perf/slicing-core-memory 2026-10-12 22:16:10 +08:00
ExPikaPaka 8ac8a75056 Include the headers GLGizmoImage.cpp uses directly
Adds the includes misc-include-cleaner named: libslic3r/Point.hpp for
Vec2d, Vec3f and Transform3d, GLGizmoTextureDisplacement.hpp for the
base class, IconManager.hpp for the icon lookup, and cmath, cstddef
and cstdlib for round, size_t and abs.
2026-10-12 15:31:21 +02:00
ExPikaPaka 60248cadd3 Move the Image tool's declarations off the line main now uses
store_panel_state() landed in the same place, from the .3mf persistence
branch. Same declarations, a few lines down, after bake_standard().
2026-10-12 15:14:22 +02:00
SoftFever 7149728219 Fix clang-cl dependency builds failing on a precompiled header from the compiler cache 2026-10-12 20:27:37 +08:00
ExPikaPaka c07a082050 Add the pipette icon on a line of its own
Three other open texture-displacement branches add an icon to this list too.
Reflowing the lines they also touch is what turns four one-word additions
into four conflicts; a new line four lines away from the next one merges in
any order. Order in the list is irrelevant - the map keys by file name.
2026-10-12 14:03:43 +02:00
SoftFever f49d49b5a6 Texture displacement: typed values on every panel slider (#16395)
Every slider in the texture displacement panel can now be given an exact
number, either by Ctrl+clicking the track or via a small edit icon at
its right end. Both routes reuse ImGui's own temp-input mode.

Each slider also gets a tooltip with its description and its range, and
the panel's `?` popup lists both ways in.

Draft: description to be refined.
2026-10-12 20:03:43 +08:00
SoftFever 08f2037cbd Texture displacement: save layers, textures and paint in the .3mf (#16148)
## General

Nothing about texture displacement was written to the `.3mf`, so a
painted relief did not survive closing the project.
Everything the user set up is saved now, so a project reopens with the
relief intact and still editable.

### What is saved
- The layer stack: every per-layer setting (depth, midlevel, smoothing,
tiling, projection blend mode, colour) and the per-volume options
- Each layer's texture, as a file in the archive (why? because user
might want to move .3mf to another computer where custom textures are
missing, or he saves .3mf then deletes textures, and returns back to
.3mf)
- The painted region, one mask per layer slot
- The UV work: LSCM seams, island placement, per-vertex overrides
- Editor state: the selected layer and Standard/Pro, so the panel
reopens where it was left

### What is not saved
- The preview mesh. It is a second copy of the model in the file, for
something the app rebuilds quickly on reopen.
- Panel docked/undocked, which goes to the application config instead

## Format

- `<volume id>.json` - the layer stack and the per-volume options
- `<volume id>_<slot>.png` - each layer's texture, referenced from the
JSON through `path_in_3mf`

Paint masks ride along as one per-triangle attribute per slot
(`paint_texture_0..7`), beside
the attributes the existing paint tools already write.

## Compatibility
Both ways:
- an older build ignores what it does not know and still opens the
project, losing only the relief
- a newer build finds nothing in an older project and leaves the volume
as today.
2026-10-12 20:00:17 +08:00
SoftFever d8cae3268a Merge branch 'main' into feature/texdisp-3mf-persistence 2026-10-12 19:47:05 +08:00
chenshj73 7d4ec3494c Fix H2C start G-code record-data comments 2026-10-12 19:30:32 +08:00
ExPikaPaka c92721cabf fix: Negative belongs with the colour corrections, not under Background
It sat below the Background section purely because of source order, which
read as if it were part of it. Reset moves out of both sections and becomes
Reset all, since it clears the corrections and the background key alike and
a reset living inside one of them would look like it only reached that far.
2026-10-12 13:30:31 +02:00
ExPikaPaka 47a4e7447f feat: a real dropper that reads the model, foldable sections, a scrolling panel
- The dropper has its own pipette icon instead of borrowing the placement
  handle's, drawn in the house style: 16 px canvas, 0.4 stroke in #949494,
  teal on the tip, which is the part that carries the meaning.

- It picks off the model as well as off the preview. A click on the 3D view
  while it is armed reads the picture's own colour at that point, through
  the same projection the bake uses, not the pixel on screen: the screen
  pixel carries the lighting and the filament the colour was already
  quantized to, so keying on it would remove the wrong thing. The patch
  frame comes from extract_painted_patch() plus
  texture_displacement_patch_frame(), so a cylindrical or spherical layer
  reads at the same place the bake will.

- Placement, Color and Background fold away, with the triangle-and-text the
  displacement panel's "More settings" link uses rather than ImGui's own
  filled bar, which is louder than anything else in this window. Folded,
  Background still says whether it is removing anything. Open by default and
  remembered for the session only: this is panel state, not something a
  project should carry.

- The body scrolls and the footer is pinned under it, the shape the
  displacement panel already uses. With the panel this tall, Apply and Close
  were the first things to go off the bottom of a short canvas.
2026-10-12 13:21:41 +02:00
ExPikaPaka 4286cb30ba feat: a colour count instead of Two colours, and a pickable background
Two colours was the N=2 case of a more useful control, so it is replaced by
a Colors slider: 0 for off, then 2 to 12. The picture is reduced to that many
colours before the filaments are matched to it, so it prints in at most that
many.

Reduced by k-means in RGB rather than by posterizing the range, because the
useful question is which colours the picture is actually made of. A tartan
asks for its own handful of greens and reds; an even split of the range would
hand it eight shades of mud. The clustering runs over a coarse 16-per-channel
histogram, 4096 weighted points instead of a million pixels, which is what
makes it cheap enough to sit on a slider, and it is seeded the k-means++ way
so a picture with one dominant colour does not get every centre inside it.

This is not the displacement tool's "Mixed colors", which caps how many mixed
filament slots a bake may create. Nothing like it existed.

Background removal can now be told which colour to remove. The four corners
stay the default, because a background that does not reach all four of them
is not a background and that makes the common case one click, but the panel
shows the colour as a swatch that is also a picker, and a dropper beside it
takes the colour from the preview. The dropper reads the decoded image rather
than the screen: the preview is scaled, and it already has the corrections
applied, so a screen read would key the corrected colour against itself.
"Corners" puts it back.

Measured on Tartan, a cube face, four filaments:

  run                    out tris  coloured  filaments  filament shares
  image, no correction      22534     14544          4  1:91% 3:8% 4:1%
  image, 2 colors           18232     10268          2  1:66% 3:34%
  image, 3 colors           24458     16459          3  1:78% 3:18% 4:5%
  image, 5 colors           23972     15978          4  1:90% 3:9% 4:1%

Asking for 2 gives 2 and asking for 3 gives 3. Asking for 5 gives 4, which is
the contract working the right way round: only four filaments are loaded, and
"at most" is the guarantee. No run moves the surface.
2026-10-12 13:01:06 +02:00
HanifKoh cccf53850e Remove Never-Built and Stub Source Files (#16361)
SysInfoDialog, JumpPointSearch and WebUpdatePlugin are in no CMake list on any platform, and nothing includes ConfigExceptions.hpp, wxinit.h or Utils/Profile.hpp. MultiTaskModel holds only empty namespaces. Also drop the empty GUI_App::system_info() and comments that still mention SysInfoDialog.
2026-10-12 18:53:32 +08:00
HanifKoh 5095733323 Fix Include Guards Copied From Other Headers (#16368)
TriangleMeshDeal.hpp reused Timer.hpp's guard and CloneDialog.hpp reused
SingleChoiceDialog.hpp's, so including both headers of a pair silently
dropped the second one. Use #pragma once instead.
2026-10-12 18:52:53 +08:00
HanifKoh 0cec10748e Remove the /bot fix-tidy clang-tidy Fix Bot (#16400)
Its inline suggestions rarely apply: clang-tidy adds a missing include
to the include block at the top of the file, which a PR seldom touches,
and GitHub only accepts review suggestions on lines in the PR's diff.
2026-10-12 18:47:26 +08:00
ExPikaPaka 3ee9c02acf feat: sharpen, two colours, and remove background in the Image tool
Three more corrections, chosen because the output is a handful of flat
filament colours rather than a continuous image: what helps is whatever
decides which filament an area lands in and where the boundary between two
of them falls.

- Sharpen. An unsharp mask over the colour, reusing the sliding-window blur
  the Smoothing slider already uses, run per channel. Worth more here than
  in a photo editor: a soft edge between two colours quantizes into a ragged
  band of both, and sharpening first makes it land in one place.

- Two colours. Thresholds on luma so a logo or line art prints in exactly
  two filaments instead of speckling across several, with the split point on
  a slider.

- Remove background. The one that is not an RGB transform. DecodedHeightTexture
  gains an alpha plane, filled from the source PNG's fourth channel when it
  has one, and the key additionally clears whatever colour the picture's four
  corners share. A transparent texel is not black: sample_layer_color()'s
  covered() now reports it the same way it reports being outside an untiled
  placement, so the triangle keeps the object's own colour and the bake needs
  no new concept. The preview follows: upload_color_texture() box-filters
  coverage into the alpha channel it used to fill with 255, and the shader
  leaves the surface alone where it is below half.

The corners rather than an eyedropper: a background that does not reach all
four of them is not a background, and a picker would be a second interaction
for the case this exists to make one click. The median of the four is taken
so one stray corner cannot decide it.

Measured on Tartan, a cube face, four filaments:

  run                    out tris  coloured  max offset mm  filament shares
  image, no correction      22534     14544       0.000005  1:91% 3:8% 4:1%
  image, sharpen 1.0        24780     16783       0.000004  1:84% 3:12% 4:3%
  image, two colors         14798      6837       0.000005  2:22% 4:78%
  image, bg removed         14120      2620       0.000005  1:29% 3:16% 4:55%

Background removal cuts the painted area from 14544 triangles to 2620, which
is the whole point of it; the threshold collapses to two filaments; sharpen
shifts the shares and adds boundary triangles. None of them moves the
surface. The probe's default scene is now Tartan rather than Colour Bricks,
which has too little luma range for the threshold to show anything.
2026-10-12 12:37:57 +02:00
HanifKoh c55f9c2251 Add a /bot fix-tidy Command That Suggests clang-tidy's Missing Includes (#16398)
* Add a /bot fix-tidy Command That Pushes clang-tidy's Missing Includes

A maintainer comments /bot fix-tidy on a PR. A read-only job runs
scripts/run_clang_tidy.sh --fix on the PR's merge commit and returns the
patch; a second job, which never runs the PR's code, accepts it only when
it adds nothing but #include lines to C++ files the PR already changes,
then commits it on the PR head and pushes with CLANG_TIDY_BOT_TOKEN.

* Post clang-tidy's Fix as Review Suggestions Instead of Pushing It

A failed clang-tidy check now runs once more with --fix and uploads the
patch as the clang-tidy-fix artifact; the check still fails. /bot
fix-tidy downloads that patch for the PR's latest commit, checks it adds
only includes to C++ files the PR changes, and posts one review: a
one-click suggestion for each include on a line the PR's diff shows, and
the whole patch with a git apply command. Nothing is pushed and no PR
code runs in the bot, so the PR's author can run it too and no token is
needed.

* Make the clang-tidy Fix in Its Own PR-Scoped Workflow on Request

clang_tidy.yml is back to main's version. clang_tidy_fix.yml runs on
every PR push but skips its job on the first attempt; /bot fix-tidy
re-runs it, so run_clang_tidy.sh --fix runs in the PR's own context
with a read-only token and the PR's cache, never main's, and the PR's
author can ask for it. When that re-run finishes, the bot posts the
patch as review suggestions as before. When the clang-tidy step fails,
the bot also comments asking the author to run the script or the
command, edits that comment on later failures, and deletes it once the
check passes.

* Give the clang-tidy Bot Write Access to PRs It Answers

* Tell /bot fix-tidy Users How to Start a Fix Run When There Is None to Re-Run
2026-10-12 18:31:03 +08:00
ExPikaPaka 533aaaed28 feat: add Hue to the Image tool's colour correction
Turns every colour of the picture around the colour wheel without changing
how light it is. This matters more here than in a photo editor: the filament
set is fixed and arbitrary, so hue is what lets the picture meet the palette
rather than the other way round. With orange loaded but no red, a small turn
puts the reds onto the orange instead of onto whatever happens to be nearest.

Implemented as Rodrigues' rotation of the colour about the grey axis, then
the Rec. 709 luma is restored exactly: the rotation preserves R+G+B, not the
weighted luma, and without the correction turning the wheel would also change
which areas read as light and dark.

Measured, same scene and harness as the other corrections:

  run                      out tris   coloured  max offset mm  filament shares
  image, no correction        12066       4052       0.000005  1:71% 2:25% 3:4%
  image, hue +60               8208        268       0.000005  2:100%
  image, hue -120              8208        268       0.000005  3:100%

The reddish brick moves onto a different filament in each direction and the
surface does not move.
2026-10-12 12:22:30 +02:00
ExPikaPaka 4dc87e876e feat: show a drop zone while a file is dragged over the view
Dropping a picture already worked, but a drag had no feedback at all: the
only way to find out whether letting go would do anything was to let go.

While a drag is over the 3D view and the Image tool is open, the canvas now
dims and shows a dashed teal border with "Drop a picture to put it on the
model" in the middle. It goes away on leave and on drop.

Three things worth knowing about how it is wired:

- wxWidgets cannot hand us the file names before the drop on GTK, so the
  zone says nothing about what is actually being dragged. It is worded as an
  invitation rather than a promise, and anything that is not a picture still
  falls through to the model loader exactly as before.

- A drag is not a mouse move as far as the canvas is concerned, so nothing
  would repaint and the zone would appear only once something else happened
  to trigger a frame. set_file_drag_over() marks the canvas dirty and asks
  for an extra frame.

- OnEnter and OnLeave are declared virtual without override, matching the
  class's existing OnDropFiles. Marking only the new ones trips
  -Winconsistent-missing-override on that pre-existing line, which is an
  error here.

The zone is drawn on the foreground draw list from inside the panel's ImGui
frame, so it covers the panel as well as the view.
2026-10-12 12:05:22 +02:00
ExPikaPaka 8bb2a1eec5 feat: match the icon weight, drop a picture onto the view, handle on by default
- The toolbar icon's stroke is 0.4 at its 16 px canvas, which renders at
  1.00 px on the 40 px sprite. Measured rather than judged: every icon on the
  gizmo bar was rasterized at 10x and the median thin run length taken, and
  1.00 px is what thirteen of the seventeen use. The previous 0.75 came out
  at 1.90, the heaviest on the bar.

- Dropping a picture on the 3D view loads it, when the Image tool is the one
  open. It is imported into the user's library on the way, as the panel's
  Import tile does, so it is there next time. With the tool closed a dropped
  PNG goes on doing whatever it did before. This mirrors the SVG drop that
  already fed the text tool, and sits next to it.

- The placement handle comes up by itself the first moment there is something
  to anchor it to, so a picture can be nudged straight after the click that
  placed it. Armed once, so turning it off stays off.

Two things had to change for that last one to be usable rather than annoying:

- A click that misses the handle now falls through to placing the picture.
  on_mouse() used to return false there and swallow it, which is right for
  the displacement tool, where the user turned the mode on deliberately, and
  wrong here, where it is on from the start and would have disabled the
  tool's one gesture.

- update_model_object() re-anchors the handle after a stroke that moved the
  paint. Previously the anchor was only refreshed on a layer switch or
  reorder, so clicking a different face left the handle behind on the old
  one.
2026-10-12 11:48:33 +02:00
SoftFever 3f78959a0c Harden loading and saving of texture displacement in projects
A project no longer reads texture files from outside its archive, and a
malformed value or layer slot drops only the texture layers instead of
failing the whole load. Copies of an object that share a mesh keep their
own texture paint when saved, and projects without texture paint no
longer use extra memory to load.
2026-10-12 17:47:04 +08:00
ExPikaPaka 518f961640 feat: empty start, user images only, untiled preview, dockable Image panel
Five fixes to the Image tool, from using it:

- The layer now starts with no picture on it, so the panel opens on its empty
  frame with a plus in it. It used to seed the first shipped colour texture,
  which put somebody else's picture on screen before the user had chosen one.
  The frame is the only state the panel has until a picture is loaded, and
  clicking it is what creates the layer.

- Its picker offers only the user's own images. The shipped library is
  grayscale height maps, which is what the displacement tool wants and the
  opposite of what an image bake can use: it prints colour, and a height map
  has none. The Built-in section is left out rather than shown full of things
  that would all warn when picked, and the import hints now talk about
  pictures instead of height maps.

- The preview stopped tiling a layer that is not tiled. The shader had no
  tile_enabled uniform and wrapped the image unconditionally, so an untiled
  picture previewed as a repeating pattern the bake would never produce.
  in_tile() now draws the same line DecodedHeightTexture::sample() does, and
  gates the colour and all three relief paths on it. Both the 140 and the 110
  variant; glslangValidator passes on each.

- The panel docks against the right edge of the canvas, where the
  displacement panel is, with the same undock toggle in its title row, so the
  two tools do not put their controls in different corners.

- The toolbar icon's frame is square and its stroke thinner. At 16 px scaled
  to the toolbar a 1 px stroke came out at 2.5 px, heavier than every
  neighbour; 0.75 px matches them.
2026-10-12 11:31:33 +02:00
SoftFever d2675f15d1 Fix Qidi start G-code ignoring the selected plate type (#16372)
# Description

With "Support multi bed types" enabled on a Qidi printer, the
first-layer bed temperature was always taken from the Smooth PEI / High
Temp Plate setting, whichever plate type was selected.

The slicer computes the right value (`first_layer_bed_temperature` in
the G-code footer follows the selected plate), but the machine start
G-code of these presets hardcoded `[hot_plate_temp_initial_layer]`:

- `fdm_qidi_x3_common` (base of X-Max 3, X-Plus 3, X-Smart 3, X-Plus 4,
Q1 Pro)
- `Qidi Q1 Pro 0.4 nozzle`
- `Qidi X-CF Pro 0.4 nozzle`

They now use `[bed_temperature_initial_layer_single]`, which follows the
selected plate type, as most other profiles do. The Qidi bundle version
is bumped to `02.04.00.17`.

With "Support multi bed types" disabled, these printers use the default
plate (Smooth PEI / High Temp Plate), so the temperature is unchanged
there.

# Screenshots/Recordings/Graphs

N/A — profile change only.

## Tests

`python3 scripts/orca_profile_tool.py check` passes.

Sliced on Qidi X-Max 3 0.4 nozzle with "Support multi bed types"
enabled, `0.20mm Standard @Qidi XMax3`, `Generic PLA @Qidi`, with a
different bed temperature set for each plate type (first layer / other
layers).

Before, with first layer set to 50–55 °C: `M190 S54` for every plate
type.

After, a two-layer print:

| Plate type | Set (first / other) | `M190` at start | `M140` at layer 2
|
| --- | --- | --- | --- |
| Cool Plate SuperTack | 51 / 61 | 51 | 61 |
| Cool Plate | 52 / 62 | 52 | 62 |
| Textured Cool Plate | 53 / 63 | 53 | 63 |
| Engineering Plate | 54 / 64 | 54 | 64 |
| Smooth PEI / High Temp Plate | 55 / 65 | 55 | 65 |
| Textured PEI Plate | 56 / 66 | 56 | 66 |

🤖 Generated with [Claude Code](https://claude.com/claude-code)4
2026-10-12 17:14:22 +08:00
ExPikaPaka 680a597567 feat: show the picture whole in the Image panel, add tile, move and detail
Five changes to the Image tool, all in its own window bar the presets:

- The picture is shown whole, the full width of the window, instead of a row
  sized thumbnail beside a file name: it is the thing being placed, so that
  was the wrong size for it. The box shows the corrected colour texture, so
  moving a correction slider is visible in the panel as well as on the model;
  a grayscale picture has no colour texture and falls back to the height
  thumbnail. The file name stays underneath as a caption.

- Before anything is loaded the same box is an empty frame with a plus in it,
  in the same place and the same size, rather than a button of its own.
  Clicking either state opens the library, which is also where Import lives.

- Tile, off by default. A photo or a logo goes on once, so a new layer the
  Image tool creates starts with a single copy and Size sets how big that
  copy is. It is a default and not a pin, so the checkbox can turn it on.

- Move, the on-canvas placement handle the displacement tool has: drag the
  handle on the surface to slide the picture, or one of its arrows to slide
  it along one axis.

- Detail, the bake resolution, with the budget pinned to a million triangles.
  Each triangle prints in one filament, so this is how sharp an edge between
  two colours can come out, and it is the only thing left that decides it.
  The auto budget is 750 k, chosen for relief where triangles buy shape;
  here they buy the whole output, so it is worth spending more. The slider is
  seeded with the resolution Auto would have picked for the model, and warns
  when what it asks for no longer fits the budget.

Also fixes a short circuit in the panel: apply_standard_mode_presets(mv) ||
apply_image_mode_presets(mv) skipped the image presets on any frame the
standard ones changed something.

Measured with the texture-bake harness on the tool's shipped configuration
(tiling off, million-triangle budget, the seeded resolution), one cube face,
four filaments:

  run                      out tris   coloured  max offset mm  filament shares
  relief, depth 0.4 mm        41040      33902       0.216000  1:91% 2:6% 3:3%
  image, no correction        12066       4052       0.000005  1:71% 2:25% 3:4%
  image, brightness +0.5       8208        268       0.000005  4:100%
  image, contrast +0.8        11980       3910       0.000005  1:78% 2:20% 3:1%
  image, saturation 0          8208        268       0.000005  3:100%
  image, gamma 2.2            13176       5175       0.000004  1:67% 4:33%
  image, negative              8208        268       0.000005  4:100%

Fewer coloured triangles than the previous run of the same scene because
tiling is now off: one copy covers part of the face rather than repeating
across it. The surface still does not move and every correction still changes
which filaments the picture prints in.
2026-10-12 11:12:57 +02:00
HanifKoh 5371c85362 Refresh Dark Mode Colours When the System Theme Differs at Startup (#16390)
On Linux and macOS the app follows the system theme: at startup it
overwrites the saved dark_color_mode with the system appearance. The label
colours and the cached dark mode flag were already set from the saved value
by then, and the later "changed" check reads the mode only after the
overwrite, so it never fires. For that session every dialog that maps its
colours through UpdateDlgDarkUI keeps the old mode, e.g. white dialogs on a
dark main window after switching the desktop to dark, or on a fresh install
on a dark desktop.

Refresh the label colours and the flag when the system theme differs from
the saved mode.
2026-10-12 17:09:05 +08:00
SoftFever 30e48183e3 Merge branch 'main' into feature/texdisp-3mf-persistence
# Conflicts:
#	src/libslic3r/TextureDisplacement.hpp
#	tests/libslic3r/test_texture_displacement.cpp
2026-10-12 16:58:03 +08:00
SoftFever a243941b72 Add favorite filaments to AMS filament dropdown (#13946)
# Description

## Summary:

Adds favorite filament support to the AMS material selection dropdown.

Users can now click a star icon next to a selectable filament in the AMS Materials Setting dialog to mark it as a favorite. Favorited filaments appear in a new `Favorite filaments` section at the top of the dropdown, while all compatible filaments remain available in the `All filaments` section.

This PR also adds generic right-side action icon support to Orca's custom dropdown widget:

- Adds optional action icons to `DropDown::Item`.
- Adds a new `EVT_DROPDOWN_ITEM_ACTION` event for clicks on the action icon.
- Relays the action event through `ComboBox`.
- Adds `ComboBox::RefreshDropdownIfOpen()` so callers can refresh an already-open dropdown without changing normal `ForceDropdownOpen()` behavior.

The AMS favorites implementation:

- Uses existing bundled star assets:
  - `score_star_dark` for non-favorited filaments
  - `score_star_light` for favorited filaments
- Stores favorite filament IDs in app config under `ams_favorite_filament_ids`.
- Stores stable filament IDs instead of display names
- Uses existing C-style string escaping helpers for persistence.
- Keeps Bambu/RFID/read-only slot behavior unchanged

No new external dependencies.

**Note:** `AMSMaterialsSetting` now uses Orca's custom `ComboBox` on macOS as well, because the favorite-star UI depends on the custom `DropDown` item renderer. I was able to test this on Windows, but macOS/Linux smoke testing is still needed and would be appreciated.

# Screenshots/Recordings:

https://github.com/user-attachments/assets/41e881be-d4de-4a7d-8f99-4297567adef2

<img width="494" height="36" alt="Screenshot 2026-05-30 103432" src="https://github.com/user-attachments/assets/e7c34ed3-db7a-4705-a1cd-4bfe7ac1616a" />


## Tests

Tested on Windows:

- Built OrcaSlicer locally
- Opened the Device tab with Bambu Lab printer with AMS
- Opened the AMS Materials Setting dialog from an editable AMS slot
- Confirmed clicking a star toggles favorite state.
- Star clicks do not select the filament row.
- Dropdown remains open after toggling a favorite.
- Confirmed favorited filaments appear under `Favorite filaments`.
- All compatible filaments remain visible under `All filaments`.
- Confirmed Filament still selected as before
- Confirmed favorites persist after closing and reopening the dialog.
- Confirmed favorites persist after restarting OrcaSlicer.
- Confirmed the favorite IDs are saved in `OrcaSlicer.conf` under `ams_favorite_filament_ids`.
- Bambu/RFID/read-only filament slots continue using the existing read-only display behavior.

Not tested:

- macOS
- Linux/Wayland

These should be tested, `ComboBox` behavior not tested on macOS.

[How to Download Pull Requests Artifacts for Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-10-12 16:37:29 +08:00
ExPikaPaka e003b61e17 feat: make the Image gizmo a minimal load, click, correct, apply tool
The first cut was the displacement panel with depth hidden, which left the
brushes, the eight layer slots, the UV editor, seams, tiling and the
mesh-preparation sections in a tool that needs none of them, and offered no
way to correct the picture at all. This replaces that panel and adds the
corrections.

The flow is now: load a picture, click the model to put it there, adjust it,
press Apply.

- The Image tool gets its own window, render_image_input_window(), defined in
  GLGizmoImage.cpp. on_render_input_window() dispatches to it on the first
  line, so the displacement panel goes back to exactly what it was rather
  than being threaded with tests for which tool is drawing.

- A click places the picture: the tool pins SMART_FILL with a pointer cursor,
  so one click floods the surface it lands on out to the first fold sharper
  than the Spread angle. No brush, no erase toggle.

- Projection keeps Flat, Around, Ball and From view. Unwrap is left out and a
  layer arriving on it falls back to Flat: seams, islands and the UV pane are
  an editor's worth of interface for a tool that wants a click and a slider.

- The preview is pinned to the fast one. With no relief to build it is both
  instant and exactly the final colour, since the shader's colour path does
  not depend on depth_mm.

- The window shows only what this case needs: the picture, Spread, the four
  projections, Size, Rotation, the corrections, Apply and Close.

Colour correction is new in libslic3r. TextureDisplacementLayer gains
brightness, contrast, saturation, gamma and color_invert, all defaulting to
the identity, and apply_color_adjustments() applies them to an image's RGB
only, never to the height: a brightness slider has no business moving
geometry. It runs at the single point every bake and preview job reads a
layer's colour from, prepare_sampleable_layers(), and at the two caches that
would otherwise miss a change the image_data pointer does not show: the fast
preview's GPU texture and the mix ranking.

Measured with the texture-bake harness, one cube face painted with a colour
image, four filaments:

  run                      out tris   coloured  max offset mm  filament shares
  relief, depth 0.4 mm        41040      33902       0.216000  1:91% 2:6% 3:3%
  image, no correction        24226      17090       0.000007  1:71% 2:25% 3:4%
  image, brightness +0.5       8204       1068       0.000004  4:100%
  image, contrast +0.8        22688      15552       0.000007  1:75% 2:24% 3:1%
  image, saturation 0          8204       1068       0.000004  3:100%
  image, gamma 2.2            24754      17618       0.000007  1:66% 4:34%
  image, negative              8204       1068       0.000004  4:100%

Max offset is the distance from every output vertex to the original surface,
not a vertex-array diff: the bake refines, so a new vertex only counts as
unmoved if it lies in the old surface. Every correction moves which filaments
the picture prints in, and none of them moves the surface.
2026-10-12 10:20:44 +02:00
SoftFever 6a1a5d51e9 Show an outline star for filaments that are not favorites 2026-10-12 16:03:49 +08:00
HanifKoh e625845b34 Keep Snapshot Suppression for the Whole Object List Edit (#16388)
Five Plater::TakeSnapshot guards in GUI_ObjectList were unnamed temporaries, so snapshots were allowed again as soon as the snapshot was taken. Naming them keeps the suppression until the edit is done, as everywhere else.
2026-10-12 16:02:43 +08:00
SoftFever 01b340dee1 Fix regressions in the AMS filament favorites dropdown 2026-10-12 14:54:17 +08:00
ExPikaPaka a800e0c186 feat: add an Image gizmo for zero-displacement colour
A separate toolbar tool for the simple case of texture displacement: put a
colour picture on the model with no relief at all.

It is a thin wrapper, not a fork. GLGizmoImage subclasses
GLGizmoTextureDisplacement and overrides one new protected virtual,
image_mode(). Painting, the layer stack, the paint masks, the texture
library, the previews and the bake are the same code reached the same way;
a zero-depth bake refines the painted area and writes the per-triangle
filament indices exactly as a relief bake does, it just displaces by
nothing.

In the base gizmo, image_mode() does three things:

- apply_image_mode_presets() pins every layer to depth 0 and turns colour on
  wherever the image has any, alongside the existing Standard-mode presets.
- The panel leaves out Depth, Midlevel, Invert, Edge fade and Blend, and the
  Standard/Pro switch, which is what keeps the mesh-preparation sections
  hidden. Bake is disabled when no image carries colour, since that bake
  would refine the mesh and produce nothing.
- add_texture_layer() seeds a new layer from the first library texture that
  has colour, rather than the first one, because most of the shipped library
  is grayscale height maps.

The two tools share one layer stack, so opening the Image tool on a volume
whose layers carry relief flattens them. Only depth changes: the paint, the
image, the tiling, the mapping and any relief already baked into the mesh
are untouched.

The toolbar icon follows Orca's menu-icon style: 16 px, 1 px #949494 frame,
#009688 on the picture inside.

The shortcut is registered but unbound: every single letter the Plater
context can reach is already taken, and a default that shadows one of them
is worse than none. docs/HLSD/keyboard-shortcuts.md now documents that an
empty default chord is a supported choice.

Measured with a probe built against this tree in the texture-bake harness:
a depth-0 bake of a painted cube face leaves every output vertex within
7 nm of the original surface (tolerance 1 um) while colouring 17090 of
24226 output triangles across 3 filaments; the same scene at depth 0.4 mm
moves vertices up to 0.216 mm.
2026-10-12 08:29:10 +02:00
HanifKoh 4c2a63e11e Copy Plate Pick and Pattern File Paths When Loading a G-code 3MF (#16387)
The importer assigned pick_file.empty() and pattern_bbox_file.empty(), a bool, to the string fields, storing a one-character string instead of the path.
2026-10-12 14:14:28 +08:00
ExPikaPaka ed1f3e52c9 Texture displacement: typed values on every panel slider
Every slider in the texture displacement panel now takes an exact number,
either by Ctrl+clicking the track or through a small edit icon at its right
end. Both routes end in ImGui's own temp-input mode: the icon only asks ImGui
to focus the slider, which is what turns it into an input box, so the parsing,
the clamping and the Enter/click-away behaviour stay ImGui's rather than
becoming a second implementation.

The mechanism lives in one helper, typed_row(), with a float and an int form
over it. float_row() and int_row() are thin wrappers on those, and the six
sliders that previously built their widget inline (brush size, smart fill
angle, edge fade amount, remesh sharp angle, refine resolution and the uniform
triangle budget) now go through the same path.

Each slider carries a tooltip with its description and its range. The range is
derived from the bounds and the format string the slider is already given, so
no row states them twice and the tooltip cannot drift from the track. The
tooltip allows hovering while disabled, since several rows are drawn inside
disabled_begin(), where a greyed slider is exactly when the explanation is
wanted.

The panel's "?" popup gains an entry for each of the two ways in, appended to
every tool's shortcut list and shown on their own when no painting tool is
selected, where that popup was previously empty.
2026-10-12 07:57:07 +02:00
HanifKoh f8cf34c55b Reset the Fan Mover Instead of Releasing It (#16386)
Clearing per-export state called unique_ptr::release(), which gives up ownership without deleting. Every export uses a new GCode, so the pointer is still empty there today and nothing leaks; reset() states the intent and would free the object if a GCode were ever reused.
2026-10-12 13:42:19 +08:00
SoftFever d007134001 fix: update translation for Assistant(HMS) in Chinese localization 2026-10-12 12:53:16 +08:00
SoftFever 00d11a7ba0 Merge branch 'main' into UI-changes 2026-10-12 12:17:21 +08:00
Šimon 70f518d87a Added new profiles for the FELIX Printers vendor (#16314)
* Added new profiles for the FELIX Printers vendor

* fixed all errors from profiles
2026-10-12 10:02:56 +08:00
Boris SamorodovandClaude Opus 5.5 546b9c621d Fix Qidi start G-code ignoring the selected plate type
The start G-code of fdm_qidi_x3_common, Qidi Q1 Pro 0.4 nozzle and
Qidi X-CF Pro 0.4 nozzle heated the bed to hot_plate_temp_initial_layer,
so with "Support multi bed types" enabled every plate type got the
Smooth PEI / High Temp Plate temperature. Use
bed_temperature_initial_layer_single, which follows the selected plate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 00:49:25 +02:00
ExPikaPaka 8ecfee6a21 Save where the panel was left, and recover a texture the archive lacks
The project carried the layer stack but not the user's place in it: a reopened
project landed on slot 0 in Standard, whatever they had been editing. The active
layer and Standard/Pro now live on the volume, next to the rest of its options,
and come back with it. Docked/undocked goes to the application config instead -
it describes the user's window, not the model, so opening someone else's project
must not move their panel.

A layer whose image_data was empty at save time was written with no texture and
came back with none. It now falls back to the file the layer came from, which the
importer put in the user's own texture library, so a project reopened on the same
machine keeps its pixels.

The texture is always stored as .png: the importer converts whatever the user
picked, so the extension was being taken from a name that no longer described the
bytes.

Also adds v2_flip_edges to the cereal field list, which the undo stack was
silently dropping.
2026-10-09 09:35:35 +02:00
ExPikaPaka fbf4652e12 Fix the build and clang-tidy failures in the persistence change
The round-trip test named a TextureTileMethod enumerator that does not
exist (MirroredRepeat, not Mirror) and used a bare Approx, which Catch2 v3
keeps in its own namespace. The rest of the file compares floats with
WithinAbs, so these follow it rather than reaching for Catch::Approx.

bbs_3mf.cpp reads and writes the layer JSON but picked up the declarations
through another header, and the same for boost::to_lower.
2026-10-09 09:05:42 +02:00
ExPikaPaka be9ff50130 Merge remote-tracking branch 'origin/main' into feature/texdisp-3mf-persistence
# Conflicts:
#	src/libslic3r/TextureDisplacement.cpp
2026-10-09 09:03:51 +02:00
SoftFever dee1f1715f Merge branch 'main' into feature/texdisp-3mf-persistence 2026-10-09 12:15:16 +08:00
ExPikaPaka fcb1f62bd9 Save texture displacement in the project file
A painted relief did not survive closing the project: nothing about the feature
was written to the .3mf, so the layers, their textures and the paint mask were
all lost on save. The layer struct's cereal save()/load() serve the undo/redo
stack only, which is one session and one binary stream.

Write the layer stack and the per-volume options as JSON in the archive, and
each layer's texture as the image file it was loaded from, both referenced by
path - the same split EmbossShape already makes for its SVG. The image stays
out of the XML deliberately: it is binary and routinely megabytes, and base64
in an attribute would bloat the one file every reader parses just to list the
objects. JSON rather than the cereal stream next to it because that one is
positional and unversioned, which would make every future field a
project-breaking change; an unknown key is ignored and a missing one keeps its
default, so a project written by either side keeps loading.

The paint masks go in as one attribute per layer slot, mirroring paint_color.
Older readers ignore attributes they do not know, so a project written here
still opens in a build without the feature - it loses the relief, which is all
it could have done with it anyway.

The layers are restored while the volume is being built rather than after the
archive is walked: volumes are constructed only once the whole archive has been
read, so a hook placed after the walk ran before any volume existed and
restored nothing.
2026-10-05 08:36:22 +02:00
ExPikaPaka 391c53a8da Take the print config by reference while simplifying extrusions
simplify_path, simplify_multi_path and simplify_loop each copied the whole
PrintConfig, 10520 bytes with around 200 heap owning members, once per extrusion
entity, from inside the parallel_for over all layers. LayerRegion.cpp already
binds a reference a few hundred lines above. Three more sites in Layer.cpp do the
same thing.

The tree support changes in the same area: draw_circles() dropped layers from an
owning vector without deleting them, so every re-slice leaked the layers above
the topmost overhang. std::stable_partition rather than std::remove_if, because
remove_if leaves moved-from duplicates of kept pointers in the tail and deleting
those would be a double free. The collision and avoidance accessors returned
ExPolygons by value out of a cache that hands them out by reference, several
times per node per layer. The preview cache is released when the support step
finishes instead of at the start of the next slice; nothing reads it in between.

set_shared_object() now releases the layers the object still owns before it
starts aliasing another object's. Both clear functions are no-ops once the alias
is set, so this cannot free the sharee's layers.

PrintObjectSlice.cpp: eps was a function local static inside a parallel_for, so
slice_closing_radius was latched once per process. This one changes output for
projects that override it per object, or on a re-slice after editing it. The old
behaviour was undefined: whichever object won the race set it for the session.
2026-10-01 09:15:15 +02:00
SoftFever a13089d357 Merge branch 'main' into UI-changes 2026-06-02 14:40:05 +08:00
KrishManan fb6c93963d Add AMS filament favorites 2026-05-30 17:45:03 +08:00
KrishManan 7688f7a16c Add dropdown item action icons 2026-05-30 17:45:03 +08:00
328 changed files with 17836 additions and 3207 deletions
+2 -6
View File
@@ -341,12 +341,12 @@ jobs:
# Notarize main DMG # Notarize main DMG
xcrun notarytool submit "OrcaSlicer_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait xcrun notarytool submit "OrcaSlicer_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait
xcrun stapler staple OrcaSlicer_Mac_universal_${{ env.ver }}.dmg retry xcrun stapler staple OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
# Notarize profile validator DMG if it exists # Notarize profile validator DMG if it exists
if [ -f "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" ]; then if [ -f "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" ]; then
xcrun notarytool submit "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait xcrun notarytool submit "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait
xcrun stapler staple OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg retry xcrun stapler staple OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
fi fi
- name: Create DMG without notary - name: Create DMG without notary
@@ -460,10 +460,6 @@ jobs:
- name: Build slicer Win - name: Build slicer Win
if: runner.os == 'Windows' if: runner.os == 'Windows'
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
# Orca: Removed Netfabb STL fixing service support in favor of CGAL.
# env:
# WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
# WindowsSDKVersion: '10.0.26100.0\'
# --tests builds the unit tests too; the unit_tests_windows_* jobs run them. # --tests builds the unit tests too; the unit_tests_windows_* jobs run them.
run: | run: |
# cache-path is the install directory inside the deps build directory. # cache-path is the install directory inside the deps build directory.
+70 -4
View File
@@ -16,6 +16,15 @@ on:
permissions: permissions:
contents: read contents: read
# Listing caches and builds while waiting for a deps cache.
actions: read
# Read by scripts/ci_deps_cache.sh.
env:
REPO: ${{ github.repository }}
WORKFLOW: build_all.yml
BASE_REF: ${{ github.base_ref }}
JOB: build_linux (${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }})
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }} group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
@@ -35,7 +44,7 @@ jobs:
# The PR merge commit plus its first parent, the base it is diffed against. # The PR merge commit plus its first parent, the base it is diffed against.
fetch-depth: 2 fetch-depth: 2
- name: Look for changed C++ files - name: Look for changed files
id: changes id: changes
run: | run: |
if git -c core.quotePath=false diff --name-only HEAD^1 -- src tests | grep -qE '\.(cpp|cc|cxx|hpp|h|hxx)$'; then if git -c core.quotePath=false diff --name-only HEAD^1 -- src tests | grep -qE '\.(cpp|cc|cxx|hpp|h|hxx)$'; then
@@ -43,18 +52,75 @@ jobs:
else else
echo "No C++ changes under src/ or tests/." echo "No C++ changes under src/ or tests/."
fi fi
if ! git diff --quiet HEAD^1 -- deps; then
echo "deps=true" >> "$GITHUB_OUTPUT"
fi
echo "deps-key=linux-clang-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }}" >> "$GITHUB_OUTPUT"
# Parsing needs the dependency headers, not a build of this PR's deps/, so # Parsing needs the dependency headers, not a build of this PR's deps/.
# a PR that changes deps/ falls back to the newest cache main has. # Without an exact match the job waits for the build that saves it: this
# PR's own when it changes deps/, otherwise a running push build of the
# base branch with the same deps. With neither, a PR that keeps deps/
# falls back to the newest cache.
- name: Restore cached deps - name: Restore cached deps
id: deps_cache
if: steps.changes.outputs.cpp == 'true' if: steps.changes.outputs.cpp == 'true'
uses: actions/cache/restore@v6 uses: actions/cache/restore@v6
with: with:
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep
key: linux-clang-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} key: ${{ steps.changes.outputs.deps-key }}
- name: Look for a build to wait for
id: wait_check
if: steps.changes.outputs.cpp == 'true' && steps.deps_cache.outputs.cache-hit != 'true'
env:
GH_TOKEN: ${{ github.token }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: bash scripts/ci_deps_cache.sh ${{ steps.changes.outputs.deps == 'true' && 'own' || 'check' }}
# Linux Build Deps takes about 35 minutes on GitHub-hosted runners. The
# wait ends early when the deps job fails.
- name: Wait for the deps cache
if: steps.wait_check.outputs.wait-for != ''
timeout-minutes: 100
env:
GH_TOKEN: ${{ github.token }}
KEY: ${{ steps.changes.outputs.deps-key }}
CACHE_REF: ${{ steps.changes.outputs.deps == 'true' && github.ref || format('refs/heads/{0}', github.base_ref) }}
KEY_INPUTS: ${{ steps.wait_check.outputs.key-inputs }}
WAIT_FOR: ${{ steps.wait_check.outputs.wait-for }}
WAIT_SINCE: ${{ steps.wait_check.outputs.wait-since }}
WAIT_MINUTES: 90
run: bash scripts/ci_deps_cache.sh wait
- name: Restore the deps cache after waiting
id: waited_cache
if: steps.wait_check.outputs.wait-for != ''
uses: actions/cache/restore@v6
with:
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep
key: ${{ steps.changes.outputs.deps-key }}
- name: Fail without this PR's deps cache
if: steps.changes.outputs.deps == 'true' && steps.wait_check.outcome == 'success' && steps.waited_cache.outputs.cache-hit != 'true'
run: |
echo "::error::No deps cache ${{ steps.changes.outputs.deps-key }}. Check this PR's Linux Build Deps job, then rerun clang-tidy."
exit 1
- name: Restore the newest cached deps
id: newest_cache
if: steps.changes.outputs.deps != 'true' && steps.wait_check.outcome == 'success' && steps.waited_cache.outputs.cache-hit != 'true'
uses: actions/cache/restore@v6
with:
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep
key: ${{ steps.changes.outputs.deps-key }}
restore-keys: linux-clang-cache-orcaslicer_deps-build- restore-keys: linux-clang-cache-orcaslicer_deps-build-
fail-on-cache-miss: true fail-on-cache-miss: true
- name: Warn about older deps
if: steps.newest_cache.outcome == 'success' && steps.newest_cache.outputs.cache-hit != 'true'
run: echo "::warning title=Older deps::No cache matches this PR's deps/, so clang-tidy parsed against ${{ steps.newest_cache.outputs.cache-matched-key }}. If it reports errors in code that uses a dependency, rerun clang-tidy once the base branch's Build all has saved the new deps."
- name: Apt-Install Dependencies - name: Apt-Install Dependencies
if: steps.changes.outputs.cpp == 'true' && !vars.SELF_HOSTED if: steps.changes.outputs.cpp == 'true' && !vars.SELF_HOSTED
uses: ./.github/actions/apt-install-deps uses: ./.github/actions/apt-install-deps
-41
View File
@@ -497,47 +497,6 @@ endif()
# Once we get rid of Perl and libslic3r is linked statically, we can get rid of -fPIC # Once we get rid of Perl and libslic3r is linked statically, we can get rid of -fPIC
set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# WIN10SDK_PATH is used to point CMake to the WIN10 SDK installation directory.
# We pick it from environment if it is not defined in another way
# ORCA: Removed Netfabb STL fixing service support in favor of CGAL.
# if(WIN32)
# if(NOT DEFINED WIN10SDK_PATH)
# if(DEFINED ENV{WIN10SDK_PATH})
# set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}")
# endif()
# endif()
# if(DEFINED WIN10SDK_PATH)
# #BBS: modify win10sdk_path
# if (EXISTS "${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h")
# set(WIN10SDK_INCLUDE_PATH "${WIN10SDK_PATH}")
# else()
# message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}")
# message("${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h was not found")
# message("STL fixing by the Netfabb service will not be compiled")
# unset(WIN10SDK_PATH)
# endif()
# else()
# # Try to use the default Windows 10 SDK path.
# if (DEFINED ENV{WindowsSdkDir} AND DEFINED ENV{WindowsSDKVersion})
# set(WIN10SDK_INCLUDE_PATH "$ENV{WindowsSdkDir}/Include/$ENV{WindowsSDKVersion}")
# else ()
# set(WIN10SDK_INCLUDE_PATH "C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0")
# endif ()
# if (NOT EXISTS "${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h")
# message("${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h was not found")
# message("STL fixing by the Netfabb service will not be compiled")
# unset(WIN10SDK_INCLUDE_PATH)
# endif()
# endif()
# if(WIN10SDK_INCLUDE_PATH)
# message("Building with Win10 Netfabb STL fixing service support")
# add_definitions(-DHAS_WIN10SDK)
# include_directories(SYSTEM "${WIN10SDK_INCLUDE_PATH}")
# else()
# message("Building without Win10 Netfabb STL fixing service support")
# endif()
# endif()
if (APPLE) if (APPLE)
message("OS X SDK Path: ${CMAKE_OSX_SYSROOT}") message("OS X SDK Path: ${CMAKE_OSX_SYSROOT}")
if (CMAKE_OSX_DEPLOYMENT_TARGET) if (CMAKE_OSX_DEPLOYMENT_TARGET)
+8
View File
@@ -1,10 +1,18 @@
# ccache does not parse the -clang: arguments CMake uses for clang-cl's gcc-style # ccache does not parse the -clang: arguments CMake uses for clang-cl's gcc-style
# depfile, so a cache hit writes the object and no depfile, and Ninja then records # depfile, so a cache hit writes the object and no depfile, and Ninja then records
# no headers for that object. ccache reproduces /showIncludes output on a hit. # no headers for that object. ccache reproduces /showIncludes output on a hit.
#
# Clang also records the modification time of every input in a precompiled header
# and rejects the header once one differs. ccache caches the compile that creates
# the header, so a tree that regenerates cmake_pch.cxx gets back a header stamped
# with the old file's time, and every compile that uses it fails. The build system
# already rebuilds the header when an input changes. This covers the dependencies,
# such as wxWidgets; PrecompiledHeader.cmake does the same for OrcaSlicer's targets.
foreach (_lang C CXX) foreach (_lang C CXX)
if (CMAKE_${_lang}_COMPILER_ID STREQUAL "Clang" AND if (CMAKE_${_lang}_COMPILER_ID STREQUAL "Clang" AND
CMAKE_${_lang}_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") CMAKE_${_lang}_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
set(CMAKE_DEPFILE_FLAGS_${_lang} "/showIncludes") set(CMAKE_DEPFILE_FLAGS_${_lang} "/showIncludes")
set(CMAKE_${_lang}_DEPFILE_FORMAT msvc) set(CMAKE_${_lang}_DEPFILE_FORMAT msvc)
list(APPEND CMAKE_${_lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -fno-pch-timestamp)
endif () endif ()
endforeach () endforeach ()
+3 -1
View File
@@ -124,7 +124,9 @@ Control on the Global page, and from the `?` key on the page of the view that re
the dialog should list it; the row's section heading is the `section_table` entry 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 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 collide inside its contexts; the `[Shortcuts]` tests check every default against the
others. others. A default `KeyChord{}` leaves the action unbound: it is listed in the dialog
for the user to bind and matches nothing until they do, which is the honest answer
when every key its contexts can reach is already spoken for.
2. Handle it in the dispatcher of its context: `MainFrame::handle_global_shortcut`, 2. Handle it in the dispatcher of its context: `MainFrame::handle_global_shortcut`,
`GLCanvas3D::handle_shortcut`, `ObjectList::dispatch_shortcut`, or a gizmo's `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. `on_tool_shortcut`. A gizmo that opens on a key sets `m_shortcut` in its constructor.
+135
View File
@@ -0,0 +1,135 @@
# Mesh repair — High Level Design
## Purpose and scope
Mesh repair turns a broken triangle mesh into closed, outward oriented shells that bound a solid, so that the
mesh slices predictably and the other mesh tools (booleans, cut, painting) get valid input. It runs on demand:
the *Fix Model* command of the context menu of an object or part and of the warning icon in the object list, *Fix
All* and *Fix All Plates* in the context menu of a plate, the prompt the Cut tool shows when a cut leaves open edges,
the *Repair and import* choice of texture import, and the `--repair` option of the command line. It is built on CGAL
and is the only repair the application has, on every platform.
`repair_mesh()` in `src/libslic3r/MeshRepair.cpp` does the work on one `TriangleMesh`, and `ModelVolume::repair()`
applies it to a part: it replaces the mesh only when the repair changed it, and remaps or drops the painting of a
replaced mesh. The GUI side, `fix_model_with_cgal_gui()` in `src/slic3r/Utils/FixModelByCgal.cpp`, runs it on a
worker thread for each volume of an object, or for one volume, behind a progress dialog. `repair_mesh()` reports its
progress between stages through a callback, which cancels the repair by throwing.
## What the repaired mesh is
The repair keeps what the slicer would print from the input. The slicer fills a layer where the winding number of
the input surface is not zero (`MeshSlicingParams::SlicingMode::Regular` uses Clipper's nonzero fill rule), so:
- Shells crossing each other print as their union. The repair keeps them as separate shells, as the parts of an
object are kept, and makes each of them an outward oriented solid.
- A shell inside a solid that is oriented like it adds nothing, and the repair removes it.
- A shell inside a solid that is oriented inward is a cavity, and stays one.
- A whole mesh turned inside out prints as a solid, and the repair turns it outward.
On top of that, it closes holes and cracks, gives inconsistently oriented triangles the orientation of their
neighbours, drops degenerate, duplicate and stray flat geometry, and removes small self-intersections inside a shell,
such as slivers and folds. Where none of this applies, it reports the mesh as unmodified and the caller keeps the
original mesh, its painting and its object id.
A volume is repaired in place and is never split into several parts: splitting by connectivity would turn a cavity
into a separate solid part and fill it. Each solid of the result is a shell of its own, so *Split to parts* still
separates them. Open pieces of the input whose borders meet exactly, which are pieces of one surface rather than
solids, come out as the one shell they form.
## Pipeline
The input is treated as a triangle soup. Every stage after the first only runs on what the previous ones could
not settle, so a valid mesh passes through quickly.
### Valid parts first
Parts of the input that are connected by vertex indices and are already closed, consistently oriented 2-manifolds
skip the soup stages and go straight to the shell stages. Merging their points with coincident points of other
parts would only make non-manifold junctions out of solids that touch, for example parts of an assembly exported
together or voxels written as separate cubes.
### Soup clean-up
The rest of the soup has its coincident points merged. Triangles with repeated corners are dropped. Coincident
triangles of opposite orientation are a wall between two solids touching face to face, so they cancel in pairs;
of the remaining copies of a triangle one is kept. A connected region that would vanish entirely through
cancelling is a two-sided export instead (every face written in both orientations), and keeps one copy of each
triangle.
Open edges then get their vertices welded within a tolerance of 1e-4 of the bounding box diagonal, which closes the
cracks some exporters leave between triangles that should share corners. A vertex is never welded further than a
quarter of its shortest edge, so welding cannot collapse fine detail. A soup that stays mostly open after welding has
cracks wider than that tolerance, and is welded again with ten and then a hundred times the tolerance.
### Work units
The soup is cut into units repaired independently and in parallel: its connected parts, except that open parts whose
bounding boxes touch share a unit, so that cracks and T-junctions between separately exported patches still close.
### Building the mesh
A unit whose edges are each shared by at most two triangles, running in opposite directions, and whose vertices each
have a single fan of triangles, becomes a `Surface_mesh` directly. Any other unit is oriented first. Triangles are
flipped so that neighbours across an edge shared by two of them agree, each part keeping the orientation the
majority of its area had, which keeps inward oriented cavities inward. Edges where that is impossible or that more
than two triangles share are cut, and each fan of triangles around a vertex gets its own copy of the vertex. If that
still leaves an invalid mesh, CGAL's `orient_polygon_soup()` orients the unit instead, and the parts it flipped
against their majority are reversed back. The linear pass exists because `orient_polygon_soup()` is several times
slower on large soups that need only a few fixes.
### Closing
Compatible borders are stitched, parts that can be stitched once reversed are merged, and borders still open are
snapped onto each other within the weld tolerance, which closes T-junctions. Exactly degenerate faces are removed.
Holes are filled last. Planar border loops that face each other in one plane, one inside the other, bound a single
region, such as a missing annulus at the end of a tube or a cap with features standing on it. Such a group is
triangulated at once with a 2D constrained Delaunay triangulation that fills only the faces at odd nesting depth,
so the openings inside the region stay open. The patch is used only if it closes every loop with the orientation
of the triangles around it. Every other loop is filled on its own with `triangulate_hole()`, which uses a 2D
constrained Delaunay triangulation when the loop is planar. Otherwise it searches the best triangulation among all
triangles over the loop for loops of up to 100 edges, and among the triangles of a 3D Delaunay triangulation for
longer ones, as the full search is cubic in the length of the loop. Beyond 200 edges the full search is not even
used as a fallback, and a fan around the loop's centroid closes a loop nothing else could.
The closed unit is split into its shells. The largest stays in place and the others are copied out, as converting
the whole mesh again costs seconds on large models.
### Shells
The shells of all units, together with the valid parts set aside at the start, are handled independently and in
parallel. Shells enclosing no volume, which hole filling makes out of stray flat patches, are dropped.
Self-intersections inside a shell are removed locally with `experimental::remove_self_intersections()`, which
remeshes the region around them. It is used only for local defects: a shell whose intersections involve more than
5 % of its faces is left as it is, and a result that changes the enclosed volume by more than 0.1 % is undone. On
heavily overlapping ornamental models the remeshing otherwise cuts parts down to slivers, while on genuine defects
it changes the volume by thousandths of a percent. Overlaps left in place slice correctly. Remeshing can cut
small pieces off a shell, so a shell it changed is split again and its pieces enclosing no volume are dropped.
Shells crossing others are found through their bounding boxes and an AABB tree per shell, and are made outward
oriented solids. For every other shell the winding number just outside it is summed from the orientation of the
shells containing it, tested from a point on its largest face. The shell bounds the solid only if the winding
number is zero on exactly one of its sides; it is then oriented so that the solid is inside, or dropped otherwise.
Crossing shells are not united. Slicing unites them anyway, uniting them exactly costs tens of seconds on models
made of many overlapping pieces, and it would fuse parts that *Split to parts* should keep apart.
## Robustness
The repair avoids `experimental::autorefine_and_remove_self_intersections()` and corefinement, which can crash on
messy input, and uses only steps whose failures it can detect. A step that fails keeps its input. CGAL precondition
failures surface as `repair_mesh()` returning false with the message as the error. The output is written in float,
as every mesh in the application is.
The result does not depend on thread scheduling. `libslic3r_cgal` is built with `CGAL_LINKED_WITH_TBB`. Units and
shells are processed in parallel, but each on its own data, and their results are gathered in a fixed order;
sorts compare complete keys, and the detected self-intersections are put in order before they are used. Snapping
stays sequential, as its parallel version gives different results from run to run. Holes are filled with the full
search wherever it is affordable, because the search among Delaunay triangles can choose between equally good fills
differently from run to run, so only non-planar holes of more than 100 edges may still vary. On some inputs
`experimental::remove_self_intersections()` itself places a few vertices differently from run to run.
## Verification
`tests/libslic3r/test_mesh_repair.cpp` covers each kind of defect above on small meshes with known volumes.
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -7478,7 +7478,7 @@ msgid "Update"
msgstr "更新" msgstr "更新"
msgid "Assistant(HMS)" msgid "Assistant(HMS)"
msgstr "助理(HMS)" msgstr "助手(HMS)"
#, c-format, boost-format #, c-format, boost-format
msgid "Network plug-in v%s" msgid "Network plug-in v%s"
+3
View File
@@ -0,0 +1,3 @@
<svg width="28" height="27" viewBox="0 0 28 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path transform="matrix(0.9 0 0 0.9 1.4 1.35)" d="M11.9888 2.01601C12.8984 0.494662 15.1024 0.494662 16.012 2.01601L18.8677 6.79237C19.1958 7.34113 19.7339 7.73201 20.3572 7.87447L25.7821 9.11446C27.5101 9.50943 28.1913 11.6056 27.0254 12.9408L23.3652 17.1327C22.9449 17.6143 22.7394 18.2469 22.7964 18.8836L23.2936 24.4263C23.4519 26.1918 21.6687 27.4873 20.0386 26.7911L14.9209 24.6056C14.3329 24.3545 13.6679 24.3545 13.0799 24.6056L7.96209 26.7911C6.33196 27.4873 4.54887 26.1918 4.70722 24.4263L5.20434 18.8836C5.26145 18.2469 5.05595 17.6143 4.63544 17.1327L0.97533 12.9408C-0.19048 11.6056 0.490599 9.50943 2.21859 9.11446L7.64364 7.87447C8.2669 7.73201 8.80494 7.34113 9.13302 6.79237L11.9888 2.01601Z" stroke="#949494" stroke-width="2.4" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 876 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><g transform="rotate(-45 8 8)"><path d="M8 14.4 6.5 11.2 9.5 11.2 Z" style="fill:#009688"/><path d="M6.5 7.3 6.5 11.2 8 14.4 9.5 11.2 9.5 7.3" style="fill:none;stroke:#949494;stroke-width:0.4;stroke-linejoin:round;stroke-linecap:round"/><rect x="5.5" y="3.8" width="5" height="3.5" rx="0.9" style="fill:none;stroke:#949494;stroke-width:0.4;stroke-linejoin:round"/></g></svg>

After

Width:  |  Height:  |  Size: 458 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><circle cx="5.9" cy="6.3" r="1.25" style="fill:#009688"/><path d="M3.4 11.9 6.4 7.7 8.8 10.7 10.4 8.6 12.6 11.9 Z" style="fill:#009688"/><rect x="2.375" y="2.375" width="11.25" height="11.25" rx="1.25" style="fill:none;stroke:#949494;stroke-width:0.4;stroke-linecap:round;stroke-linejoin:round"/></svg>

After

Width:  |  Height:  |  Size: 386 B

+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "Bambulab", "name": "Bambulab",
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
"version": "02.08.00.14", "version": "02.08.00.15",
"force_update": "0", "force_update": "0",
"description": "the initial version of BBL configurations", "description": "the initial version of BBL configurations",
"machine_model_list": [ "machine_model_list": [
File diff suppressed because one or more lines are too long
+790
View File
@@ -0,0 +1,790 @@
{
"name": "FELIX Printers",
"version": "1.0.0",
"force_update": "0",
"description": "Configuration file for printers by FELIX Printers",
"machine_model_list": [
{
"name": "FELIX Food Double",
"sub_path": "machine/FELIX Food Double.json"
},
{
"name": "FELIX Food Single",
"sub_path": "machine/FELIX Food Single.json"
},
{
"name": "FELIX Food Switch",
"sub_path": "machine/FELIX Food Switch.json"
},
{
"name": "FELIX Pro 3",
"sub_path": "machine/FELIX Pro 3.json"
},
{
"name": "FELIX Pro L 3.0",
"sub_path": "machine/FELIX Pro L 3.0.json"
},
{
"name": "FELIX Pro XL 3.0",
"sub_path": "machine/FELIX Pro XL 3.0.json"
},
{
"name": "FELIX Tec 4",
"sub_path": "machine/FELIX Tec 4.json"
}
],
"machine_list": [
{
"name": "fdm_all_machines_common",
"sub_path": "machine/fdm_all_machines_common.json"
},
{
"name": "fdm_felix_food_common",
"sub_path": "machine/fdm_felix_food_common.json"
},
{
"name": "fdm_felix_food_double_common",
"sub_path": "machine/fdm_felix_food_double_common.json"
},
{
"name": "fdm_felix_food_switch_common",
"sub_path": "machine/fdm_felix_food_switch_common.json"
},
{
"name": "fdm_felix_plastic_common",
"sub_path": "machine/fdm_felix_plastic_common.json"
},
{
"name": "fdm_felix_pro_3_common",
"sub_path": "machine/fdm_felix_pro_3_common.json"
},
{
"name": "fdm_felix_pro_l_3_common",
"sub_path": "machine/fdm_felix_pro_l_3.json"
},
{
"name": "fdm_felix_pro_xl_3_common",
"sub_path": "machine/fdm_felix_pro_xl_3_common.json"
},
{
"name": "fdm_felix_tec_common",
"sub_path": "machine/fdm_felix_tec_common.json"
},
{
"name": "FELIX Food Single 0.50mm nozzle",
"sub_path": "machine/FELIX Food Single 0.50mm nozzle.json"
},
{
"name": "FELIX Food Single 1.00mm nozzle",
"sub_path": "machine/FELIX Food Single 1.00mm nozzle.json"
},
{
"name": "FELIX Food Single 2.00mm nozzle",
"sub_path": "machine/FELIX Food Single 2.00mm nozzle.json"
},
{
"name": "FELIX Food Single 3.00mm nozzle",
"sub_path": "machine/FELIX Food Single 3.00mm nozzle.json"
},
{
"name": "FELIX Food Single 4.00mm nozzle",
"sub_path": "machine/FELIX Food Single 4.00mm nozzle.json"
},
{
"name": "FELIX Food Double 0.50mm nozzle",
"sub_path": "machine/FELIX Food Double 0.50mm nozzle.json"
},
{
"name": "FELIX Food Double 1.00mm nozzle",
"sub_path": "machine/FELIX Food Double 1.00mm nozzle.json"
},
{
"name": "FELIX Food Double 2.00mm nozzle",
"sub_path": "machine/FELIX Food Double 2.00mm nozzle.json"
},
{
"name": "FELIX Food Double 3.00mm nozzle",
"sub_path": "machine/FELIX Food Double 3.00mm nozzle.json"
},
{
"name": "FELIX Food Double 4.00mm nozzle",
"sub_path": "machine/FELIX Food Double 4.00mm nozzle.json"
},
{
"name": "FELIX Food Switch 0.50mm nozzle",
"sub_path": "machine/FELIX Food Switch 0.50mm nozzle.json"
},
{
"name": "FELIX Food Switch 1.00mm nozzle",
"sub_path": "machine/FELIX Food Switch 1.00mm nozzle.json"
},
{
"name": "FELIX Food Switch 2.00mm nozzle",
"sub_path": "machine/FELIX Food Switch 2.00mm nozzle.json"
},
{
"name": "FELIX Food Switch 3.00mm nozzle",
"sub_path": "machine/FELIX Food Switch 3.00mm nozzle.json"
},
{
"name": "FELIX Food Switch 4.00mm nozzle",
"sub_path": "machine/FELIX Food Switch 4.00mm nozzle.json"
},
{
"name": "FELIX Pro 3 0.25mm nozzle",
"sub_path": "machine/FELIX Pro 3 0.25mm nozzle.json"
},
{
"name": "FELIX Pro 3 0.35mm nozzle",
"sub_path": "machine/FELIX Pro 3 0.35mm nozzle.json"
},
{
"name": "FELIX Pro 3 0.50mm nozzle",
"sub_path": "machine/FELIX Pro 3 0.50mm nozzle.json"
},
{
"name": "FELIX Pro 3 0.70mm nozzle",
"sub_path": "machine/FELIX Pro 3 0.70mm nozzle.json"
},
{
"name": "FELIX Pro L 3.0 0.25mm nozzle",
"sub_path": "machine/FELIX Pro L 3.0 0.25mm nozzle.json"
},
{
"name": "FELIX Pro L 3.0 0.35mm nozzle",
"sub_path": "machine/FELIX Pro L 3.0 0.35mm nozzle.json"
},
{
"name": "FELIX Pro L 3.0 0.50mm nozzle",
"sub_path": "machine/FELIX Pro L 3.0 0.50mm nozzle.json"
},
{
"name": "FELIX Pro L 3.0 0.70mm nozzle",
"sub_path": "machine/FELIX Pro L 3.0 0.70mm nozzle.json"
},
{
"name": "FELIX Pro XL 3.0 0.25mm nozzle",
"sub_path": "machine/FELIX Pro XL 3.0 0.25mm nozzle.json"
},
{
"name": "FELIX Pro XL 3.0 0.35mm nozzle",
"sub_path": "machine/FELIX Pro XL 3.0 0.35mm nozzle.json"
},
{
"name": "FELIX Pro XL 3.0 0.50mm nozzle",
"sub_path": "machine/FELIX Pro XL 3.0 0.50mm nozzle.json"
},
{
"name": "FELIX Pro XL 3.0 0.70mm nozzle",
"sub_path": "machine/FELIX Pro XL 3.0 0.70mm nozzle.json"
},
{
"name": "FELIX Tec 4 0.25mm nozzle",
"sub_path": "machine/FELIX Tec 4 0.25mm nozzle.json"
},
{
"name": "FELIX Tec 4 0.35mm nozzle",
"sub_path": "machine/FELIX Tec 4 0.35mm nozzle.json"
},
{
"name": "FELIX Tec 4 0.50mm nozzle",
"sub_path": "machine/FELIX Tec 4 0.50mm nozzle.json"
},
{
"name": "FELIX Tec 4 0.70mm nozzle",
"sub_path": "machine/FELIX Tec 4 0.70mm nozzle.json"
}
],
"process_list": [
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "fdm_process_felix_food_common",
"sub_path": "process/fdm_process_felix_food_common.json"
},
{
"name": "fdm_process_felix_plastic_common",
"sub_path": "process/fdm_process_felix_plastic_common.json"
},
{
"name": "FELIX Food Coarse @ 0.50mm",
"sub_path": "process/FELIX Food Coarse @ 0.50mm.json"
},
{
"name": "FELIX Food Coarse @ 1.00mm",
"sub_path": "process/FELIX Food Coarse @ 1.00mm.json"
},
{
"name": "FELIX Food Coarse @ 2.00mm",
"sub_path": "process/FELIX Food Coarse @ 2.00mm.json"
},
{
"name": "FELIX Food Coarse @ 3.00mm",
"sub_path": "process/FELIX Food Coarse @ 3.00mm.json"
},
{
"name": "FELIX Food Coarse @ 4.00mm",
"sub_path": "process/FELIX Food Coarse @ 4.00mm.json"
},
{
"name": "FELIX Food Fine @ 0.50mm",
"sub_path": "process/FELIX Food Fine @ 0.50mm.json"
},
{
"name": "FELIX Food Fine @ 1.00mm",
"sub_path": "process/FELIX Food Fine @ 1.00mm.json"
},
{
"name": "FELIX Food Fine @ 2.00mm",
"sub_path": "process/FELIX Food Fine @ 2.00mm.json"
},
{
"name": "FELIX Food Fine @ 3.00mm",
"sub_path": "process/FELIX Food Fine @ 3.00mm.json"
},
{
"name": "FELIX Food Fine @ 4.00mm",
"sub_path": "process/FELIX Food Fine @ 4.00mm.json"
},
{
"name": "FELIX Food Normal @ 0.50mm",
"sub_path": "process/FELIX Food Normal @ 0.50mm.json"
},
{
"name": "FELIX Food Normal @ 1.00mm",
"sub_path": "process/FELIX Food Normal @ 1.00mm.json"
},
{
"name": "FELIX Food Normal @ 2.00mm",
"sub_path": "process/FELIX Food Normal @ 2.00mm.json"
},
{
"name": "FELIX Food Normal @ 3.00mm",
"sub_path": "process/FELIX Food Normal @ 3.00mm.json"
},
{
"name": "FELIX Food Normal @ 4.00mm",
"sub_path": "process/FELIX Food Normal @ 4.00mm.json"
},
{
"name": "FELIX Plastic Coarse @ 0.35mm",
"sub_path": "process/FELIX Plastic Coarse @ 0.35mm.json"
},
{
"name": "FELIX Plastic Coarse @ 0.50mm",
"sub_path": "process/FELIX Plastic Coarse @ 0.50mm.json"
},
{
"name": "FELIX Plastic Coarse @ 0.70mm",
"sub_path": "process/FELIX Plastic Coarse @ 0.70mm.json"
},
{
"name": "FELIX Plastic Fine @ 0.25mm",
"sub_path": "process/FELIX Plastic Fine @ 0.25mm.json"
},
{
"name": "FELIX Plastic Fine @ 0.35mm",
"sub_path": "process/FELIX Plastic Fine @ 0.35mm.json"
},
{
"name": "FELIX Plastic Fine @ 0.50mm",
"sub_path": "process/FELIX Plastic Fine @ 0.50mm.json"
},
{
"name": "FELIX Plastic Fine @ 0.70mm",
"sub_path": "process/FELIX Plastic Fine @ 0.70mm.json"
},
{
"name": "FELIX Plastic Normal @ 0.25mm",
"sub_path": "process/FELIX Plastic Normal @ 0.25mm.json"
},
{
"name": "FELIX Plastic Normal @ 0.35mm",
"sub_path": "process/FELIX Plastic Normal @ 0.35mm.json"
},
{
"name": "FELIX Plastic Normal @ 0.50mm",
"sub_path": "process/FELIX Plastic Normal @ 0.50mm.json"
},
{
"name": "FELIX Plastic Normal @ 0.70mm",
"sub_path": "process/FELIX Plastic Normal @ 0.70mm.json"
},
{
"name": "FELIX Plastic Slightly Coarse @ 0.35mm",
"sub_path": "process/FELIX Plastic Slightly Coarse @ 0.35mm.json"
},
{
"name": "FELIX Plastic Slightly Coarse @ 0.50mm",
"sub_path": "process/FELIX Plastic Slightly Coarse @ 0.50mm.json"
},
{
"name": "FELIX Plastic Slightly Coarse @ 0.70mm",
"sub_path": "process/FELIX Plastic Slightly Coarse @ 0.70mm.json"
},
{
"name": "FELIX Plastic Super Coarse @ 0.70mm",
"sub_path": "process/FELIX Plastic Super Coarse @ 0.70mm.json"
},
{
"name": "FELIX Plastic Super Fine @ 0.25mm",
"sub_path": "process/FELIX Plastic Super Fine @ 0.25mm.json"
},
{
"name": "FELIX Plastic Super Fine @ 0.35mm",
"sub_path": "process/FELIX Plastic Super Fine @ 0.35mm.json"
},
{
"name": "FELIX Plastic Very Coarse @ 0.50mm",
"sub_path": "process/FELIX Plastic Very Coarse @ 0.50mm.json"
},
{
"name": "FELIX Plastic Very Coarse @ 0.70mm",
"sub_path": "process/FELIX Plastic Very Coarse @ 0.70mm.json"
},
{
"name": "FELIX Plastic Very Fine @ 0.25mm",
"sub_path": "process/FELIX Plastic Very Fine @ 0.25mm.json"
},
{
"name": "FELIX Plastic Very Fine @ 0.35mm",
"sub_path": "process/FELIX Plastic Very Fine @ 0.35mm.json"
},
{
"name": "FELIX Plastic Very Fine @ 0.50mm",
"sub_path": "process/FELIX Plastic Very Fine @ 0.50mm.json"
}
],
"filament_list": [
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_food",
"sub_path": "filament/fdm_filament_food.json"
},
{
"name": "fdm_filament_abs",
"sub_path": "filament/fdm_filament_abs.json"
},
{
"name": "fdm_filament_asa",
"sub_path": "filament/fdm_filament_asa.json"
},
{
"name": "fdm_filament_flex",
"sub_path": "filament/fdm_filament_flex.json"
},
{
"name": "fdm_filament_pa",
"sub_path": "filament/fdm_filament_pa.json"
},
{
"name": "fdm_filament_pa11cf",
"sub_path": "filament/fdm_filament_pa11cf.json"
},
{
"name": "fdm_filament_pc",
"sub_path": "filament/fdm_filament_pc.json"
},
{
"name": "fdm_filament_pccf",
"sub_path": "filament/fdm_filament_pccf.json"
},
{
"name": "fdm_filament_pet",
"sub_path": "filament/fdm_filament_pet.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_pva",
"sub_path": "filament/fdm_filament_pva.json"
},
{
"name": "fdm_filament_pvb",
"sub_path": "filament/fdm_filament_pvb.json"
},
{
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "Food Medium Plastic Syringe @0.50mm",
"sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @0.50mm.json"
},
{
"name": "Food Medium Plastic Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @1.00mm.json"
},
{
"name": "Food Medium Plastic Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @2.00mm.json"
},
{
"name": "Food Medium Plastic Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @3.00mm.json"
},
{
"name": "Food Medium Plastic Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @4.00mm.json"
},
{
"name": "Food Medium Stainless Steel Syringe @0.50mm",
"sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @0.50mm.json"
},
{
"name": "Food Medium Stainless Steel Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @1.00mm.json"
},
{
"name": "Food Medium Stainless Steel Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @2.00mm.json"
},
{
"name": "Food Medium Stainless Steel Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @3.00mm.json"
},
{
"name": "Food Medium Stainless Steel Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @4.00mm.json"
},
{
"name": "Food Thick Stainless Steel Syringe @0.50mm",
"sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @0.50mm.json"
},
{
"name": "Food Thick Stainless Steel Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @1.00mm.json"
},
{
"name": "Food Thick Stainless Steel Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @2.00mm.json"
},
{
"name": "Food Thick Stainless Steel Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @3.00mm.json"
},
{
"name": "Food Thick Stainless Steel Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @4.00mm.json"
},
{
"name": "Food Thin Plastic Syringe @0.50mm",
"sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @0.50mm.json"
},
{
"name": "Food Thin Plastic Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @1.00mm.json"
},
{
"name": "Food Thin Plastic Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @2.00mm.json"
},
{
"name": "Food Thin Plastic Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @3.00mm.json"
},
{
"name": "Food Thin Plastic Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @4.00mm.json"
},
{
"name": "Food Thin Stainless Steel Syringe @0.50mm",
"sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @0.50mm.json"
},
{
"name": "Food Thin Stainless Steel Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @1.00mm.json"
},
{
"name": "Food Thin Stainless Steel Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @2.00mm.json"
},
{
"name": "Food Thin Stainless Steel Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @3.00mm.json"
},
{
"name": "Food Thin Stainless Steel Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @4.00mm.json"
},
{
"name": "Food Very Thick Stainless Steel Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @1.00mm.json"
},
{
"name": "Food Very Thick Stainless Steel Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @2.00mm.json"
},
{
"name": "Food Very Thick Stainless Steel Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @3.00mm.json"
},
{
"name": "Food Very Thick Stainless Steel Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @4.00mm.json"
},
{
"name": "Food Very Thin Plastic Syringe @0.50mm",
"sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @0.50mm.json"
},
{
"name": "Food Very Thin Plastic Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @1.00mm.json"
},
{
"name": "Food Very Thin Plastic Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @2.00mm.json"
},
{
"name": "Food Very Thin Plastic Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @3.00mm.json"
},
{
"name": "Food Very Thin Plastic Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @4.00mm.json"
},
{
"name": "Food Very Thin Stainless Steel Syringe @1.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @1.00mm.json"
},
{
"name": "Food Very Thin Stainless Steel Syringe @2.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @2.00mm.json"
},
{
"name": "Food Very Thin Stainless Steel Syringe @3.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @3.00mm.json"
},
{
"name": "Food Very Thin Stainless Steel Syringe @4.00mm",
"sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @4.00mm.json"
},
{
"name": "Food Very Thin Stainless Steel Syringe @0.50mm",
"sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @0.50mm.json"
},
{
"name": "FORMFUTURA TitanX ABS Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.35mm.json"
},
{
"name": "FORMFUTURA TitanX ABS Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.50mm.json"
},
{
"name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm.json"
},
{
"name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm.json"
},
{
"name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm.json"
},
{
"name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm.json"
},
{
"name": "Ultrafuse ABS Fusion+ Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.35mm.json"
},
{
"name": "Ultrafuse ABS Fusion+ Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.50mm.json"
},
{
"name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm.json"
},
{
"name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm.json"
},
{
"name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm.json"
},
{
"name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm.json"
},
{
"name": "FORMFUTURA AppoloX ASA Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.35mm.json"
},
{
"name": "FORMFUTURA AppoloX ASA Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.50mm.json"
},
{
"name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm.json"
},
{
"name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm.json"
},
{
"name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm.json"
},
{
"name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm.json"
},
{
"name": "FELIX FLEX Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX FLEX Brass @ 0.35mm.json"
},
{
"name": "FELIX FLEX Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX FLEX Brass @ 0.50mm.json"
},
{
"name": "FELIX FLEX Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.25mm.json"
},
{
"name": "FELIX FLEX Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.35mm.json"
},
{
"name": "FELIX FLEX Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.50mm.json"
},
{
"name": "FELIX FLEX Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.70mm.json"
},
{
"name": "FELIX PETG Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX PETG Brass @ 0.35mm.json"
},
{
"name": "FELIX PETG Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX PETG Brass @ 0.50mm.json"
},
{
"name": "FELIX PETG Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.25mm.json"
},
{
"name": "FELIX PETG Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.35mm.json"
},
{
"name": "FELIX PETG Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.50mm.json"
},
{
"name": "FELIX PETG Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.70mm.json"
},
{
"name": "FELIX Premium PLA Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.35mm.json"
},
{
"name": "FELIX Premium PLA Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.50mm.json"
},
{
"name": "FELIX Premium PLA Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.25mm.json"
},
{
"name": "FELIX Premium PLA Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.35mm.json"
},
{
"name": "FELIX Premium PLA Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.50mm.json"
},
{
"name": "FELIX Premium PLA Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.70mm.json"
},
{
"name": "FELIX Wood Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX Wood Brass @ 0.35mm.json"
},
{
"name": "FELIX Wood Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX Wood Brass @ 0.50mm.json"
},
{
"name": "FELIX Wood Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.25mm.json"
},
{
"name": "FELIX Wood Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.35mm.json"
},
{
"name": "FELIX Wood Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.50mm.json"
},
{
"name": "FELIX Wood Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.70mm.json"
},
{
"name": "FORMFUTURA ePLA Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.35mm.json"
},
{
"name": "FORMFUTURA ePLA Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.50mm.json"
},
{
"name": "FORMFUTURA ePLA Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.25mm.json"
},
{
"name": "FORMFUTURA ePLA Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.35mm.json"
},
{
"name": "FORMFUTURA ePLA Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.50mm.json"
},
{
"name": "FORMFUTURA ePLA Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.70mm.json"
},
{
"name": "FORMFUTURA Aquasolve PVA Brass @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.35mm.json"
},
{
"name": "FORMFUTURA Aquasolve PVA Brass @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.50mm.json"
},
{
"name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm.json"
},
{
"name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm.json"
},
{
"name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm.json"
},
{
"name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm",
"sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm.json"
}
]
}
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="a" xmlns="http://www.w3.org/2000/svg" width="180.62mm" height="180.62mm" viewBox="0 0 512 512" xmlns:c2pa="http://c2pa.org/manifest">
<rect x="0" y="0" width="512" height="512" fill="none"/>
<g fill="#ffffff" transform="translate(5,460) scale(0.2)">
<g>
<path d="M139.4.8l-.2,62c-34.3,0-63.4,21.8-73.2,51.9C26.4,141,.2,187.8.2,241.3H0l.2-101.3C.2,63.1,62.4.8,139.4.8Z"/>
<path d="M139.1,92.5l-.8,62.5c-42.6,0-77.1,38.6-77.1,86.3l1-103.9c0-7.9,1.3-15.5,3.6-22.7,21.2-14.1,46.3-22.3,73.2-22.3Z"/>
<path d="M65.9,114.7c-2.3,7.2-3.6,14.8-3.6,22.7l-1,103.9H.2c0-53.5,26.3-100.3,65.7-126.6Z"/>
</g>
<polygon points="202.8 .4 202.8 92.9 226.2 92.9 226.2 56 259.8 56 259.8 36.1 226.2 36.1 226.2 19.4 265.7 19.4 265.7 0 202.8 .4"/>
<polygon points="282.3 -.3 282.3 93 346.1 93 346.1 72.4 306.8 72.4 306.8 55.6 341.7 55.6 341.7 36.4 306.5 36.4 306.5 19.6 346.2 19.6 346.2 -.3 282.3 -.3"/>
<polygon points="365.9 92.8 429.5 92.8 429.5 70.9 389.6 70.9 389.6 .2 365 .2 365.9 92.8"/>
<polygon points="448 0 471.9 0 471.9 92.5 447.5 92.5 448 0"/>
<path d="M485.1,92.5s34.7-44.3,33.4-46.5S485.7,0,485.7,0h29l18.4,24.8L550.1,0h26.6l-29.9,45.4,33.1,46.8h-28.8l-19.3-27.4-18.9,28.1-27.9-.4Z"/>
<g>
<path d="M210.9,154.1c-1.9,0-3.7-.2-5.3-.7-1.6-.4-3-1-4.2-1.6v-3.9c1.1.6,2.4,1.1,3.9,1.6,1.5.5,3.2.7,5.1.7,3.1,0,5.5-.6,7.2-1.7,1.7-1.2,2.5-2.8,2.5-5s-.8-3.9-2.5-5c-1.7-1.2-4.2-1.7-7.4-1.7h-3.9v-3.7h4c2.6,0,4.5-.5,5.9-1.5,1.4-1,2-2.4,2-4.2s-.3-2.3-1-3.1c-.6-.8-1.6-1.5-2.8-1.9-1.3-.4-2.8-.7-4.6-.7s-3,.2-4.3.6c-1.3.4-2.4.8-3.3,1.3v-3.9c1.1-.5,2.3-.9,3.6-1.3,1.3-.4,2.8-.5,4.5-.5s4,.3,5.5.8c1.5.5,2.7,1.3,3.6,2.2.9.9,1.6,1.9,2,3.1.4,1.1.6,2.3.6,3.4s-.2,2.4-.7,3.3c-.5.9-1,1.7-1.6,2.2-.6.6-1.4,1.1-2.3,1.6,1.3.7,2.3,1.4,3.2,2.1s1.6,1.7,2.2,2.8c.6,1.1,1,2.5,1,4.2s-.2,2.5-.7,3.8c-.5,1.2-1.2,2.4-2.2,3.4s-2.4,1.8-4,2.4c-1.7.6-3.7.9-6.1.9Z"/>
<path d="M232.1,153.7v-35.4h11.1c5.5,0,9.7,1.5,12.4,4.4,2.8,3,4.2,7.4,4.2,13.2s-1.4,10.3-4.2,13.2c-2.8,3-6.9,4.5-12.4,4.5h-11.1ZM235.9,150h7c4.5,0,7.8-1.1,9.9-3.4,2-2.3,3.1-5.8,3.1-10.7s-1-8.4-3.1-10.7c-2-2.3-5.3-3.4-9.9-3.4h-7v28.2Z"/>
<path d="M291.9,154.4c-.8,0-1.7-.1-2.6-.3-1-.2-1.9-.5-2.8-.8-.9-.3-1.7-.7-2.4-1l1.3-1.3v14.2h-3.8v-33.2c0-1.1.3-2,1-2.7.7-.7,1.6-1.2,2.7-1.6,1.1-.4,2.3-.6,3.5-.8,1.2-.2,2.4-.2,3.5-.2,2.1,0,4.1.4,6,1.3,1.9.9,3.4,2.4,4.6,4.5s1.7,5,1.7,8.6-.5,5.1-1.5,7.1c-1,2-2.4,3.5-4.3,4.6-1.9,1.1-4.2,1.6-6.9,1.6ZM291.9,150.9c1.9,0,3.5-.4,4.8-1.2,1.3-.8,2.2-2,2.8-3.5.6-1.5,1-3.2,1-5.1s-.2-3.7-.6-5.4c-.4-1.7-1.2-3-2.4-4-1.2-1-3-1.5-5.2-1.5s-3.4.2-4.8.6c-1.4.4-2,1-2,1.8v16.4c1.1.6,2.2,1.1,3.3,1.4s2.2.5,3.3.5Z"/>
<path d="M311.1,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1c-.8,0-1.6.2-2.4.3-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M330.5,122.5v-4.2h4.2v4.2h-4.2ZM330.8,153.7v-26.4h3.8v26.4h-3.8Z"/>
<path d="M342.7,129.3c.8-.4,1.7-.8,2.6-1.1.9-.3,1.8-.6,2.8-.8.9-.2,1.9-.4,2.9-.5,1-.1,2-.2,2.9-.2,2.6,0,4.6.4,6.1,1.1,1.5.8,2.6,1.9,3.3,3.3.7,1.4,1,3.2,1,5.2v17.2h-3.8v-17.2c0-.6,0-1.3-.2-2-.2-.7-.5-1.4-.9-2-.5-.7-1.2-1.2-2.1-1.6s-2.2-.6-3.8-.6-2.2,0-3.4.3-2.4.4-3.6.8v22.4h-3.8v-24.3Z"/>
<path d="M380.7,154.1c-1.9,0-3.4-.6-4.7-1.7-1.3-1.1-1.9-2.9-1.9-5.1v-16.5h-4.6v-3.5h4.6v-7.5h3.8v7.5h6.8v3.5h-6.8v15.3c0,1.5.2,2.6.7,3.3s1.4,1.1,2.8,1.1,1.3,0,1.9-.2,1.1-.3,1.5-.5v3.6c-.5.2-1.1.3-1.9.5s-1.5.2-2.1.2Z"/>
<path d="M402,154.4c-2.5,0-4.7-.5-6.5-1.6-1.8-1-3.3-2.6-4.2-4.7-1-2.1-1.5-4.7-1.5-7.8,0-4.6,1-8,3.1-10.3,2.1-2.3,4.9-3.4,8.5-3.4s5.1.6,6.8,1.9c1.7,1.3,2.9,3,3.7,5.1.7,2.2,1.1,4.6,1.1,7.3h-21.3l.3-3.5h18.5l-1.5.5c-.1-2.6-.8-4.6-2-5.9-1.2-1.3-3.1-2-5.6-2s-3.2.3-4.3,1c-1.1.6-2,1.7-2.6,3.3s-.8,3.8-.8,6.6.8,5.7,2.3,7.3c1.5,1.7,3.6,2.5,6.3,2.5s2.5,0,3.6-.3,2.1-.5,3-.8c.9-.4,1.7-.7,2.4-1.2v3.9c-1.3.6-2.7,1.1-4.2,1.4-1.5.3-3.2.5-5.1.5Z"/>
<path d="M419.5,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1-1.6.2-2.4.3c-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M446.4,154.4c-1.9,0-3.5-.2-4.8-.6s-2.6-.9-4-1.6v-4c1.1.6,2.1,1.1,2.9,1.5s1.7.7,2.6.9c.9.2,1.9.3,3,.3,1.8,0,3.2-.4,4.3-1.2,1.1-.8,1.7-1.8,1.7-3s-.3-1.7-.8-2.3-1.2-1-2.1-1.3c-.8-.4-1.7-.7-2.7-1.1-1-.3-2.1-.6-3.1-.9-1-.3-2-.8-2.9-1.3-.9-.5-1.6-1.3-2.1-2.1-.5-.9-.8-2-.8-3.4s.3-2.5.8-3.4c.5-1,1.3-1.7,2.1-2.4.9-.6,1.9-1.1,3-1.4,1.1-.3,2.2-.4,3.3-.4,1.6,0,2.9.2,4.1.6,1.1.4,2.3.9,3.5,1.4v3.8c-1.3-.7-2.5-1.3-3.6-1.7-1.1-.4-2.3-.7-3.8-.7s-2.7.3-3.9.9c-1.1.6-1.7,1.5-1.7,2.7s.3,1.8.9,2.4,1.4,1,2.3,1.4c1,.3,2,.7,3.1,1,.9.3,1.8.6,2.8.9,1,.3,1.8.8,2.7,1.3.8.5,1.5,1.3,2,2.1.5.9.8,2,.8,3.4s-.5,3.4-1.4,4.6-2.2,2.1-3.6,2.7c-1.5.6-3,.8-4.5.8Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="a" xmlns="http://www.w3.org/2000/svg" width="180.62mm" height="180.62mm" viewBox="0 0 250 195" xmlns:c2pa="http://c2pa.org/manifest">
<rect x="0" y="0" width="250" height="195" fill="none"/>
<g fill="#ffffff" transform="translate(2,169) scale(0.1)">
<g>
<path d="M139.4.8l-.2,62c-34.3,0-63.4,21.8-73.2,51.9C26.4,141,.2,187.8.2,241.3H0l.2-101.3C.2,63.1,62.4.8,139.4.8Z"/>
<path d="M139.1,92.5l-.8,62.5c-42.6,0-77.1,38.6-77.1,86.3l1-103.9c0-7.9,1.3-15.5,3.6-22.7,21.2-14.1,46.3-22.3,73.2-22.3Z"/>
<path d="M65.9,114.7c-2.3,7.2-3.6,14.8-3.6,22.7l-1,103.9H.2c0-53.5,26.3-100.3,65.7-126.6Z"/>
</g>
<polygon points="202.8 .4 202.8 92.9 226.2 92.9 226.2 56 259.8 56 259.8 36.1 226.2 36.1 226.2 19.4 265.7 19.4 265.7 0 202.8 .4"/>
<polygon points="282.3 -.3 282.3 93 346.1 93 346.1 72.4 306.8 72.4 306.8 55.6 341.7 55.6 341.7 36.4 306.5 36.4 306.5 19.6 346.2 19.6 346.2 -.3 282.3 -.3"/>
<polygon points="365.9 92.8 429.5 92.8 429.5 70.9 389.6 70.9 389.6 .2 365 .2 365.9 92.8"/>
<polygon points="448 0 471.9 0 471.9 92.5 447.5 92.5 448 0"/>
<path d="M485.1,92.5s34.7-44.3,33.4-46.5S485.7,0,485.7,0h29l18.4,24.8L550.1,0h26.6l-29.9,45.4,33.1,46.8h-28.8l-19.3-27.4-18.9,28.1-27.9-.4Z"/>
<g>
<path d="M210.9,154.1c-1.9,0-3.7-.2-5.3-.7-1.6-.4-3-1-4.2-1.6v-3.9c1.1.6,2.4,1.1,3.9,1.6,1.5.5,3.2.7,5.1.7,3.1,0,5.5-.6,7.2-1.7,1.7-1.2,2.5-2.8,2.5-5s-.8-3.9-2.5-5c-1.7-1.2-4.2-1.7-7.4-1.7h-3.9v-3.7h4c2.6,0,4.5-.5,5.9-1.5,1.4-1,2-2.4,2-4.2s-.3-2.3-1-3.1c-.6-.8-1.6-1.5-2.8-1.9-1.3-.4-2.8-.7-4.6-.7s-3,.2-4.3.6c-1.3.4-2.4.8-3.3,1.3v-3.9c1.1-.5,2.3-.9,3.6-1.3,1.3-.4,2.8-.5,4.5-.5s4,.3,5.5.8c1.5.5,2.7,1.3,3.6,2.2.9.9,1.6,1.9,2,3.1.4,1.1.6,2.3.6,3.4s-.2,2.4-.7,3.3c-.5.9-1,1.7-1.6,2.2-.6.6-1.4,1.1-2.3,1.6,1.3.7,2.3,1.4,3.2,2.1s1.6,1.7,2.2,2.8c.6,1.1,1,2.5,1,4.2s-.2,2.5-.7,3.8c-.5,1.2-1.2,2.4-2.2,3.4s-2.4,1.8-4,2.4c-1.7.6-3.7.9-6.1.9Z"/>
<path d="M232.1,153.7v-35.4h11.1c5.5,0,9.7,1.5,12.4,4.4,2.8,3,4.2,7.4,4.2,13.2s-1.4,10.3-4.2,13.2c-2.8,3-6.9,4.5-12.4,4.5h-11.1ZM235.9,150h7c4.5,0,7.8-1.1,9.9-3.4,2-2.3,3.1-5.8,3.1-10.7s-1-8.4-3.1-10.7c-2-2.3-5.3-3.4-9.9-3.4h-7v28.2Z"/>
<path d="M291.9,154.4c-.8,0-1.7-.1-2.6-.3-1-.2-1.9-.5-2.8-.8-.9-.3-1.7-.7-2.4-1l1.3-1.3v14.2h-3.8v-33.2c0-1.1.3-2,1-2.7.7-.7,1.6-1.2,2.7-1.6,1.1-.4,2.3-.6,3.5-.8,1.2-.2,2.4-.2,3.5-.2,2.1,0,4.1.4,6,1.3,1.9.9,3.4,2.4,4.6,4.5s1.7,5,1.7,8.6-.5,5.1-1.5,7.1c-1,2-2.4,3.5-4.3,4.6-1.9,1.1-4.2,1.6-6.9,1.6ZM291.9,150.9c1.9,0,3.5-.4,4.8-1.2,1.3-.8,2.2-2,2.8-3.5.6-1.5,1-3.2,1-5.1s-.2-3.7-.6-5.4c-.4-1.7-1.2-3-2.4-4-1.2-1-3-1.5-5.2-1.5s-3.4.2-4.8.6c-1.4.4-2,1-2,1.8v16.4c1.1.6,2.2,1.1,3.3,1.4s2.2.5,3.3.5Z"/>
<path d="M311.1,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1c-.8,0-1.6.2-2.4.3-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M330.5,122.5v-4.2h4.2v4.2h-4.2ZM330.8,153.7v-26.4h3.8v26.4h-3.8Z"/>
<path d="M342.7,129.3c.8-.4,1.7-.8,2.6-1.1.9-.3,1.8-.6,2.8-.8.9-.2,1.9-.4,2.9-.5,1-.1,2-.2,2.9-.2,2.6,0,4.6.4,6.1,1.1,1.5.8,2.6,1.9,3.3,3.3.7,1.4,1,3.2,1,5.2v17.2h-3.8v-17.2c0-.6,0-1.3-.2-2-.2-.7-.5-1.4-.9-2-.5-.7-1.2-1.2-2.1-1.6s-2.2-.6-3.8-.6-2.2,0-3.4.3-2.4.4-3.6.8v22.4h-3.8v-24.3Z"/>
<path d="M380.7,154.1c-1.9,0-3.4-.6-4.7-1.7-1.3-1.1-1.9-2.9-1.9-5.1v-16.5h-4.6v-3.5h4.6v-7.5h3.8v7.5h6.8v3.5h-6.8v15.3c0,1.5.2,2.6.7,3.3s1.4,1.1,2.8,1.1,1.3,0,1.9-.2,1.1-.3,1.5-.5v3.6c-.5.2-1.1.3-1.9.5s-1.5.2-2.1.2Z"/>
<path d="M402,154.4c-2.5,0-4.7-.5-6.5-1.6-1.8-1-3.3-2.6-4.2-4.7-1-2.1-1.5-4.7-1.5-7.8,0-4.6,1-8,3.1-10.3,2.1-2.3,4.9-3.4,8.5-3.4s5.1.6,6.8,1.9c1.7,1.3,2.9,3,3.7,5.1.7,2.2,1.1,4.6,1.1,7.3h-21.3l.3-3.5h18.5l-1.5.5c-.1-2.6-.8-4.6-2-5.9-1.2-1.3-3.1-2-5.6-2s-3.2.3-4.3,1c-1.1.6-2,1.7-2.6,3.3s-.8,3.8-.8,6.6.8,5.7,2.3,7.3c1.5,1.7,3.6,2.5,6.3,2.5s2.5,0,3.6-.3,2.1-.5,3-.8c.9-.4,1.7-.7,2.4-1.2v3.9c-1.3.6-2.7,1.1-4.2,1.4-1.5.3-3.2.5-5.1.5Z"/>
<path d="M419.5,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1-1.6.2-2.4.3c-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M446.4,154.4c-1.9,0-3.5-.2-4.8-.6s-2.6-.9-4-1.6v-4c1.1.6,2.1,1.1,2.9,1.5s1.7.7,2.6.9c.9.2,1.9.3,3,.3,1.8,0,3.2-.4,4.3-1.2,1.1-.8,1.7-1.8,1.7-3s-.3-1.7-.8-2.3-1.2-1-2.1-1.3c-.8-.4-1.7-.7-2.7-1.1-1-.3-2.1-.6-3.1-.9-1-.3-2-.8-2.9-1.3-.9-.5-1.6-1.3-2.1-2.1-.5-.9-.8-2-.8-3.4s.3-2.5.8-3.4c.5-1,1.3-1.7,2.1-2.4.9-.6,1.9-1.1,3-1.4,1.1-.3,2.2-.4,3.3-.4,1.6,0,2.9.2,4.1.6,1.1.4,2.3.9,3.5,1.4v3.8c-1.3-.7-2.5-1.3-3.6-1.7-1.1-.4-2.3-.7-3.8-.7s-2.7.3-3.9.9c-1.1.6-1.7,1.5-1.7,2.7s.3,1.8.9,2.4,1.4,1,2.3,1.4c1,.3,2,.7,3.1,1,.9.3,1.8.6,2.8.9,1,.3,1.8.8,2.7,1.3.8.5,1.5,1.3,2,2.1.5.9.8,2,.8,3.4s-.5,3.4-1.4,4.6-2.2,2.1-3.6,2.7c-1.5.6-3,.8-4.5.8Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="a" xmlns="http://www.w3.org/2000/svg" width="180.62mm" height="180.62mm" viewBox="0 0 300 400" xmlns:c2pa="http://c2pa.org/manifest">
<rect x="0" y="0" width="300" height="400" fill="none"/>
<g fill="#ffffff" transform="translate(3,365) scale(0.13)">
<g>
<path d="M139.4.8l-.2,62c-34.3,0-63.4,21.8-73.2,51.9C26.4,141,.2,187.8.2,241.3H0l.2-101.3C.2,63.1,62.4.8,139.4.8Z"/>
<path d="M139.1,92.5l-.8,62.5c-42.6,0-77.1,38.6-77.1,86.3l1-103.9c0-7.9,1.3-15.5,3.6-22.7,21.2-14.1,46.3-22.3,73.2-22.3Z"/>
<path d="M65.9,114.7c-2.3,7.2-3.6,14.8-3.6,22.7l-1,103.9H.2c0-53.5,26.3-100.3,65.7-126.6Z"/>
</g>
<polygon points="202.8 .4 202.8 92.9 226.2 92.9 226.2 56 259.8 56 259.8 36.1 226.2 36.1 226.2 19.4 265.7 19.4 265.7 0 202.8 .4"/>
<polygon points="282.3 -.3 282.3 93 346.1 93 346.1 72.4 306.8 72.4 306.8 55.6 341.7 55.6 341.7 36.4 306.5 36.4 306.5 19.6 346.2 19.6 346.2 -.3 282.3 -.3"/>
<polygon points="365.9 92.8 429.5 92.8 429.5 70.9 389.6 70.9 389.6 .2 365 .2 365.9 92.8"/>
<polygon points="448 0 471.9 0 471.9 92.5 447.5 92.5 448 0"/>
<path d="M485.1,92.5s34.7-44.3,33.4-46.5S485.7,0,485.7,0h29l18.4,24.8L550.1,0h26.6l-29.9,45.4,33.1,46.8h-28.8l-19.3-27.4-18.9,28.1-27.9-.4Z"/>
<g>
<path d="M210.9,154.1c-1.9,0-3.7-.2-5.3-.7-1.6-.4-3-1-4.2-1.6v-3.9c1.1.6,2.4,1.1,3.9,1.6,1.5.5,3.2.7,5.1.7,3.1,0,5.5-.6,7.2-1.7,1.7-1.2,2.5-2.8,2.5-5s-.8-3.9-2.5-5c-1.7-1.2-4.2-1.7-7.4-1.7h-3.9v-3.7h4c2.6,0,4.5-.5,5.9-1.5,1.4-1,2-2.4,2-4.2s-.3-2.3-1-3.1c-.6-.8-1.6-1.5-2.8-1.9-1.3-.4-2.8-.7-4.6-.7s-3,.2-4.3.6c-1.3.4-2.4.8-3.3,1.3v-3.9c1.1-.5,2.3-.9,3.6-1.3,1.3-.4,2.8-.5,4.5-.5s4,.3,5.5.8c1.5.5,2.7,1.3,3.6,2.2.9.9,1.6,1.9,2,3.1.4,1.1.6,2.3.6,3.4s-.2,2.4-.7,3.3c-.5.9-1,1.7-1.6,2.2-.6.6-1.4,1.1-2.3,1.6,1.3.7,2.3,1.4,3.2,2.1s1.6,1.7,2.2,2.8c.6,1.1,1,2.5,1,4.2s-.2,2.5-.7,3.8c-.5,1.2-1.2,2.4-2.2,3.4s-2.4,1.8-4,2.4c-1.7.6-3.7.9-6.1.9Z"/>
<path d="M232.1,153.7v-35.4h11.1c5.5,0,9.7,1.5,12.4,4.4,2.8,3,4.2,7.4,4.2,13.2s-1.4,10.3-4.2,13.2c-2.8,3-6.9,4.5-12.4,4.5h-11.1ZM235.9,150h7c4.5,0,7.8-1.1,9.9-3.4,2-2.3,3.1-5.8,3.1-10.7s-1-8.4-3.1-10.7c-2-2.3-5.3-3.4-9.9-3.4h-7v28.2Z"/>
<path d="M291.9,154.4c-.8,0-1.7-.1-2.6-.3-1-.2-1.9-.5-2.8-.8-.9-.3-1.7-.7-2.4-1l1.3-1.3v14.2h-3.8v-33.2c0-1.1.3-2,1-2.7.7-.7,1.6-1.2,2.7-1.6,1.1-.4,2.3-.6,3.5-.8,1.2-.2,2.4-.2,3.5-.2,2.1,0,4.1.4,6,1.3,1.9.9,3.4,2.4,4.6,4.5s1.7,5,1.7,8.6-.5,5.1-1.5,7.1c-1,2-2.4,3.5-4.3,4.6-1.9,1.1-4.2,1.6-6.9,1.6ZM291.9,150.9c1.9,0,3.5-.4,4.8-1.2,1.3-.8,2.2-2,2.8-3.5.6-1.5,1-3.2,1-5.1s-.2-3.7-.6-5.4c-.4-1.7-1.2-3-2.4-4-1.2-1-3-1.5-5.2-1.5s-3.4.2-4.8.6c-1.4.4-2,1-2,1.8v16.4c1.1.6,2.2,1.1,3.3,1.4s2.2.5,3.3.5Z"/>
<path d="M311.1,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1c-.8,0-1.6.2-2.4.3-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M330.5,122.5v-4.2h4.2v4.2h-4.2ZM330.8,153.7v-26.4h3.8v26.4h-3.8Z"/>
<path d="M342.7,129.3c.8-.4,1.7-.8,2.6-1.1.9-.3,1.8-.6,2.8-.8.9-.2,1.9-.4,2.9-.5,1-.1,2-.2,2.9-.2,2.6,0,4.6.4,6.1,1.1,1.5.8,2.6,1.9,3.3,3.3.7,1.4,1,3.2,1,5.2v17.2h-3.8v-17.2c0-.6,0-1.3-.2-2-.2-.7-.5-1.4-.9-2-.5-.7-1.2-1.2-2.1-1.6s-2.2-.6-3.8-.6-2.2,0-3.4.3-2.4.4-3.6.8v22.4h-3.8v-24.3Z"/>
<path d="M380.7,154.1c-1.9,0-3.4-.6-4.7-1.7-1.3-1.1-1.9-2.9-1.9-5.1v-16.5h-4.6v-3.5h4.6v-7.5h3.8v7.5h6.8v3.5h-6.8v15.3c0,1.5.2,2.6.7,3.3s1.4,1.1,2.8,1.1,1.3,0,1.9-.2,1.1-.3,1.5-.5v3.6c-.5.2-1.1.3-1.9.5s-1.5.2-2.1.2Z"/>
<path d="M402,154.4c-2.5,0-4.7-.5-6.5-1.6-1.8-1-3.3-2.6-4.2-4.7-1-2.1-1.5-4.7-1.5-7.8,0-4.6,1-8,3.1-10.3,2.1-2.3,4.9-3.4,8.5-3.4s5.1.6,6.8,1.9c1.7,1.3,2.9,3,3.7,5.1.7,2.2,1.1,4.6,1.1,7.3h-21.3l.3-3.5h18.5l-1.5.5c-.1-2.6-.8-4.6-2-5.9-1.2-1.3-3.1-2-5.6-2s-3.2.3-4.3,1c-1.1.6-2,1.7-2.6,3.3s-.8,3.8-.8,6.6.8,5.7,2.3,7.3c1.5,1.7,3.6,2.5,6.3,2.5s2.5,0,3.6-.3,2.1-.5,3-.8c.9-.4,1.7-.7,2.4-1.2v3.9c-1.3.6-2.7,1.1-4.2,1.4-1.5.3-3.2.5-5.1.5Z"/>
<path d="M419.5,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1-1.6.2-2.4.3c-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M446.4,154.4c-1.9,0-3.5-.2-4.8-.6s-2.6-.9-4-1.6v-4c1.1.6,2.1,1.1,2.9,1.5s1.7.7,2.6.9c.9.2,1.9.3,3,.3,1.8,0,3.2-.4,4.3-1.2,1.1-.8,1.7-1.8,1.7-3s-.3-1.7-.8-2.3-1.2-1-2.1-1.3c-.8-.4-1.7-.7-2.7-1.1-1-.3-2.1-.6-3.1-.9-1-.3-2-.8-2.9-1.3-.9-.5-1.6-1.3-2.1-2.1-.5-.9-.8-2-.8-3.4s.3-2.5.8-3.4c.5-1,1.3-1.7,2.1-2.4.9-.6,1.9-1.1,3-1.4,1.1-.3,2.2-.4,3.3-.4,1.6,0,2.9.2,4.1.6,1.1.4,2.3.9,3.5,1.4v3.8c-1.3-.7-2.5-1.3-3.6-1.7-1.1-.4-2.3-.7-3.8-.7s-2.7.3-3.9.9c-1.1.6-1.7,1.5-1.7,2.7s.3,1.8.9,2.4,1.4,1,2.3,1.4c1,.3,2,.7,3.1,1,.9.3,1.8.6,2.8.9,1,.3,1.8.8,2.7,1.3.8.5,1.5,1.3,2,2.1.5.9.8,2,.8,3.4s-.5,3.4-1.4,4.6-2.2,2.1-3.6,2.7c-1.5.6-3,.8-4.5.8Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="a" xmlns="http://www.w3.org/2000/svg" width="180.62mm" height="180.62mm" viewBox="0 0 235 244" xmlns:c2pa="http://c2pa.org/manifest">
<rect x="0" y="0" width="235" height="244" fill="none"/>
<g fill="#ffffff" transform="translate(2,215) scale(0.1)">
<g>
<path d="M139.4.8l-.2,62c-34.3,0-63.4,21.8-73.2,51.9C26.4,141,.2,187.8.2,241.3H0l.2-101.3C.2,63.1,62.4.8,139.4.8Z"/>
<path d="M139.1,92.5l-.8,62.5c-42.6,0-77.1,38.6-77.1,86.3l1-103.9c0-7.9,1.3-15.5,3.6-22.7,21.2-14.1,46.3-22.3,73.2-22.3Z"/>
<path d="M65.9,114.7c-2.3,7.2-3.6,14.8-3.6,22.7l-1,103.9H.2c0-53.5,26.3-100.3,65.7-126.6Z"/>
</g>
<polygon points="202.8 .4 202.8 92.9 226.2 92.9 226.2 56 259.8 56 259.8 36.1 226.2 36.1 226.2 19.4 265.7 19.4 265.7 0 202.8 .4"/>
<polygon points="282.3 -.3 282.3 93 346.1 93 346.1 72.4 306.8 72.4 306.8 55.6 341.7 55.6 341.7 36.4 306.5 36.4 306.5 19.6 346.2 19.6 346.2 -.3 282.3 -.3"/>
<polygon points="365.9 92.8 429.5 92.8 429.5 70.9 389.6 70.9 389.6 .2 365 .2 365.9 92.8"/>
<polygon points="448 0 471.9 0 471.9 92.5 447.5 92.5 448 0"/>
<path d="M485.1,92.5s34.7-44.3,33.4-46.5S485.7,0,485.7,0h29l18.4,24.8L550.1,0h26.6l-29.9,45.4,33.1,46.8h-28.8l-19.3-27.4-18.9,28.1-27.9-.4Z"/>
<g>
<path d="M210.9,154.1c-1.9,0-3.7-.2-5.3-.7-1.6-.4-3-1-4.2-1.6v-3.9c1.1.6,2.4,1.1,3.9,1.6,1.5.5,3.2.7,5.1.7,3.1,0,5.5-.6,7.2-1.7,1.7-1.2,2.5-2.8,2.5-5s-.8-3.9-2.5-5c-1.7-1.2-4.2-1.7-7.4-1.7h-3.9v-3.7h4c2.6,0,4.5-.5,5.9-1.5,1.4-1,2-2.4,2-4.2s-.3-2.3-1-3.1c-.6-.8-1.6-1.5-2.8-1.9-1.3-.4-2.8-.7-4.6-.7s-3,.2-4.3.6c-1.3.4-2.4.8-3.3,1.3v-3.9c1.1-.5,2.3-.9,3.6-1.3,1.3-.4,2.8-.5,4.5-.5s4,.3,5.5.8c1.5.5,2.7,1.3,3.6,2.2.9.9,1.6,1.9,2,3.1.4,1.1.6,2.3.6,3.4s-.2,2.4-.7,3.3c-.5.9-1,1.7-1.6,2.2-.6.6-1.4,1.1-2.3,1.6,1.3.7,2.3,1.4,3.2,2.1s1.6,1.7,2.2,2.8c.6,1.1,1,2.5,1,4.2s-.2,2.5-.7,3.8c-.5,1.2-1.2,2.4-2.2,3.4s-2.4,1.8-4,2.4c-1.7.6-3.7.9-6.1.9Z"/>
<path d="M232.1,153.7v-35.4h11.1c5.5,0,9.7,1.5,12.4,4.4,2.8,3,4.2,7.4,4.2,13.2s-1.4,10.3-4.2,13.2c-2.8,3-6.9,4.5-12.4,4.5h-11.1ZM235.9,150h7c4.5,0,7.8-1.1,9.9-3.4,2-2.3,3.1-5.8,3.1-10.7s-1-8.4-3.1-10.7c-2-2.3-5.3-3.4-9.9-3.4h-7v28.2Z"/>
<path d="M291.9,154.4c-.8,0-1.7-.1-2.6-.3-1-.2-1.9-.5-2.8-.8-.9-.3-1.7-.7-2.4-1l1.3-1.3v14.2h-3.8v-33.2c0-1.1.3-2,1-2.7.7-.7,1.6-1.2,2.7-1.6,1.1-.4,2.3-.6,3.5-.8,1.2-.2,2.4-.2,3.5-.2,2.1,0,4.1.4,6,1.3,1.9.9,3.4,2.4,4.6,4.5s1.7,5,1.7,8.6-.5,5.1-1.5,7.1c-1,2-2.4,3.5-4.3,4.6-1.9,1.1-4.2,1.6-6.9,1.6ZM291.9,150.9c1.9,0,3.5-.4,4.8-1.2,1.3-.8,2.2-2,2.8-3.5.6-1.5,1-3.2,1-5.1s-.2-3.7-.6-5.4c-.4-1.7-1.2-3-2.4-4-1.2-1-3-1.5-5.2-1.5s-3.4.2-4.8.6c-1.4.4-2,1-2,1.8v16.4c1.1.6,2.2,1.1,3.3,1.4s2.2.5,3.3.5Z"/>
<path d="M311.1,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1c-.8,0-1.6.2-2.4.3-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M330.5,122.5v-4.2h4.2v4.2h-4.2ZM330.8,153.7v-26.4h3.8v26.4h-3.8Z"/>
<path d="M342.7,129.3c.8-.4,1.7-.8,2.6-1.1.9-.3,1.8-.6,2.8-.8.9-.2,1.9-.4,2.9-.5,1-.1,2-.2,2.9-.2,2.6,0,4.6.4,6.1,1.1,1.5.8,2.6,1.9,3.3,3.3.7,1.4,1,3.2,1,5.2v17.2h-3.8v-17.2c0-.6,0-1.3-.2-2-.2-.7-.5-1.4-.9-2-.5-.7-1.2-1.2-2.1-1.6s-2.2-.6-3.8-.6-2.2,0-3.4.3-2.4.4-3.6.8v22.4h-3.8v-24.3Z"/>
<path d="M380.7,154.1c-1.9,0-3.4-.6-4.7-1.7-1.3-1.1-1.9-2.9-1.9-5.1v-16.5h-4.6v-3.5h4.6v-7.5h3.8v7.5h6.8v3.5h-6.8v15.3c0,1.5.2,2.6.7,3.3s1.4,1.1,2.8,1.1,1.3,0,1.9-.2,1.1-.3,1.5-.5v3.6c-.5.2-1.1.3-1.9.5s-1.5.2-2.1.2Z"/>
<path d="M402,154.4c-2.5,0-4.7-.5-6.5-1.6-1.8-1-3.3-2.6-4.2-4.7-1-2.1-1.5-4.7-1.5-7.8,0-4.6,1-8,3.1-10.3,2.1-2.3,4.9-3.4,8.5-3.4s5.1.6,6.8,1.9c1.7,1.3,2.9,3,3.7,5.1.7,2.2,1.1,4.6,1.1,7.3h-21.3l.3-3.5h18.5l-1.5.5c-.1-2.6-.8-4.6-2-5.9-1.2-1.3-3.1-2-5.6-2s-3.2.3-4.3,1c-1.1.6-2,1.7-2.6,3.3s-.8,3.8-.8,6.6.8,5.7,2.3,7.3c1.5,1.7,3.6,2.5,6.3,2.5s2.5,0,3.6-.3,2.1-.5,3-.8c.9-.4,1.7-.7,2.4-1.2v3.9c-1.3.6-2.7,1.1-4.2,1.4-1.5.3-3.2.5-5.1.5Z"/>
<path d="M419.5,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1-1.6.2-2.4.3c-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M446.4,154.4c-1.9,0-3.5-.2-4.8-.6s-2.6-.9-4-1.6v-4c1.1.6,2.1,1.1,2.9,1.5s1.7.7,2.6.9c.9.2,1.9.3,3,.3,1.8,0,3.2-.4,4.3-1.2,1.1-.8,1.7-1.8,1.7-3s-.3-1.7-.8-2.3-1.2-1-2.1-1.3c-.8-.4-1.7-.7-2.7-1.1-1-.3-2.1-.6-3.1-.9-1-.3-2-.8-2.9-1.3-.9-.5-1.6-1.3-2.1-2.1-.5-.9-.8-2-.8-3.4s.3-2.5.8-3.4c.5-1,1.3-1.7,2.1-2.4.9-.6,1.9-1.1,3-1.4,1.1-.3,2.2-.4,3.3-.4,1.6,0,2.9.2,4.1.6,1.1.4,2.3.9,3.5,1.4v3.8c-1.3-.7-2.5-1.3-3.6-1.7-1.1-.4-2.3-.7-3.8-.7s-2.7.3-3.9.9c-1.1.6-1.7,1.5-1.7,2.7s.3,1.8.9,2.4,1.4,1,2.3,1.4c1,.3,2,.7,3.1,1,.9.3,1.8.6,2.8.9,1,.3,1.8.8,2.7,1.3.8.5,1.5,1.3,2,2.1.5.9.8,2,.8,3.4s-.5,3.4-1.4,4.6-2.2,2.1-3.6,2.7c-1.5.6-3,.8-4.5.8Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="a" xmlns="http://www.w3.org/2000/svg" width="180.62mm" height="180.62mm" viewBox="0 0 600 400" xmlns:c2pa="http://c2pa.org/manifest">
<rect x="0" y="0" width="600" height="400" fill="none"/>
<g fill="#ffffff" transform="translate(4,357) scale(0.16)">
<g>
<path d="M139.4.8l-.2,62c-34.3,0-63.4,21.8-73.2,51.9C26.4,141,.2,187.8.2,241.3H0l.2-101.3C.2,63.1,62.4.8,139.4.8Z"/>
<path d="M139.1,92.5l-.8,62.5c-42.6,0-77.1,38.6-77.1,86.3l1-103.9c0-7.9,1.3-15.5,3.6-22.7,21.2-14.1,46.3-22.3,73.2-22.3Z"/>
<path d="M65.9,114.7c-2.3,7.2-3.6,14.8-3.6,22.7l-1,103.9H.2c0-53.5,26.3-100.3,65.7-126.6Z"/>
</g>
<polygon points="202.8 .4 202.8 92.9 226.2 92.9 226.2 56 259.8 56 259.8 36.1 226.2 36.1 226.2 19.4 265.7 19.4 265.7 0 202.8 .4"/>
<polygon points="282.3 -.3 282.3 93 346.1 93 346.1 72.4 306.8 72.4 306.8 55.6 341.7 55.6 341.7 36.4 306.5 36.4 306.5 19.6 346.2 19.6 346.2 -.3 282.3 -.3"/>
<polygon points="365.9 92.8 429.5 92.8 429.5 70.9 389.6 70.9 389.6 .2 365 .2 365.9 92.8"/>
<polygon points="448 0 471.9 0 471.9 92.5 447.5 92.5 448 0"/>
<path d="M485.1,92.5s34.7-44.3,33.4-46.5S485.7,0,485.7,0h29l18.4,24.8L550.1,0h26.6l-29.9,45.4,33.1,46.8h-28.8l-19.3-27.4-18.9,28.1-27.9-.4Z"/>
<g>
<path d="M210.9,154.1c-1.9,0-3.7-.2-5.3-.7-1.6-.4-3-1-4.2-1.6v-3.9c1.1.6,2.4,1.1,3.9,1.6,1.5.5,3.2.7,5.1.7,3.1,0,5.5-.6,7.2-1.7,1.7-1.2,2.5-2.8,2.5-5s-.8-3.9-2.5-5c-1.7-1.2-4.2-1.7-7.4-1.7h-3.9v-3.7h4c2.6,0,4.5-.5,5.9-1.5,1.4-1,2-2.4,2-4.2s-.3-2.3-1-3.1c-.6-.8-1.6-1.5-2.8-1.9-1.3-.4-2.8-.7-4.6-.7s-3,.2-4.3.6c-1.3.4-2.4.8-3.3,1.3v-3.9c1.1-.5,2.3-.9,3.6-1.3,1.3-.4,2.8-.5,4.5-.5s4,.3,5.5.8c1.5.5,2.7,1.3,3.6,2.2.9.9,1.6,1.9,2,3.1.4,1.1.6,2.3.6,3.4s-.2,2.4-.7,3.3c-.5.9-1,1.7-1.6,2.2-.6.6-1.4,1.1-2.3,1.6,1.3.7,2.3,1.4,3.2,2.1s1.6,1.7,2.2,2.8c.6,1.1,1,2.5,1,4.2s-.2,2.5-.7,3.8c-.5,1.2-1.2,2.4-2.2,3.4s-2.4,1.8-4,2.4c-1.7.6-3.7.9-6.1.9Z"/>
<path d="M232.1,153.7v-35.4h11.1c5.5,0,9.7,1.5,12.4,4.4,2.8,3,4.2,7.4,4.2,13.2s-1.4,10.3-4.2,13.2c-2.8,3-6.9,4.5-12.4,4.5h-11.1ZM235.9,150h7c4.5,0,7.8-1.1,9.9-3.4,2-2.3,3.1-5.8,3.1-10.7s-1-8.4-3.1-10.7c-2-2.3-5.3-3.4-9.9-3.4h-7v28.2Z"/>
<path d="M291.9,154.4c-.8,0-1.7-.1-2.6-.3-1-.2-1.9-.5-2.8-.8-.9-.3-1.7-.7-2.4-1l1.3-1.3v14.2h-3.8v-33.2c0-1.1.3-2,1-2.7.7-.7,1.6-1.2,2.7-1.6,1.1-.4,2.3-.6,3.5-.8,1.2-.2,2.4-.2,3.5-.2,2.1,0,4.1.4,6,1.3,1.9.9,3.4,2.4,4.6,4.5s1.7,5,1.7,8.6-.5,5.1-1.5,7.1c-1,2-2.4,3.5-4.3,4.6-1.9,1.1-4.2,1.6-6.9,1.6ZM291.9,150.9c1.9,0,3.5-.4,4.8-1.2,1.3-.8,2.2-2,2.8-3.5.6-1.5,1-3.2,1-5.1s-.2-3.7-.6-5.4c-.4-1.7-1.2-3-2.4-4-1.2-1-3-1.5-5.2-1.5s-3.4.2-4.8.6c-1.4.4-2,1-2,1.8v16.4c1.1.6,2.2,1.1,3.3,1.4s2.2.5,3.3.5Z"/>
<path d="M311.1,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1c-.8,0-1.6.2-2.4.3-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M330.5,122.5v-4.2h4.2v4.2h-4.2ZM330.8,153.7v-26.4h3.8v26.4h-3.8Z"/>
<path d="M342.7,129.3c.8-.4,1.7-.8,2.6-1.1.9-.3,1.8-.6,2.8-.8.9-.2,1.9-.4,2.9-.5,1-.1,2-.2,2.9-.2,2.6,0,4.6.4,6.1,1.1,1.5.8,2.6,1.9,3.3,3.3.7,1.4,1,3.2,1,5.2v17.2h-3.8v-17.2c0-.6,0-1.3-.2-2-.2-.7-.5-1.4-.9-2-.5-.7-1.2-1.2-2.1-1.6s-2.2-.6-3.8-.6-2.2,0-3.4.3-2.4.4-3.6.8v22.4h-3.8v-24.3Z"/>
<path d="M380.7,154.1c-1.9,0-3.4-.6-4.7-1.7-1.3-1.1-1.9-2.9-1.9-5.1v-16.5h-4.6v-3.5h4.6v-7.5h3.8v7.5h6.8v3.5h-6.8v15.3c0,1.5.2,2.6.7,3.3s1.4,1.1,2.8,1.1,1.3,0,1.9-.2,1.1-.3,1.5-.5v3.6c-.5.2-1.1.3-1.9.5s-1.5.2-2.1.2Z"/>
<path d="M402,154.4c-2.5,0-4.7-.5-6.5-1.6-1.8-1-3.3-2.6-4.2-4.7-1-2.1-1.5-4.7-1.5-7.8,0-4.6,1-8,3.1-10.3,2.1-2.3,4.9-3.4,8.5-3.4s5.1.6,6.8,1.9c1.7,1.3,2.9,3,3.7,5.1.7,2.2,1.1,4.6,1.1,7.3h-21.3l.3-3.5h18.5l-1.5.5c-.1-2.6-.8-4.6-2-5.9-1.2-1.3-3.1-2-5.6-2s-3.2.3-4.3,1c-1.1.6-2,1.7-2.6,3.3s-.8,3.8-.8,6.6.8,5.7,2.3,7.3c1.5,1.7,3.6,2.5,6.3,2.5s2.5,0,3.6-.3,2.1-.5,3-.8c.9-.4,1.7-.7,2.4-1.2v3.9c-1.3.6-2.7,1.1-4.2,1.4-1.5.3-3.2.5-5.1.5Z"/>
<path d="M419.5,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1-1.6.2-2.4.3c-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M446.4,154.4c-1.9,0-3.5-.2-4.8-.6s-2.6-.9-4-1.6v-4c1.1.6,2.1,1.1,2.9,1.5s1.7.7,2.6.9c.9.2,1.9.3,3,.3,1.8,0,3.2-.4,4.3-1.2,1.1-.8,1.7-1.8,1.7-3s-.3-1.7-.8-2.3-1.2-1-2.1-1.3c-.8-.4-1.7-.7-2.7-1.1-1-.3-2.1-.6-3.1-.9-1-.3-2-.8-2.9-1.3-.9-.5-1.6-1.3-2.1-2.1-.5-.9-.8-2-.8-3.4s.3-2.5.8-3.4c.5-1,1.3-1.7,2.1-2.4.9-.6,1.9-1.1,3-1.4,1.1-.3,2.2-.4,3.3-.4,1.6,0,2.9.2,4.1.6,1.1.4,2.3.9,3.5,1.4v3.8c-1.3-.7-2.5-1.3-3.6-1.7-1.1-.4-2.3-.7-3.8-.7s-2.7.3-3.9.9c-1.1.6-1.7,1.5-1.7,2.7s.3,1.8.9,2.4,1.4,1,2.3,1.4c1,.3,2,.7,3.1,1,.9.3,1.8.6,2.8.9,1,.3,1.8.8,2.7,1.3.8.5,1.5,1.3,2,2.1.5.9.8,2,.8,3.4s-.5,3.4-1.4,4.6-2.2,2.1-3.6,2.7c-1.5.6-3,.8-4.5.8Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="a" xmlns="http://www.w3.org/2000/svg" width="180.62mm" height="180.62mm" viewBox="0 0 205 255" xmlns:c2pa="http://c2pa.org/manifest">
<rect x="0" y="0" width="205" height="255" fill="none"/>
<g fill="#ffffff" transform="translate(3,228) scale(0.1)">
<g>
<path d="M139.4.8l-.2,62c-34.3,0-63.4,21.8-73.2,51.9C26.4,141,.2,187.8.2,241.3H0l.2-101.3C.2,63.1,62.4.8,139.4.8Z"/>
<path d="M139.1,92.5l-.8,62.5c-42.6,0-77.1,38.6-77.1,86.3l1-103.9c0-7.9,1.3-15.5,3.6-22.7,21.2-14.1,46.3-22.3,73.2-22.3Z"/>
<path d="M65.9,114.7c-2.3,7.2-3.6,14.8-3.6,22.7l-1,103.9H.2c0-53.5,26.3-100.3,65.7-126.6Z"/>
</g>
<polygon points="202.8 .4 202.8 92.9 226.2 92.9 226.2 56 259.8 56 259.8 36.1 226.2 36.1 226.2 19.4 265.7 19.4 265.7 0 202.8 .4"/>
<polygon points="282.3 -.3 282.3 93 346.1 93 346.1 72.4 306.8 72.4 306.8 55.6 341.7 55.6 341.7 36.4 306.5 36.4 306.5 19.6 346.2 19.6 346.2 -.3 282.3 -.3"/>
<polygon points="365.9 92.8 429.5 92.8 429.5 70.9 389.6 70.9 389.6 .2 365 .2 365.9 92.8"/>
<polygon points="448 0 471.9 0 471.9 92.5 447.5 92.5 448 0"/>
<path d="M485.1,92.5s34.7-44.3,33.4-46.5S485.7,0,485.7,0h29l18.4,24.8L550.1,0h26.6l-29.9,45.4,33.1,46.8h-28.8l-19.3-27.4-18.9,28.1-27.9-.4Z"/>
<g>
<path d="M210.9,154.1c-1.9,0-3.7-.2-5.3-.7-1.6-.4-3-1-4.2-1.6v-3.9c1.1.6,2.4,1.1,3.9,1.6,1.5.5,3.2.7,5.1.7,3.1,0,5.5-.6,7.2-1.7,1.7-1.2,2.5-2.8,2.5-5s-.8-3.9-2.5-5c-1.7-1.2-4.2-1.7-7.4-1.7h-3.9v-3.7h4c2.6,0,4.5-.5,5.9-1.5,1.4-1,2-2.4,2-4.2s-.3-2.3-1-3.1c-.6-.8-1.6-1.5-2.8-1.9-1.3-.4-2.8-.7-4.6-.7s-3,.2-4.3.6c-1.3.4-2.4.8-3.3,1.3v-3.9c1.1-.5,2.3-.9,3.6-1.3,1.3-.4,2.8-.5,4.5-.5s4,.3,5.5.8c1.5.5,2.7,1.3,3.6,2.2.9.9,1.6,1.9,2,3.1.4,1.1.6,2.3.6,3.4s-.2,2.4-.7,3.3c-.5.9-1,1.7-1.6,2.2-.6.6-1.4,1.1-2.3,1.6,1.3.7,2.3,1.4,3.2,2.1s1.6,1.7,2.2,2.8c.6,1.1,1,2.5,1,4.2s-.2,2.5-.7,3.8c-.5,1.2-1.2,2.4-2.2,3.4s-2.4,1.8-4,2.4c-1.7.6-3.7.9-6.1.9Z"/>
<path d="M232.1,153.7v-35.4h11.1c5.5,0,9.7,1.5,12.4,4.4,2.8,3,4.2,7.4,4.2,13.2s-1.4,10.3-4.2,13.2c-2.8,3-6.9,4.5-12.4,4.5h-11.1ZM235.9,150h7c4.5,0,7.8-1.1,9.9-3.4,2-2.3,3.1-5.8,3.1-10.7s-1-8.4-3.1-10.7c-2-2.3-5.3-3.4-9.9-3.4h-7v28.2Z"/>
<path d="M291.9,154.4c-.8,0-1.7-.1-2.6-.3-1-.2-1.9-.5-2.8-.8-.9-.3-1.7-.7-2.4-1l1.3-1.3v14.2h-3.8v-33.2c0-1.1.3-2,1-2.7.7-.7,1.6-1.2,2.7-1.6,1.1-.4,2.3-.6,3.5-.8,1.2-.2,2.4-.2,3.5-.2,2.1,0,4.1.4,6,1.3,1.9.9,3.4,2.4,4.6,4.5s1.7,5,1.7,8.6-.5,5.1-1.5,7.1c-1,2-2.4,3.5-4.3,4.6-1.9,1.1-4.2,1.6-6.9,1.6ZM291.9,150.9c1.9,0,3.5-.4,4.8-1.2,1.3-.8,2.2-2,2.8-3.5.6-1.5,1-3.2,1-5.1s-.2-3.7-.6-5.4c-.4-1.7-1.2-3-2.4-4-1.2-1-3-1.5-5.2-1.5s-3.4.2-4.8.6c-1.4.4-2,1-2,1.8v16.4c1.1.6,2.2,1.1,3.3,1.4s2.2.5,3.3.5Z"/>
<path d="M311.1,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1c-.8,0-1.6.2-2.4.3-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M330.5,122.5v-4.2h4.2v4.2h-4.2ZM330.8,153.7v-26.4h3.8v26.4h-3.8Z"/>
<path d="M342.7,129.3c.8-.4,1.7-.8,2.6-1.1.9-.3,1.8-.6,2.8-.8.9-.2,1.9-.4,2.9-.5,1-.1,2-.2,2.9-.2,2.6,0,4.6.4,6.1,1.1,1.5.8,2.6,1.9,3.3,3.3.7,1.4,1,3.2,1,5.2v17.2h-3.8v-17.2c0-.6,0-1.3-.2-2-.2-.7-.5-1.4-.9-2-.5-.7-1.2-1.2-2.1-1.6s-2.2-.6-3.8-.6-2.2,0-3.4.3-2.4.4-3.6.8v22.4h-3.8v-24.3Z"/>
<path d="M380.7,154.1c-1.9,0-3.4-.6-4.7-1.7-1.3-1.1-1.9-2.9-1.9-5.1v-16.5h-4.6v-3.5h4.6v-7.5h3.8v7.5h6.8v3.5h-6.8v15.3c0,1.5.2,2.6.7,3.3s1.4,1.1,2.8,1.1,1.3,0,1.9-.2,1.1-.3,1.5-.5v3.6c-.5.2-1.1.3-1.9.5s-1.5.2-2.1.2Z"/>
<path d="M402,154.4c-2.5,0-4.7-.5-6.5-1.6-1.8-1-3.3-2.6-4.2-4.7-1-2.1-1.5-4.7-1.5-7.8,0-4.6,1-8,3.1-10.3,2.1-2.3,4.9-3.4,8.5-3.4s5.1.6,6.8,1.9c1.7,1.3,2.9,3,3.7,5.1.7,2.2,1.1,4.6,1.1,7.3h-21.3l.3-3.5h18.5l-1.5.5c-.1-2.6-.8-4.6-2-5.9-1.2-1.3-3.1-2-5.6-2s-3.2.3-4.3,1c-1.1.6-2,1.7-2.6,3.3s-.8,3.8-.8,6.6.8,5.7,2.3,7.3c1.5,1.7,3.6,2.5,6.3,2.5s2.5,0,3.6-.3,2.1-.5,3-.8c.9-.4,1.7-.7,2.4-1.2v3.9c-1.3.6-2.7,1.1-4.2,1.4-1.5.3-3.2.5-5.1.5Z"/>
<path d="M419.5,153.7v-24.3c.4-.2,1.2-.5,2.5-.9,1.2-.4,2.7-.8,4.4-1.2,1.7-.4,3.5-.5,5.3-.5s.6,0,.8.1c.3,0,.6.1.8.2v3.4c-.9-.1-1.8-.2-2.7-.2s-1.7,0-2.5.1-1.6.2-2.4.3c-.8.1-1.6.3-2.4.4v22.5h-3.8Z"/>
<path d="M446.4,154.4c-1.9,0-3.5-.2-4.8-.6s-2.6-.9-4-1.6v-4c1.1.6,2.1,1.1,2.9,1.5s1.7.7,2.6.9c.9.2,1.9.3,3,.3,1.8,0,3.2-.4,4.3-1.2,1.1-.8,1.7-1.8,1.7-3s-.3-1.7-.8-2.3-1.2-1-2.1-1.3c-.8-.4-1.7-.7-2.7-1.1-1-.3-2.1-.6-3.1-.9-1-.3-2-.8-2.9-1.3-.9-.5-1.6-1.3-2.1-2.1-.5-.9-.8-2-.8-3.4s.3-2.5.8-3.4c.5-1,1.3-1.7,2.1-2.4.9-.6,1.9-1.1,3-1.4,1.1-.3,2.2-.4,3.3-.4,1.6,0,2.9.2,4.1.6,1.1.4,2.3.9,3.5,1.4v3.8c-1.3-.7-2.5-1.3-3.6-1.7-1.1-.4-2.3-.7-3.8-.7s-2.7.3-3.9.9c-1.1.6-1.7,1.5-1.7,2.7s.3,1.8.9,2.4,1.4,1,2.3,1.4c1,.3,2,.7,3.1,1,.9.3,1.8.6,2.8.9,1,.3,1.8.8,2.7,1.3.8.5,1.5,1.3,2,2.1.5.9.8,2,.8,3.4s-.5,3.4-1.4,4.6-2.2,2.1-3.6,2.7c-1.5.6-3,.8-4.5.8Z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 KiB

Binary file not shown.
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Plastic Syringe @0.50mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "IQnumbi0N4BnvMfO",
"filament_id": "OFAzgHcF",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 0.50mm nozzle",
"FELIX Food Double 0.50mm nozzle",
"FELIX Food Switch 0.50mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"3.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"6.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"7.2"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Plastic Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "p8CG6dHMUxNl7iPL",
"filament_id": "OFAzgHcF",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"3.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"6.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"27.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Plastic Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "s5uPS7I3E57tiRRC",
"filament_id": "OFAzgHcF",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"3.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"6.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"108.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Plastic Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "zlZtghh6ytU7N09m",
"filament_id": "OFAzgHcF",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"3.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"6.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"216.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Plastic Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "fvTZEcREMbs3JW1D",
"filament_id": "OFAzgHcF",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"3.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"6.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"6.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"432.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Stainless Steel Syringe @0.50mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "2XyqnzMqyuRCqpPq",
"filament_id": "OFqZSD1S",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 0.50mm nozzle",
"FELIX Food Double 0.50mm nozzle",
"FELIX Food Switch 0.50mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"1.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"2.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"7.2"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Stainless Steel Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "yNxVUGOb1kUbXLiw",
"filament_id": "OFqZSD1S",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"1.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"2.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"27.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Stainless Steel Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "4MhgYDnGFKLfurhc",
"filament_id": "OFqZSD1S",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"1.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"2.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"108.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Stainless Steel Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "mEH3Rgzzwjq9iptd",
"filament_id": "OFqZSD1S",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"1.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"2.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"216.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Medium Stainless Steel Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "rJsNSIb8w9kOwhwE",
"filament_id": "OFqZSD1S",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.05"
],
"filament_retraction_length": [
"1.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"2.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"6.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"432.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thick Stainless Steel Syringe @0.50mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "dJzDnkh8Kyn3phhF",
"filament_id": "OFjXHG0Z",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 0.50mm nozzle",
"FELIX Food Double 0.50mm nozzle",
"FELIX Food Switch 0.50mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.02"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"4.8"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thick Stainless Steel Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "QQi61sD4rX2jELMa",
"filament_id": "OFjXHG0Z",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.02"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"18.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thick Stainless Steel Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "KUmfC5HZL2hXPfey",
"filament_id": "OFjXHG0Z",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.02"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"72.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thick Stainless Steel Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "0BbaSUre1bztrKB0",
"filament_id": "OFjXHG0Z",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.02"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"144.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thick Stainless Steel Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "b179BTbFqjhnsHPT",
"filament_id": "OFjXHG0Z",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.02"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"6.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"288.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Plastic Syringe @0.50mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "dBTTG8HJRYb7GHqy",
"filament_id": "OF0kP94Y",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 0.50mm nozzle",
"FELIX Food Double 0.50mm nozzle",
"FELIX Food Switch 0.50mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.75"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.5"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"10.8"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Plastic Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "FITfR7iepAteWuno",
"filament_id": "OF0kP94Y",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.75"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.5"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"40.5"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Plastic Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "i2DZouQfWUnIm4R5",
"filament_id": "OF0kP94Y",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.75"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.5"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"162.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Plastic Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "EzV8T0DVT0NRPa7P",
"filament_id": "OF0kP94Y",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.75"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.5"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"324.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Plastic Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "Q6msqrC9TM0un5qw",
"filament_id": "OF0kP94Y",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.75"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.5"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"6.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"648.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Stainless Steel Syringe @0.50mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "I9W6tiEnRSMrkyzl",
"filament_id": "OF40XIE8",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 0.50mm nozzle",
"FELIX Food Double 0.50mm nozzle",
"FELIX Food Switch 0.50mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.2"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"0.4"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"10.8"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Stainless Steel Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "PJpJ8TTlDajNrRJo",
"filament_id": "OF40XIE8",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.2"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"0.4"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"40.5"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Stainless Steel Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "s3GOL7BWdRbaV4GM",
"filament_id": "OF40XIE8",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.2"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"0.4"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"162.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Stainless Steel Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "WKPEMCVctL0c5FFi",
"filament_id": "OF40XIE8",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.2"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"0.4"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"324.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Thin Stainless Steel Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "I5UEkm93zhn9hdMF",
"filament_id": "OF40XIE8",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.1"
],
"filament_retraction_length": [
"0.2"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"10.0"
],
"filament_deretraction_speed": [
"10.0"
],
"filament_retract_length_toolchange": [
"0.4"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"6.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"648.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thick Stainless Steel Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "OIZKSwXaRY7WZecX",
"filament_id": "OF0xT5HR",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"13.5"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thick Stainless Steel Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "al27KBjL9MAi3ri9",
"filament_id": "OF0xT5HR",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"53.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thick Stainless Steel Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "42ADzpr7vGuh3AKC",
"filament_id": "OF0xT5HR",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"108.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thick Stainless Steel Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "FpQC7Cf5qnW1E2QO",
"filament_id": "OF0xT5HR",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"2.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"4.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"216.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Plastic Syringe @0.50mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "9OMbRBrVCyDD6A2k",
"filament_id": "OF1XcHqz",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 0.50mm nozzle",
"FELIX Food Double 0.50mm nozzle",
"FELIX Food Switch 0.50mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"0.5"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"14.4"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Plastic Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "ukd2jpvA1sHePEfs",
"filament_id": "OF1XcHqz",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"0.5"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"54.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Plastic Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "jXkY0MPClCiaCJGC",
"filament_id": "OF1XcHqz",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"0.5"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"218.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Plastic Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "jSTp7ePK9UKaNX3S",
"filament_id": "OF1XcHqz",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"0.5"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"432.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Plastic Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "q3tLnporrSrlZl6S",
"filament_id": "OF1XcHqz",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"31.22"
],
"filament_flow_ratio": [
"1.0"
],
"filament_retraction_length": [
"0.5"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"1.0"
],
"filament_retract_restart_extra_toolchange": [
"0.0"
],
"filament_wipe_distance": [
"6.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"864.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Stainless Steel Syringe @1.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "ZGtJ5dq6QEFrRzER",
"filament_id": "OFJDz9xO",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 1.00mm nozzle",
"FELIX Food Double 1.00mm nozzle",
"FELIX Food Switch 1.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"0.96"
],
"filament_retraction_length": [
"0.1"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"0.2"
],
"filament_retract_restart_extra_toolchange": [
"0.03"
],
"filament_wipe_distance": [
"1.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"54.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Stainless Steel Syringe @2.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "il7EvApOb39ReoAt",
"filament_id": "OFJDz9xO",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 2.00mm nozzle",
"FELIX Food Double 2.00mm nozzle",
"FELIX Food Switch 2.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"0.96"
],
"filament_retraction_length": [
"0.1"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"0.2"
],
"filament_retract_restart_extra_toolchange": [
"0.03"
],
"filament_wipe_distance": [
"3.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"216.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Stainless Steel Syringe @3.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "yTSl3aV0S2HD6zPy",
"filament_id": "OFJDz9xO",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 3.00mm nozzle",
"FELIX Food Double 3.00mm nozzle",
"FELIX Food Switch 3.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"0.96"
],
"filament_retraction_length": [
"0.1"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"0.2"
],
"filament_retract_restart_extra_toolchange": [
"0.03"
],
"filament_wipe_distance": [
"4.5"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"432.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Stainless Steel Syringe @4.00mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "JfnwH4HjP0CQKuyr",
"filament_id": "OFJDz9xO",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 4.00mm nozzle",
"FELIX Food Double 4.00mm nozzle",
"FELIX Food Switch 4.00mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"0.96"
],
"filament_retraction_length": [
"0.1"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"0.2"
],
"filament_retract_restart_extra_toolchange": [
"0.03"
],
"filament_wipe_distance": [
"6.0"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"864.0"
]
}
@@ -0,0 +1,47 @@
{
"type": "filament",
"name": "Food Very Thin Stainless Steel Syringe @0.50mm",
"inherits": "fdm_filament_food",
"from": "system",
"setting_id": "mIgwxwB2N67qAhxk",
"filament_id": "OFASY29j",
"instantiation": "true",
"compatible_printers": [
"FELIX Food Single 0.50mm nozzle",
"FELIX Food Double 0.50mm nozzle",
"FELIX Food Switch 0.50mm nozzle"
],
"filament_diameter": [
"25.4"
],
"filament_flow_ratio": [
"0.96"
],
"filament_retraction_length": [
"0.1"
],
"filament_retract_restart_extra": [
"0.03"
],
"filament_retraction_speed": [
"5.0"
],
"filament_deretraction_speed": [
"5.0"
],
"filament_retract_length_toolchange": [
"0.2"
],
"filament_retract_restart_extra_toolchange": [
"0.03"
],
"filament_wipe_distance": [
"0.75"
],
"filament_vendor": [
"FELIX Printers"
],
"filament_max_volumetric_speed": [
"14.4"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX FLEX Brass @ 0.35mm",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "UXX0sEaoqZvdXwi6",
"filament_id": "OFF6vK3j",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"215.0"
],
"nozzle_temperature_initial_layer": [
"215.0"
],
"hot_plate_temp": [
"40.0"
],
"hot_plate_temp_initial_layer": [
"40.0"
],
"cool_plate_temp": [
"40.0"
],
"cool_plate_temp_initial_layer": [
"40.0"
],
"eng_plate_temp": [
"40.0"
],
"eng_plate_temp_initial_layer": [
"40.0"
],
"textured_plate_temp": [
"40.0"
],
"textured_plate_temp_initial_layer": [
"40.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.2"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.38"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX FLEX Brass @ 0.50mm",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "B4AmHHxdvhsjN34a",
"filament_id": "OFF6vK3j",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"215.0"
],
"nozzle_temperature_initial_layer": [
"215.0"
],
"hot_plate_temp": [
"40.0"
],
"hot_plate_temp_initial_layer": [
"40.0"
],
"cool_plate_temp": [
"40.0"
],
"cool_plate_temp_initial_layer": [
"40.0"
],
"eng_plate_temp": [
"40.0"
],
"eng_plate_temp_initial_layer": [
"40.0"
],
"textured_plate_temp": [
"40.0"
],
"textured_plate_temp_initial_layer": [
"40.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.2"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.38"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX FLEX Hardened Steel @ 0.25mm",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "7z6rkaF5DBbiccZP",
"filament_id": "OFSOY4F3",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.25mm nozzle",
"FELIX Pro L 3.0 0.25mm nozzle",
"FELIX Pro XL 3.0 0.25mm nozzle",
"FELIX Tec 4 0.25mm nozzle"
],
"nozzle_temperature": [
"225.0"
],
"nozzle_temperature_initial_layer": [
"225.0"
],
"hot_plate_temp": [
"40.0"
],
"hot_plate_temp_initial_layer": [
"40.0"
],
"cool_plate_temp": [
"40.0"
],
"cool_plate_temp_initial_layer": [
"40.0"
],
"eng_plate_temp": [
"40.0"
],
"eng_plate_temp_initial_layer": [
"40.0"
],
"textured_plate_temp": [
"40.0"
],
"textured_plate_temp_initial_layer": [
"40.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.2"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.38"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX FLEX Hardened Steel @ 0.35mm",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "DJRiMo6Aq0BvhFC9",
"filament_id": "OFSOY4F3",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"225.0"
],
"nozzle_temperature_initial_layer": [
"225.0"
],
"hot_plate_temp": [
"40.0"
],
"hot_plate_temp_initial_layer": [
"40.0"
],
"cool_plate_temp": [
"40.0"
],
"cool_plate_temp_initial_layer": [
"40.0"
],
"eng_plate_temp": [
"40.0"
],
"eng_plate_temp_initial_layer": [
"40.0"
],
"textured_plate_temp": [
"40.0"
],
"textured_plate_temp_initial_layer": [
"40.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.2"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.38"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX FLEX Hardened Steel @ 0.50mm",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "xgFrl1QpyQFFqBYz",
"filament_id": "OFSOY4F3",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"225.0"
],
"nozzle_temperature_initial_layer": [
"225.0"
],
"hot_plate_temp": [
"40.0"
],
"hot_plate_temp_initial_layer": [
"40.0"
],
"cool_plate_temp": [
"40.0"
],
"cool_plate_temp_initial_layer": [
"40.0"
],
"eng_plate_temp": [
"40.0"
],
"eng_plate_temp_initial_layer": [
"40.0"
],
"textured_plate_temp": [
"40.0"
],
"textured_plate_temp_initial_layer": [
"40.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.2"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.38"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX FLEX Hardened Steel @ 0.70mm",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "eZf8u1vzaQbsjyqO",
"filament_id": "OFSOY4F3",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.70mm nozzle",
"FELIX Pro L 3.0 0.70mm nozzle",
"FELIX Pro XL 3.0 0.70mm nozzle",
"FELIX Tec 4 0.70mm nozzle"
],
"nozzle_temperature": [
"225.0"
],
"nozzle_temperature_initial_layer": [
"225.0"
],
"hot_plate_temp": [
"40.0"
],
"hot_plate_temp_initial_layer": [
"40.0"
],
"cool_plate_temp": [
"40.0"
],
"cool_plate_temp_initial_layer": [
"40.0"
],
"eng_plate_temp": [
"40.0"
],
"eng_plate_temp_initial_layer": [
"40.0"
],
"textured_plate_temp": [
"40.0"
],
"textured_plate_temp_initial_layer": [
"40.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.2"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.38"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX PETG Brass @ 0.35mm",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "KZzk6aIxMvt1JlOR",
"filament_id": "OF17qLwN",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"220.0"
],
"nozzle_temperature_initial_layer": [
"220.0"
],
"hot_plate_temp": [
"75.0"
],
"hot_plate_temp_initial_layer": [
"75.0"
],
"cool_plate_temp": [
"75.0"
],
"cool_plate_temp_initial_layer": [
"75.0"
],
"eng_plate_temp": [
"75.0"
],
"eng_plate_temp_initial_layer": [
"75.0"
],
"textured_plate_temp": [
"75.0"
],
"textured_plate_temp_initial_layer": [
"75.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.2"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.27"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX PETG Brass @ 0.50mm",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "RWPOGeCx1EEYeV8R",
"filament_id": "OF17qLwN",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"220.0"
],
"nozzle_temperature_initial_layer": [
"220.0"
],
"hot_plate_temp": [
"75.0"
],
"hot_plate_temp_initial_layer": [
"75.0"
],
"cool_plate_temp": [
"75.0"
],
"cool_plate_temp_initial_layer": [
"75.0"
],
"eng_plate_temp": [
"75.0"
],
"eng_plate_temp_initial_layer": [
"75.0"
],
"textured_plate_temp": [
"75.0"
],
"textured_plate_temp_initial_layer": [
"75.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.2"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.27"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX PETG Hardened Steel @ 0.25mm",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "5RK6gGxFKyADXi4x",
"filament_id": "OFQo5ZHk",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.25mm nozzle",
"FELIX Pro L 3.0 0.25mm nozzle",
"FELIX Pro XL 3.0 0.25mm nozzle",
"FELIX Tec 4 0.25mm nozzle"
],
"nozzle_temperature": [
"235.0"
],
"nozzle_temperature_initial_layer": [
"235.0"
],
"hot_plate_temp": [
"75.0"
],
"hot_plate_temp_initial_layer": [
"75.0"
],
"cool_plate_temp": [
"75.0"
],
"cool_plate_temp_initial_layer": [
"75.0"
],
"eng_plate_temp": [
"75.0"
],
"eng_plate_temp_initial_layer": [
"75.0"
],
"textured_plate_temp": [
"75.0"
],
"textured_plate_temp_initial_layer": [
"75.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.2"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.27"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX PETG Hardened Steel @ 0.35mm",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "rz08j2cn8mlnvAxh",
"filament_id": "OFQo5ZHk",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"235.0"
],
"nozzle_temperature_initial_layer": [
"235.0"
],
"hot_plate_temp": [
"75.0"
],
"hot_plate_temp_initial_layer": [
"75.0"
],
"cool_plate_temp": [
"75.0"
],
"cool_plate_temp_initial_layer": [
"75.0"
],
"eng_plate_temp": [
"75.0"
],
"eng_plate_temp_initial_layer": [
"75.0"
],
"textured_plate_temp": [
"75.0"
],
"textured_plate_temp_initial_layer": [
"75.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.2"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.27"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX PETG Hardened Steel @ 0.50mm",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "1xOwhrqAqJVO48d0",
"filament_id": "OFQo5ZHk",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"235.0"
],
"nozzle_temperature_initial_layer": [
"235.0"
],
"hot_plate_temp": [
"75.0"
],
"hot_plate_temp_initial_layer": [
"75.0"
],
"cool_plate_temp": [
"75.0"
],
"cool_plate_temp_initial_layer": [
"75.0"
],
"eng_plate_temp": [
"75.0"
],
"eng_plate_temp_initial_layer": [
"75.0"
],
"textured_plate_temp": [
"75.0"
],
"textured_plate_temp_initial_layer": [
"75.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.2"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.27"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX PETG Hardened Steel @ 0.70mm",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "I2QXz0yDQN6ULNeF",
"filament_id": "OFQo5ZHk",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.70mm nozzle",
"FELIX Pro L 3.0 0.70mm nozzle",
"FELIX Pro XL 3.0 0.70mm nozzle",
"FELIX Tec 4 0.70mm nozzle"
],
"nozzle_temperature": [
"235.0"
],
"nozzle_temperature_initial_layer": [
"235.0"
],
"hot_plate_temp": [
"75.0"
],
"hot_plate_temp_initial_layer": [
"75.0"
],
"cool_plate_temp": [
"75.0"
],
"cool_plate_temp_initial_layer": [
"75.0"
],
"eng_plate_temp": [
"75.0"
],
"eng_plate_temp_initial_layer": [
"75.0"
],
"textured_plate_temp": [
"75.0"
],
"textured_plate_temp_initial_layer": [
"75.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.2"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"60.0"
],
"fan_max_speed": [
"60.0"
],
"filament_density": [
"1.27"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Premium PLA Brass @ 0.35mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "6Ax3SY7RI04PcFFJ",
"filament_id": "OF8sLgrm",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"190.0"
],
"nozzle_temperature_initial_layer": [
"190.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.22"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Premium PLA Brass @ 0.50mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "TzRWTEZl14IWlhrc",
"filament_id": "OF8sLgrm",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"190.0"
],
"nozzle_temperature_initial_layer": [
"190.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.22"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Premium PLA Hardened Steel @ 0.25mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "RtjX1Noxcsnv5cHv",
"filament_id": "OFi00jWL",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.25mm nozzle",
"FELIX Pro L 3.0 0.25mm nozzle",
"FELIX Pro XL 3.0 0.25mm nozzle",
"FELIX Tec 4 0.25mm nozzle"
],
"nozzle_temperature": [
"205.0"
],
"nozzle_temperature_initial_layer": [
"205.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.22"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Premium PLA Hardened Steel @ 0.35mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "aQI8mIoLrX3liAlM",
"filament_id": "OFi00jWL",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"205.0"
],
"nozzle_temperature_initial_layer": [
"205.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.22"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Premium PLA Hardened Steel @ 0.50mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "pdnfmqbhfYXV8MAj",
"filament_id": "OFi00jWL",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"205.0"
],
"nozzle_temperature_initial_layer": [
"205.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.22"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Premium PLA Hardened Steel @ 0.70mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "BDxehnk3kKVRlysR",
"filament_id": "OFi00jWL",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.70mm nozzle",
"FELIX Pro L 3.0 0.70mm nozzle",
"FELIX Pro XL 3.0 0.70mm nozzle",
"FELIX Tec 4 0.70mm nozzle"
],
"nozzle_temperature": [
"205.0"
],
"nozzle_temperature_initial_layer": [
"205.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.05"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.22"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Wood Brass @ 0.35mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "nRikN9oc1mOeA6dO",
"filament_id": "OF7CzDzq",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"185.0"
],
"nozzle_temperature_initial_layer": [
"185.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.5"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.15"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.24"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Wood Brass @ 0.50mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "SF4eGuHqUCtfEAGy",
"filament_id": "OFKwdz3w",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"185.0"
],
"nozzle_temperature_initial_layer": [
"185.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.5"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.15"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.24"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Wood Hardened Steel @ 0.25mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "AkZV2IjFVNLytIaY",
"filament_id": "OFsMMDMp",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.25mm nozzle",
"FELIX Pro L 3.0 0.25mm nozzle",
"FELIX Pro XL 3.0 0.25mm nozzle",
"FELIX Tec 4 0.25mm nozzle"
],
"nozzle_temperature": [
"200.0"
],
"nozzle_temperature_initial_layer": [
"200.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.5"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.15"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.24"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Wood Hardened Steel @ 0.35mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "MEGMFP2nv59vZSpf",
"filament_id": "OFsMMDMp",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"200.0"
],
"nozzle_temperature_initial_layer": [
"200.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.5"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.15"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.24"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Wood Hardened Steel @ 0.50mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "ObSufa3ZQ8tUmJUB",
"filament_id": "OFsMMDMp",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"200.0"
],
"nozzle_temperature_initial_layer": [
"200.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.5"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.15"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.24"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FELIX Wood Hardened Steel @ 0.70mm",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "LCRYcNn6HN4lviM2",
"filament_id": "OFsMMDMp",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.70mm nozzle",
"FELIX Pro L 3.0 0.70mm nozzle",
"FELIX Pro XL 3.0 0.70mm nozzle",
"FELIX Tec 4 0.70mm nozzle"
],
"nozzle_temperature": [
"200.0"
],
"nozzle_temperature_initial_layer": [
"200.0"
],
"hot_plate_temp": [
"55.0"
],
"hot_plate_temp_initial_layer": [
"55.0"
],
"cool_plate_temp": [
"55.0"
],
"cool_plate_temp_initial_layer": [
"55.0"
],
"eng_plate_temp": [
"55.0"
],
"eng_plate_temp_initial_layer": [
"55.0"
],
"textured_plate_temp": [
"55.0"
],
"textured_plate_temp_initial_layer": [
"55.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"120"
],
"filament_retract_length": [
"2.5"
],
"filament_retract_speed": [
"60.0"
],
"filament_retraction_speed": [
"60.0"
],
"filament_retract_restart_extra": [
"0.15"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"100.0"
],
"fan_max_speed": [
"100.0"
],
"filament_density": [
"1.24"
],
"filament_vendor": [
"FELIX Printers"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FORMFUTURA AppoloX ASA Brass @ 0.35mm",
"inherits": "fdm_filament_asa",
"from": "system",
"setting_id": "gRmosSxV2WFOgLAa",
"filament_id": "OFEUX7D3",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.35mm nozzle",
"FELIX Pro L 3.0 0.35mm nozzle",
"FELIX Pro XL 3.0 0.35mm nozzle",
"FELIX Tec 4 0.35mm nozzle"
],
"nozzle_temperature": [
"235.0"
],
"nozzle_temperature_initial_layer": [
"235.0"
],
"hot_plate_temp": [
"90.0"
],
"hot_plate_temp_initial_layer": [
"90.0"
],
"cool_plate_temp": [
"90.0"
],
"cool_plate_temp_initial_layer": [
"90.0"
],
"eng_plate_temp": [
"90.0"
],
"eng_plate_temp_initial_layer": [
"90.0"
],
"textured_plate_temp": [
"90.0"
],
"textured_plate_temp_initial_layer": [
"90.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"140"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"40.0"
],
"fan_max_speed": [
"40.0"
],
"filament_density": [
"1.07"
],
"filament_vendor": [
"FORMFUTURA"
]
}
@@ -0,0 +1,81 @@
{
"type": "filament",
"name": "FORMFUTURA AppoloX ASA Brass @ 0.50mm",
"inherits": "fdm_filament_asa",
"from": "system",
"setting_id": "iXdebkq6x0RsCLSh",
"filament_id": "OFEUX7D3",
"instantiation": "true",
"compatible_printers": [
"FELIX Pro 3 0.50mm nozzle",
"FELIX Pro L 3.0 0.50mm nozzle",
"FELIX Pro XL 3.0 0.50mm nozzle",
"FELIX Tec 4 0.50mm nozzle"
],
"nozzle_temperature": [
"235.0"
],
"nozzle_temperature_initial_layer": [
"235.0"
],
"hot_plate_temp": [
"90.0"
],
"hot_plate_temp_initial_layer": [
"90.0"
],
"cool_plate_temp": [
"90.0"
],
"cool_plate_temp_initial_layer": [
"90.0"
],
"eng_plate_temp": [
"90.0"
],
"eng_plate_temp_initial_layer": [
"90.0"
],
"textured_plate_temp": [
"90.0"
],
"textured_plate_temp_initial_layer": [
"90.0"
],
"chamber_temperature": [
"28.0"
],
"idle_temperature": [
"140"
],
"filament_retract_length": [
"1.4"
],
"filament_retract_speed": [
"50.0"
],
"filament_retraction_speed": [
"50.0"
],
"filament_retract_restart_extra": [
"0.0"
],
"filament_flow_ratio": [
"0.96"
],
"filament_max_volumetric_speed": [
"12.0"
],
"fan_min_speed": [
"40.0"
],
"fan_max_speed": [
"40.0"
],
"filament_density": [
"1.07"
],
"filament_vendor": [
"FORMFUTURA"
]
}

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