Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b29f06a0ab | ||
|
|
9ec0d39592 | ||
|
|
c55f9c2251 | ||
|
|
d2675f15d1 | ||
|
|
5371c85362 | ||
|
|
0b9b05ed85 | ||
|
|
a243941b72 | ||
|
|
6a1a5d51e9 | ||
|
|
e625845b34 | ||
|
|
01b340dee1 | ||
|
|
4c2a63e11e | ||
|
|
f8cf34c55b | ||
|
|
d007134001 | ||
|
|
00d11a7ba0 | ||
|
|
70f518d87a | ||
|
|
f4bde2da0a | ||
|
|
d5a11eb076 | ||
|
|
461275d9bb | ||
|
|
95d3e8eafc | ||
|
|
52eeb0f228 | ||
|
|
8145b0792f | ||
|
|
2ccd73759f | ||
|
|
cab7a7d75f | ||
|
|
bd125d32da | ||
|
|
7369674d8f | ||
|
|
70da7e89bb | ||
|
|
a671bf605d | ||
|
|
bae8f64b8b | ||
|
|
2df07b7ed8 | ||
|
|
295094a594 | ||
|
|
210bc927bc | ||
|
|
00cfb5b259 | ||
|
|
2bd105b0ce | ||
|
|
b81d761605 | ||
|
|
6922edfc20 | ||
|
|
7ec147603f | ||
|
|
546b9c621d | ||
|
|
8ee9e5915a | ||
|
|
cd5b786704 | ||
|
|
d715bb760c | ||
|
|
63918b44a8 | ||
|
|
64d09c9bca | ||
|
|
a13089d357 | ||
|
|
fb6c93963d | ||
|
|
7688f7a16c |
@@ -7,6 +7,7 @@ on:
|
||||
- release/*
|
||||
paths:
|
||||
- 'deps/**'
|
||||
- 'deps_src/**'
|
||||
- 'src/**'
|
||||
- '**/CMakeLists.txt'
|
||||
- 'version.inc'
|
||||
@@ -14,8 +15,10 @@ on:
|
||||
- 'resources/**'
|
||||
- ".github/workflows/build_*.yml"
|
||||
- ".github/workflows/unit_tests*.yml"
|
||||
- 'build_linux.sh'
|
||||
- 'build_win.bat'
|
||||
- 'scripts/test_build_win.ps1'
|
||||
- 'build_release_macos.sh'
|
||||
- 'scripts/build_preset_cache.*'
|
||||
- 'scripts/flatpak/**'
|
||||
- 'scripts/msix/**'
|
||||
@@ -54,7 +57,9 @@ on:
|
||||
default: false
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
|
||||
# cancel_closed_pr_builds.yml joins this group by name, so update that file
|
||||
# with any change here.
|
||||
group: build-all-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
|
||||
# Pushes don't cancel a running build, because only a finished branch build
|
||||
# saves caches every pull request can restore.
|
||||
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
@@ -1,73 +1,198 @@
|
||||
name: Check Cache
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
os:
|
||||
required: true
|
||||
type: string
|
||||
arch:
|
||||
required: false
|
||||
type: string
|
||||
compiler:
|
||||
required: false
|
||||
type: string
|
||||
default: msvc
|
||||
build-deps-only:
|
||||
required: false
|
||||
type: boolean
|
||||
force-build:
|
||||
required: false
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
check_cache: # determines if there is a cache and outputs variables used in caching process
|
||||
name: Check Cache
|
||||
runs-on: ${{ inputs.os }}
|
||||
outputs:
|
||||
cache-key: ${{ steps.set_outputs.outputs.cache-key }}
|
||||
cache-path: ${{ steps.set_outputs.outputs.cache-path }}
|
||||
valid-cache: ${{ steps.cache_deps.outputs.cache-hit }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
lfs: 'false'
|
||||
|
||||
- name: set outputs
|
||||
id: set_outputs
|
||||
env:
|
||||
# Anything that changes how the tree is built belongs in the key, or a job
|
||||
# restores one it cannot use. Linux amd64 passes no arch deliberately, so
|
||||
# 'linux-clang' keeps the cache it already has.
|
||||
cache-os: ${{ runner.os == 'macOS' && format('{0}-{1}', inputs.os, inputs.arch) || (runner.os == 'Windows' && format('windows-{0}-{1}', inputs.arch, inputs.compiler) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }}
|
||||
# The Windows ARM64 deps build in build-arm64, all others under build;
|
||||
# build_deps.yml and build_orca.yml pass the Windows directory to build_win.bat.
|
||||
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || (runner.os == 'Windows' && inputs.arch == 'arm64') && '-arm64/OrcaSlicer_dep' || '/OrcaSlicer_dep' }}
|
||||
output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
|
||||
run: |
|
||||
echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
|
||||
echo cache-path=${{ github.workspace }}/deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }}
|
||||
|
||||
- name: load cache
|
||||
id: cache_deps
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ${{ steps.set_outputs.outputs.cache-path }}
|
||||
key: ${{ steps.set_outputs.outputs.cache-key }}
|
||||
lookup-only: true
|
||||
|
||||
build_deps: # call next step
|
||||
name: Build Deps
|
||||
needs: [check_cache]
|
||||
uses: ./.github/workflows/build_deps.yml
|
||||
with:
|
||||
cache-key: ${{ needs.check_cache.outputs.cache-key }}
|
||||
cache-path: ${{ needs.check_cache.outputs.cache-path }}
|
||||
valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' }}
|
||||
os: ${{ inputs.os }}
|
||||
arch: ${{ inputs.arch }}
|
||||
compiler: ${{ inputs.compiler }}
|
||||
build-deps-only: ${{ inputs.build-deps-only }}
|
||||
force-build: ${{ inputs.force-build }}
|
||||
secrets: inherit
|
||||
name: Check Cache
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
os:
|
||||
required: true
|
||||
type: string
|
||||
arch:
|
||||
required: false
|
||||
type: string
|
||||
compiler:
|
||||
required: false
|
||||
type: string
|
||||
default: msvc
|
||||
build-deps-only:
|
||||
required: false
|
||||
type: boolean
|
||||
force-build:
|
||||
required: false
|
||||
type: boolean
|
||||
|
||||
# Read by scripts/ci_deps_cache.sh.
|
||||
env:
|
||||
REPO: ${{ github.repository }}
|
||||
WORKFLOW_REF: ${{ github.workflow_ref }}
|
||||
BASE_REF: ${{ github.base_ref }}
|
||||
|
||||
jobs:
|
||||
check_cache: # determines if there is a cache and outputs variables used in caching process
|
||||
name: Check Cache
|
||||
# Hosted macOS runners are scarce, so their lookup runs on Linux.
|
||||
runs-on: ${{ startsWith(inputs.os, 'macos-') && 'ubuntu-24.04' || inputs.os }}
|
||||
outputs:
|
||||
cache-key: ${{ steps.set_outputs.outputs.cache-key }}
|
||||
cache-path: ${{ steps.set_outputs.outputs.cache-path }}
|
||||
valid-cache: ${{ steps.cache_deps.outputs.cache-hit }}
|
||||
macos-path: ${{ steps.macos_path.outputs.path }}
|
||||
key-inputs: ${{ steps.wait_check.outputs.key-inputs }}
|
||||
wait-for: ${{ steps.wait_check.outputs.wait-for }}
|
||||
wait-since: ${{ steps.wait_check.outputs.wait-since }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
lfs: 'false'
|
||||
# The wait check compares the merge commit with its first parent.
|
||||
fetch-depth: ${{ startsWith(inputs.os, 'macos-') && 2 || 1 }}
|
||||
# Fetches only deps/, which the key hashes, and the wait script.
|
||||
sparse-checkout: |
|
||||
/deps/
|
||||
/scripts/ci_deps_cache.sh
|
||||
sparse-checkout-cone-mode: false
|
||||
|
||||
- name: set outputs
|
||||
id: set_outputs
|
||||
env:
|
||||
# Anything that changes how the tree is built belongs in the key, or a job
|
||||
# restores one it cannot use. Linux amd64 passes no arch deliberately, so
|
||||
# 'linux-clang' keeps the cache it already has.
|
||||
cache-os: ${{ (runner.os == 'macOS' || startsWith(inputs.os, 'macos-')) && format('{0}-{1}', inputs.os, inputs.arch) || (runner.os == 'Windows' && format('windows-{0}-{1}', inputs.arch, inputs.compiler) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }}
|
||||
# The Windows ARM64 deps build in build-arm64, all others under build;
|
||||
# build_deps.yml and build_orca.yml pass the Windows directory to build_win.bat.
|
||||
dep-folder-name: ${{ (runner.os == 'macOS' || startsWith(inputs.os, 'macos-')) && format('/{0}', inputs.arch) || (runner.os == 'Windows' && inputs.arch == 'arm64') && '-arm64/OrcaSlicer_dep' || '/OrcaSlicer_dep' }}
|
||||
output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
|
||||
run: |
|
||||
echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
|
||||
# Relative to the workspace, which differs from the build's when this job runs on Linux.
|
||||
echo cache-path=deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }}
|
||||
|
||||
# actions/cache matches the path too, so a Linux lookup for macOS uses the
|
||||
# workspace of a hosted macOS job.
|
||||
- name: macOS cache path
|
||||
id: macos_path
|
||||
if: ${{ startsWith(inputs.os, 'macos-') }}
|
||||
run: echo "path=/Users/runner/work/${GITHUB_REPOSITORY#*/}/${GITHUB_REPOSITORY#*/}/${{ steps.set_outputs.outputs.cache-path }}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: load cache
|
||||
id: cache_deps
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ${{ steps.macos_path.outputs.path || format('{0}/{1}', github.workspace, steps.set_outputs.outputs.cache-path) }}
|
||||
key: ${{ steps.set_outputs.outputs.cache-key }}
|
||||
lookup-only: true
|
||||
|
||||
# A pull request that misses the cache can wait for a base branch build of the same deps.
|
||||
- name: check for a base branch build to wait for
|
||||
id: wait_check
|
||||
if: ${{ startsWith(inputs.os, 'macos-') && github.event_name == 'pull_request' && steps.cache_deps.outputs.cache-hit != 'true' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: bash scripts/ci_deps_cache.sh check
|
||||
|
||||
wait_for_deps:
|
||||
name: Wait for base branch deps
|
||||
needs: [check_cache]
|
||||
if: ${{ needs.check_cache.outputs.wait-for != '' }}
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
WAIT_MINUTES: 120
|
||||
# Must exceed WAIT_MINUTES.
|
||||
timeout-minutes: 130
|
||||
# Waiting runs queue here, and only the first one holds a runner.
|
||||
concurrency:
|
||||
group: deps-wait-${{ github.base_ref }}-${{ needs.check_cache.outputs.cache-key }}
|
||||
queue: max
|
||||
outputs:
|
||||
hit: ${{ steps.lookup.outputs.cache-hit }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
sparse-checkout: scripts/ci_deps_cache.sh
|
||||
sparse-checkout-cone-mode: false
|
||||
|
||||
- name: wait for the deps cache
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
KEY: ${{ needs.check_cache.outputs.cache-key }}
|
||||
KEY_INPUTS: ${{ needs.check_cache.outputs.key-inputs }}
|
||||
WAIT_FOR: ${{ needs.check_cache.outputs.wait-for }}
|
||||
WAIT_SINCE: ${{ needs.check_cache.outputs.wait-since }}
|
||||
ARCH: ${{ inputs.arch }}
|
||||
run: bash scripts/ci_deps_cache.sh wait
|
||||
|
||||
- name: load cache
|
||||
id: lookup
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ${{ needs.check_cache.outputs.macos-path }}
|
||||
key: ${{ needs.check_cache.outputs.cache-key }}
|
||||
lookup-only: true
|
||||
|
||||
# Hosted macOS runners are scarce, so a pull request's macOS build waits until
|
||||
# one is free that push and nightly builds do not need. See the script.
|
||||
macos_admission:
|
||||
name: Wait for a macOS runner
|
||||
needs: [check_cache, wait_for_deps]
|
||||
if: ${{ !cancelled() && needs.check_cache.result == 'success' && startsWith(inputs.os, 'macos-') && github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'macos-priority') }}
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
WAIT_MINUTES: 240
|
||||
PRIORITY: false
|
||||
# Must exceed WAIT_MINUTES.
|
||||
timeout-minutes: 250
|
||||
# One line for every arch of every pull request, and only its first job polls.
|
||||
concurrency:
|
||||
group: macos-admission
|
||||
queue: max
|
||||
steps: &macos_admission_steps
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
sparse-checkout: scripts/ci_macos_admission.py
|
||||
sparse-checkout-cone-mode: false
|
||||
|
||||
- name: wait for a macOS runner
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
MACOS_RUNNER_LIMIT: ${{ vars.MACOS_RUNNER_LIMIT }}
|
||||
# -u, or the log shows nothing until the wait ends.
|
||||
run: python3 -u scripts/ci_macos_admission.py
|
||||
|
||||
# The macos-priority label, when the run starts, puts a pull request in its own
|
||||
# line, which the normal one yields to. The names are fixed, because a skipped
|
||||
# job is listed under its unevaluated name, and the script matches both.
|
||||
macos_admission_priority:
|
||||
name: Wait for a macOS runner (priority)
|
||||
needs: [check_cache, wait_for_deps]
|
||||
if: ${{ !cancelled() && needs.check_cache.result == 'success' && startsWith(inputs.os, 'macos-') && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'macos-priority') }}
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
WAIT_MINUTES: 240
|
||||
PRIORITY: true
|
||||
# Must exceed WAIT_MINUTES.
|
||||
timeout-minutes: 250
|
||||
concurrency:
|
||||
group: macos-admission-priority
|
||||
queue: max
|
||||
steps: *macos_admission_steps
|
||||
|
||||
build_deps: # call next step
|
||||
name: Build Deps
|
||||
needs: [check_cache, wait_for_deps, macos_admission, macos_admission_priority]
|
||||
# A failed wait counts as no cache, so the deps are built here. A failed
|
||||
# admission still builds rather than skip macOS.
|
||||
if: ${{ !cancelled() && needs.check_cache.result == 'success' }}
|
||||
uses: ./.github/workflows/build_deps.yml
|
||||
with:
|
||||
cache-key: ${{ needs.check_cache.outputs.cache-key }}
|
||||
cache-path: ${{ needs.check_cache.outputs.cache-path }}
|
||||
valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' || needs.wait_for_deps.outputs.hit == 'true' }}
|
||||
os: ${{ inputs.os }}
|
||||
arch: ${{ inputs.arch }}
|
||||
compiler: ${{ inputs.compiler }}
|
||||
build-deps-only: ${{ inputs.build-deps-only }}
|
||||
force-build: ${{ inputs.force-build }}
|
||||
secrets: inherit
|
||||
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
- name: load cached deps
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ${{ inputs.cache-path }}
|
||||
path: ${{ github.workspace }}/${{ inputs.cache-path }}
|
||||
key: ${{ inputs.cache-key }}
|
||||
|
||||
- uses: lukka/get-cmake@latest
|
||||
@@ -122,7 +122,7 @@ jobs:
|
||||
choco install strawberryperl
|
||||
}
|
||||
# cache-path is the install directory inside the deps build directory.
|
||||
$deps = (Split-Path "${{ inputs.cache-path }}").Replace('\', '/')
|
||||
$deps = (Split-Path "${{ github.workspace }}/${{ inputs.cache-path }}").Replace('\', '/')
|
||||
# -l compiles with Visual Studio's clang-cl and -x builds with Ninja; --msvc --msbuild is cl under the Visual Studio generator.
|
||||
$flags = if ("${{ inputs.compiler }}" -eq "clang") { "-l", "-x" } else { "--msvc", "--msbuild" }
|
||||
.\build_win.bat -d --arch ${{ inputs.arch }} --deps-dir $deps @flags
|
||||
|
||||
@@ -44,7 +44,7 @@ jobs:
|
||||
if: ${{ !(runner.os == 'macOS' && inputs.macos-combine-only) }}
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ${{ inputs.cache-path }}
|
||||
path: ${{ github.workspace }}/${{ inputs.cache-path }}
|
||||
key: ${{ inputs.cache-key }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
@@ -179,6 +179,13 @@ jobs:
|
||||
if: runner.os == 'macOS' && !inputs.macos-combine-only && !vars.SELF_HOSTED
|
||||
run: |
|
||||
df -hI /
|
||||
# Deleting the unused Xcodes takes minutes, so only do it when the
|
||||
# build might not fit. A cold build uses under 4 GiB after this step.
|
||||
avail_gib=$(df -g / | awk 'NR == 2 { print $4 }')
|
||||
if [ "$avail_gib" -ge 15 ]; then
|
||||
echo "$avail_gib GiB free, enough for the build"
|
||||
exit 0
|
||||
fi
|
||||
# Keep only the selected Xcode
|
||||
xcode=$(basename "$(cd "$(xcode-select -p)/../.." && pwd -P)")
|
||||
sudo find /Applications -maxdepth 1 -type d -name "Xcode_*.app" ! -name "$xcode" -exec rm -rf {} +
|
||||
@@ -460,7 +467,7 @@ jobs:
|
||||
# --tests builds the unit tests too; the unit_tests_windows_* jobs run them.
|
||||
run: |
|
||||
# cache-path is the install directory inside the deps build directory.
|
||||
$deps = (Split-Path "${{ inputs.cache-path }}").Replace('\', '/')
|
||||
$deps = (Split-Path "${{ github.workspace }}/${{ inputs.cache-path }}").Replace('\', '/')
|
||||
# -l compiles with Visual Studio's clang-cl and -x builds with Ninja; --msvc --msbuild is cl under the Visual Studio generator.
|
||||
$flags = if ("${{ inputs.compiler }}" -eq "clang") { "-l", "-x" } else { "--msvc", "--msbuild" }
|
||||
.\build_win.bat -s --tests -i --arch ${{ inputs.arch }} --build-dir $env:BUILD_DIR --deps-dir $deps @flags
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
name: Cancel builds of closed pull requests
|
||||
|
||||
on:
|
||||
# pull_request_target needs no approval for first-time contributors and must never
|
||||
# check out pull request code.
|
||||
pull_request_target:
|
||||
types:
|
||||
- closed
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
cancel:
|
||||
# Matches the concurrency group in build_all.yml, so joining it cancels the pull
|
||||
# request's unfinished Build all run.
|
||||
concurrency:
|
||||
group: build-all-pull_request-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: echo "Joined concurrency group build-all-pull_request-${{ github.event.pull_request.number }}."
|
||||
@@ -0,0 +1,65 @@
|
||||
name: clang-tidy fix
|
||||
|
||||
# Makes the missing-include fix that /bot fix-tidy (pr-tidy-bot.yml) posts on a
|
||||
# pull request: scripts/run_clang_tidy.sh --fix on the merge commit the
|
||||
# clang-tidy check runs on, uploaded as the clang-tidy-fix artifact.
|
||||
#
|
||||
# Every push to a PR starts this workflow, and its job skips on that first
|
||||
# attempt. The bot re-runs it on request. A re-run keeps the pull_request
|
||||
# context, so the PR's code runs with a read-only token, no secrets and the
|
||||
# PR's own cache, never main's, whoever asked for it.
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release/*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
fix:
|
||||
if: github.run_attempt > 1
|
||||
# A hosted runner, so nothing the PR's code leaves behind outlives the job.
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
lfs: 'false'
|
||||
# The PR merge commit plus its first parent, the base it is diffed against.
|
||||
fetch-depth: 2
|
||||
persist-credentials: false
|
||||
|
||||
# Parsing needs the dependency headers, not a build of this PR's deps/, so
|
||||
# a PR that changes deps/ falls back to the newest cache main has.
|
||||
- name: Restore cached deps
|
||||
uses: actions/cache/restore@v6
|
||||
with:
|
||||
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep
|
||||
key: linux-clang-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }}
|
||||
restore-keys: linux-clang-cache-orcaslicer_deps-build-
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: Apt-Install Dependencies
|
||||
uses: ./.github/actions/apt-install-deps
|
||||
|
||||
# The status says whether findings remain that --fix cannot fix.
|
||||
- name: Fix the changed lines
|
||||
run: |
|
||||
mkdir -p "$RUNNER_TEMP/clang-tidy-fix"
|
||||
status=0
|
||||
scripts/run_clang_tidy.sh --base HEAD^1 --yes --fix || status=$?
|
||||
echo "$status" > "$RUNNER_TEMP/clang-tidy-fix/status"
|
||||
git -c core.quotePath=false diff --no-color --no-ext-diff --src-prefix=a/ --dst-prefix=b/ \
|
||||
> "$RUNNER_TEMP/clang-tidy-fix/fix.patch"
|
||||
|
||||
- name: Upload the fix
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: clang-tidy-fix
|
||||
path: ${{ runner.temp }}/clang-tidy-fix/
|
||||
retention-days: 7
|
||||
# A later re-run of the same run replaces the earlier fix.
|
||||
overwrite: true
|
||||
@@ -0,0 +1,476 @@
|
||||
name: PR clang-tidy Bot
|
||||
|
||||
# Helps a pull request past the clang-tidy check.
|
||||
#
|
||||
# When the check fails on a PR's changes, a comment asks the author to fix it,
|
||||
# either with scripts/run_clang_tidy.sh --fix or by commenting:
|
||||
# /bot fix-tidy
|
||||
#
|
||||
# That command, from the PR's author or an account with write access, re-runs
|
||||
# the PR's clang-tidy fix run (clang_tidy_fix.yml), which makes the fix in the
|
||||
# PR's own context. When it finishes, the fix is posted as one review: each
|
||||
# include whose place falls on a line the PR's diff shows is a suggestion GitHub
|
||||
# can commit in one click, and the review's body holds the whole patch with a
|
||||
# git apply command. Findings --fix cannot fix, such as a using in a header,
|
||||
# are left for the check to report.
|
||||
#
|
||||
# No code from the PR runs here. Nothing is pushed, and the patch is only
|
||||
# posted when every line it adds is an #include in a C++ file the PR changes.
|
||||
#
|
||||
# workflow_run matches the workflows by their name: keep "clang-tidy" and
|
||||
# "clang-tidy fix" in step with clang_tidy.yml and clang_tidy_fix.yml, and
|
||||
# TIDY_STEP below with the clang-tidy step's name in clang_tidy.yml.
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types:
|
||||
- created
|
||||
workflow_run:
|
||||
workflows:
|
||||
- clang-tidy
|
||||
- clang-tidy fix
|
||||
types:
|
||||
- completed
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
request:
|
||||
# Skips the job unless a PR comment mentions the command.
|
||||
if: >-
|
||||
github.repository == 'OrcaSlicer/OrcaSlicer'
|
||||
&& github.event_name == 'issue_comment'
|
||||
&& github.event.issue.pull_request != null
|
||||
&& contains(github.event.comment.body, '/bot fix-tidy')
|
||||
permissions:
|
||||
actions: write # re-run the fix run
|
||||
pull-requests: write # react to and answer the comment, which is the PR's
|
||||
issues: write # feedback comment + reactions
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Re-run the PR's clang-tidy fix
|
||||
uses: actions/github-script@v9
|
||||
with:
|
||||
script: |
|
||||
const MARKER = '<!-- pr-tidy-bot -->';
|
||||
const FIX_WORKFLOW = 'clang_tidy_fix.yml';
|
||||
|
||||
const { owner, repo } = context.repo;
|
||||
const issue = context.payload.issue;
|
||||
const comment = context.payload.comment;
|
||||
|
||||
// Ignores a comment whose sender is not its author.
|
||||
if (context.payload.sender.login !== comment.user.login || comment.user.type !== 'User') {
|
||||
core.info('Ignoring a comment not written by its sender, or by a bot.');
|
||||
return;
|
||||
}
|
||||
|
||||
const commandLine = (comment.body || '')
|
||||
.split('\n')
|
||||
.map((line) => line.trim())
|
||||
.find((line) => /^\/bot\s+fix-tidy\b/i.test(line));
|
||||
if (!commandLine) {
|
||||
core.info('No /bot fix-tidy command found.');
|
||||
return;
|
||||
}
|
||||
|
||||
const commenter = comment.user.login;
|
||||
// Answers only the PR's author and maintainers, so the command cannot be used to spam.
|
||||
if (commenter !== issue.user.login) {
|
||||
const { data: access } = await github.rest.repos.getCollaboratorPermissionLevel({ owner, repo, username: commenter });
|
||||
if (!['admin', 'write'].includes(access.permission)) {
|
||||
core.info(`Ignoring /bot fix-tidy from @${commenter}: not the PR's author and no write access.`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const react = (content) =>
|
||||
github.rest.reactions.createForIssueComment({ owner, repo, comment_id: comment.id, content });
|
||||
async function refuse(reason) {
|
||||
await react('-1');
|
||||
await github.rest.issues.createComment({ owner, repo, issue_number: issue.number, body: `${MARKER}\n@${commenter} ${reason}` });
|
||||
}
|
||||
|
||||
await react('eyes');
|
||||
|
||||
if (!/^\/bot\s+fix-tidy$/i.test(commandLine)) {
|
||||
return refuse('`/bot fix-tidy` takes no arguments.');
|
||||
}
|
||||
|
||||
const { data: pr } = await github.rest.pulls.get({ owner, repo, pull_number: issue.number });
|
||||
if (pr.state !== 'open') {
|
||||
return refuse('the PR is not open.');
|
||||
}
|
||||
|
||||
const sha = pr.head.sha.slice(0, 10);
|
||||
const { data: { workflow_runs: runs } } = await github.rest.actions.listWorkflowRuns({
|
||||
owner, repo, workflow_id: FIX_WORKFLOW, event: 'pull_request', head_sha: pr.head.sha, per_page: 1
|
||||
});
|
||||
const run = runs[0];
|
||||
// A PR last pushed before clang_tidy_fix.yml existed has no run to re-run.
|
||||
if (!run) {
|
||||
return refuse(`there is no clang-tidy fix run for ${sha}, the PR's latest commit. If you just pushed it, ` +
|
||||
'try again in a minute. Otherwise, push a commit or merge the base branch to start one, then comment `/bot fix-tidy` again.');
|
||||
}
|
||||
if (run.status !== 'completed') {
|
||||
// The first attempt is the one every push starts, and it makes no fix.
|
||||
return refuse(run.run_attempt > 1
|
||||
? `a clang-tidy fix for ${sha} is already [running](${run.html_url}). I'll post it when it finishes.`
|
||||
: `the PR's checks on ${sha} are still starting. Comment \`/bot fix-tidy\` again in a minute.`);
|
||||
}
|
||||
// GitHub refuses to re-run a run created over 30 days ago.
|
||||
try {
|
||||
await github.rest.actions.reRunWorkflow({ owner, repo, run_id: run.id });
|
||||
} catch (error) {
|
||||
core.warning(`Re-running ${run.html_url} failed: ${error.message}`);
|
||||
return refuse(`GitHub won't re-run the [clang-tidy fix run](${run.html_url}) for ${sha} (${error.message}). ` +
|
||||
'Push a commit or merge the base branch to start a new one, then comment `/bot fix-tidy` again.');
|
||||
}
|
||||
core.info(`Re-ran ${run.html_url}`);
|
||||
|
||||
suggest:
|
||||
# The fix run's re-runs only. Its first attempt makes no fix.
|
||||
if: >-
|
||||
github.repository == 'OrcaSlicer/OrcaSlicer'
|
||||
&& github.event_name == 'workflow_run'
|
||||
&& github.event.workflow_run.name == 'clang-tidy fix'
|
||||
&& github.event.workflow_run.event == 'pull_request'
|
||||
&& github.event.workflow_run.run_attempt > 1
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-suggest-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}
|
||||
cancel-in-progress: false
|
||||
permissions:
|
||||
actions: read # download the fix
|
||||
contents: read # check out the PR head
|
||||
pull-requests: write # the review
|
||||
issues: write # feedback comment + reactions
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Find the PR and who asked
|
||||
id: find
|
||||
uses: actions/github-script@v9
|
||||
with:
|
||||
script: |
|
||||
const MARKER = '<!-- pr-tidy-bot -->';
|
||||
const CPP = /^(src|tests)\/.+\.(cpp|cc|cxx|hpp|h|hxx)$/;
|
||||
|
||||
const { owner, repo } = context.repo;
|
||||
const run = context.payload.workflow_run;
|
||||
|
||||
// workflow_run lists no PR for a fork's branch, so the PR is found by its branch.
|
||||
const { data: prs } = await github.rest.pulls.list({
|
||||
owner, repo, state: 'open', head: `${run.head_repository.owner.login}:${run.head_branch}`
|
||||
});
|
||||
const pr = prs[0];
|
||||
if (!pr) {
|
||||
core.info('No open PR for this run.');
|
||||
return;
|
||||
}
|
||||
|
||||
// The latest /bot fix-tidy comment is the one this run answers.
|
||||
const comments = await github.paginate(github.rest.issues.listComments, { owner, repo, issue_number: pr.number, per_page: 100 });
|
||||
const request = comments.reverse().find((c) => c.user.type === 'User' && /^\s*\/bot\s+fix-tidy\s*$/im.test(c.body || ''));
|
||||
const mention = request ? `@${request.user.login} ` : '';
|
||||
async function refuse(reason) {
|
||||
if (request) {
|
||||
await github.rest.reactions.createForIssueComment({ owner, repo, comment_id: request.id, content: '-1' });
|
||||
}
|
||||
await github.rest.issues.createComment({ owner, repo, issue_number: pr.number, body: `${MARKER}\n${mention}${reason}` });
|
||||
}
|
||||
|
||||
if (pr.head.sha !== run.head_sha) {
|
||||
return refuse('the PR changed while I was making its clang-tidy fix. Comment `/bot fix-tidy` again.');
|
||||
}
|
||||
if (run.conclusion !== 'success') {
|
||||
return refuse(`I couldn't make the clang-tidy fix. See the [run log](${run.html_url}).`);
|
||||
}
|
||||
|
||||
// The right-side lines of each changed C++ file's diff: the lines a
|
||||
// review comment can be placed on. A file too large for GitHub to
|
||||
// show its diff has none, and gets no suggestions.
|
||||
const files = await github.paginate(github.rest.pulls.listFiles, { owner, repo, pull_number: pr.number, per_page: 100 });
|
||||
const ranges = {};
|
||||
for (const file of files) {
|
||||
if (file.status === 'removed' || !CPP.test(file.filename)) {
|
||||
continue;
|
||||
}
|
||||
ranges[file.filename] = [...(file.patch || '').matchAll(/^@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@/gm)]
|
||||
.map((m) => [Number(m[1]), Number(m[1]) + Number(m[2] ?? 1) - 1])
|
||||
.filter(([first, last]) => last >= first);
|
||||
}
|
||||
|
||||
core.setOutput('pr', pr.number);
|
||||
core.setOutput('head-sha', pr.head.sha);
|
||||
core.setOutput('head-repo', run.head_repository.full_name);
|
||||
core.setOutput('ranges', JSON.stringify(ranges));
|
||||
core.setOutput('mention', mention);
|
||||
core.setOutput('request-id', request ? request.id : '');
|
||||
|
||||
- name: Download the fix
|
||||
if: steps.find.outputs.pr != ''
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: clang-tidy-fix
|
||||
run-id: ${{ github.event.workflow_run.id }}
|
||||
github-token: ${{ github.token }}
|
||||
path: ${{ runner.temp }}/clang-tidy-fix
|
||||
|
||||
# The PR's own files, only to apply the patch to. Nothing in them is run.
|
||||
- name: Checkout the PR head
|
||||
if: steps.find.outputs.pr != ''
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
repository: ${{ steps.find.outputs.head-repo }}
|
||||
ref: ${{ steps.find.outputs.head-sha }}
|
||||
path: head
|
||||
fetch-depth: 1
|
||||
lfs: 'false'
|
||||
persist-credentials: false
|
||||
sparse-checkout: |
|
||||
src
|
||||
tests
|
||||
|
||||
# The fix was made on the PR's merge commit, so it is applied to the head
|
||||
# and diffed again, giving line numbers in the PR's own files.
|
||||
- name: Check the fix and place its suggestions
|
||||
id: place
|
||||
if: steps.find.outputs.pr != ''
|
||||
env:
|
||||
RANGES: ${{ steps.find.outputs.ranges }}
|
||||
run: |
|
||||
python3 -I - "$RUNNER_TEMP/clang-tidy-fix/fix.patch" head "$RUNNER_TEMP" <<'EOF'
|
||||
import json, os, re, subprocess, sys
|
||||
|
||||
patch_path, head, out = sys.argv[1:]
|
||||
ranges = json.loads(os.environ["RANGES"])
|
||||
|
||||
def output(**values):
|
||||
with open(os.environ["GITHUB_OUTPUT"], "a", encoding="utf-8") as f:
|
||||
for key, value in values.items():
|
||||
f.write(f"{key}={value}\n")
|
||||
|
||||
patch = open(patch_path, encoding="utf-8").read()
|
||||
if not patch.strip():
|
||||
output(result="empty")
|
||||
sys.exit()
|
||||
|
||||
# Every line the patch adds must be an #include or blank, in a C++ file the
|
||||
# PR changes, and it may not remove, create, rename or change the mode of
|
||||
# anything.
|
||||
include = re.compile(r'\s*#\s*include\s*(<[\w./+-]+>|"[\w./+-]+")\s*')
|
||||
header = re.compile(r"(index [0-9a-f]+\.\.[0-9a-f]+( \d+)?|@@ -\d+(,\d+)? \+\d+(,\d+)? @@.*)")
|
||||
problems = []
|
||||
path = None
|
||||
for line in patch.splitlines():
|
||||
if line.startswith("diff --git "):
|
||||
match = re.fullmatch(r"diff --git a/(.+) b/\1", line)
|
||||
path = match.group(1) if match else None
|
||||
if path not in ranges:
|
||||
problems.append(f"{line}: not a C++ file the PR changes")
|
||||
# git appends a tab to the --- and +++ lines of a path that contains a space.
|
||||
elif line.removesuffix("\t") in (f"--- a/{path}", f"+++ b/{path}") or header.fullmatch(line):
|
||||
pass
|
||||
elif line.startswith(" ") or line == "\\ No newline at end of file":
|
||||
pass
|
||||
elif line.startswith("+") and (include.fullmatch(line[1:]) or not line[1:].strip()):
|
||||
pass
|
||||
else:
|
||||
problems.append(f"{path}: {line}")
|
||||
if problems:
|
||||
for problem in problems:
|
||||
print(f"::error::Refused patch line {problem}")
|
||||
output(result="rejected")
|
||||
sys.exit()
|
||||
|
||||
if subprocess.run(["git", "-C", head, "apply", "--index", os.path.abspath(patch_path)]).returncode != 0:
|
||||
output(result="apply-failed")
|
||||
sys.exit()
|
||||
|
||||
git = ["git", "-C", head, "-c", "core.quotePath=false", "diff", "--cached", "--no-color", "--no-ext-diff",
|
||||
"--src-prefix=a/", "--dst-prefix=b/"]
|
||||
with open(os.path.join(out, "head.patch"), "w", encoding="utf-8") as f:
|
||||
f.write(subprocess.run(git, check=True, capture_output=True, encoding="utf-8").stdout)
|
||||
|
||||
# Each run of added lines becomes one suggestion on the line it goes after
|
||||
# (before, at the top of a file): that line, replaced by itself and the
|
||||
# includes. It can only sit on a line the PR's diff shows.
|
||||
hunks = []
|
||||
path = None
|
||||
for line in subprocess.run(git + ["-U0"], check=True, capture_output=True, encoding="utf-8").stdout.splitlines():
|
||||
if line.startswith("diff --git "):
|
||||
path = re.fullmatch(r"diff --git a/(.+) b/\1", line).group(1)
|
||||
elif line.startswith("@@ "):
|
||||
hunks.append((path, int(re.match(r"@@ -(\d+)", line).group(1)), []))
|
||||
elif hunks and line.startswith("+") and not line.startswith("+++ "):
|
||||
hunks[-1][2].append(line[1:])
|
||||
|
||||
suggestions = []
|
||||
total = suggested = 0
|
||||
for path, after, added in hunks:
|
||||
count = sum(bool(include.fullmatch(line)) for line in added)
|
||||
total += count
|
||||
original = subprocess.run(["git", "-C", head, "show", f"HEAD:{path}"], check=True, capture_output=True,
|
||||
encoding="utf-8").stdout.splitlines()
|
||||
line = max(after, 1)
|
||||
if line > len(original) or not any(first <= line <= last for first, last in ranges[path]):
|
||||
continue
|
||||
body = "\n".join([original[line - 1], *added] if after else [*added, original[0]])
|
||||
# A fence longer than any run of backticks in the line it repeats.
|
||||
fence = "`" * max([3] + [len(run) + 1 for run in re.findall(r"`+", body)])
|
||||
suggestions.append({"path": path, "line": line, "side": "RIGHT",
|
||||
"body": f"{fence}suggestion\n{body}\n{fence}"})
|
||||
suggested += count
|
||||
with open(os.path.join(out, "suggestions.json"), "w", encoding="utf-8") as f:
|
||||
json.dump(suggestions, f)
|
||||
output(result="ok", includes=total, suggested=suggested)
|
||||
EOF
|
||||
|
||||
- name: Post the fix
|
||||
if: always() && steps.find.outputs.pr != ''
|
||||
uses: actions/github-script@v9
|
||||
env:
|
||||
PR: ${{ steps.find.outputs.pr }}
|
||||
MENTION: ${{ steps.find.outputs.mention }}
|
||||
REQUEST_ID: ${{ steps.find.outputs.request-id }}
|
||||
HEAD_SHA: ${{ steps.find.outputs.head-sha }}
|
||||
RESULT: ${{ steps.place.outputs.result }}
|
||||
INCLUDES: ${{ steps.place.outputs.includes }}
|
||||
SUGGESTED: ${{ steps.place.outputs.suggested }}
|
||||
with:
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const MARKER = '<!-- pr-tidy-bot -->';
|
||||
// GitHub's limit on a review body is 65536 characters.
|
||||
const MAX_PATCH = 60000;
|
||||
|
||||
const { owner, repo } = context.repo;
|
||||
const { PR, MENTION, REQUEST_ID, HEAD_SHA, RESULT, INCLUDES, SUGGESTED, RUNNER_TEMP } = process.env;
|
||||
const issue_number = Number(PR);
|
||||
const sha = HEAD_SHA.slice(0, 10);
|
||||
const fixUrl = context.payload.workflow_run.html_url;
|
||||
const runUrl = `${context.serverUrl}/${owner}/${repo}/actions/runs/${context.runId}`;
|
||||
|
||||
const react = (content) => REQUEST_ID
|
||||
? github.rest.reactions.createForIssueComment({ owner, repo, comment_id: Number(REQUEST_ID), content })
|
||||
: Promise.resolve();
|
||||
async function reply(body, content) {
|
||||
await react(content);
|
||||
await github.rest.issues.createComment({ owner, repo, issue_number, body: `${MARKER}\n${MENTION}${body}` });
|
||||
}
|
||||
|
||||
const read = (...parts) => fs.readFileSync(path.join(RUNNER_TEMP, ...parts), 'utf8');
|
||||
const passes = RESULT && read('clang-tidy-fix', 'status').trim() === '0';
|
||||
|
||||
if (RESULT === 'empty') {
|
||||
return passes
|
||||
? reply(`clang-tidy passes on ${sha}. There is nothing to fix.`, '+1')
|
||||
: reply(`clang-tidy has no automatic fix for what it reports on ${sha}. The findings, in the [fix run's log](${fixUrl}), need a manual edit.`, '-1');
|
||||
}
|
||||
if (RESULT === 'rejected') {
|
||||
return reply(`the clang-tidy fix changes more than includes, so I didn't post it. See the [run log](${runUrl}).`, '-1');
|
||||
}
|
||||
if (RESULT === 'apply-failed') {
|
||||
return reply(`the clang-tidy fix doesn't apply to ${sha}. Merge the base branch into the PR, then comment \`/bot fix-tidy\` again.`, '-1');
|
||||
}
|
||||
if (RESULT !== 'ok') {
|
||||
return reply(`something went wrong. See the [run log](${runUrl}).`, '-1');
|
||||
}
|
||||
|
||||
const patch = read('head.patch');
|
||||
const suggestions = JSON.parse(read('suggestions.json'));
|
||||
|
||||
const one = INCLUDES === '1';
|
||||
const includes = one ? '1 missing include' : `${INCLUDES} missing includes`;
|
||||
const inline = SUGGESTED === '0'
|
||||
? (one ? 'It goes on a line this PR does not change, so I can\'t suggest it inline.'
|
||||
: 'They go on lines this PR does not change, so I can\'t suggest them inline.')
|
||||
: SUGGESTED === INCLUDES
|
||||
? (one ? 'It is suggested inline below.' : 'Each is suggested inline below.')
|
||||
: `${SUGGESTED} of them are suggested inline below; the rest go on lines this PR does not change.`;
|
||||
const remaining = passes
|
||||
? `With ${one ? 'it' : 'them'}, clang-tidy passes.`
|
||||
: `Some findings remain that need a manual edit; see the [fix run's log](${fixUrl}).`;
|
||||
// A fence longer than any run of backticks in the patch's context lines.
|
||||
const fence = '`'.repeat(Math.max(3, ...[...patch.matchAll(/`+/g)].map((m) => m[0].length + 1)));
|
||||
const apply = patch.length > MAX_PATCH
|
||||
? `The full patch is too large to show here. Download \`fix.patch\` from the [fix run](${fixUrl}) and run \`git apply fix.patch\`.`
|
||||
: `To apply ${one ? 'it' : 'all of them'}, run this in your checkout of the PR branch:\n\n${fence}sh\ngit apply <<'EOF'\n${patch}EOF\n${fence}`;
|
||||
const body = (withSuggestions) => `${MARKER}\n${MENTION}clang-tidy's fix for ${sha} adds ${includes}. ` +
|
||||
`${withSuggestions ? `${inline} ` : ''}${remaining}\n\n${apply}`;
|
||||
|
||||
const review = { owner, repo, pull_number: issue_number, commit_id: HEAD_SHA, event: 'COMMENT' };
|
||||
try {
|
||||
await github.rest.pulls.createReview({ ...review, body: body(true), comments: suggestions });
|
||||
} catch (error) {
|
||||
// A suggestion GitHub will not place still leaves the patch.
|
||||
core.warning(`Posting the suggestions failed (${error.message}); posting the patch alone.`);
|
||||
await github.rest.pulls.createReview({ ...review, body: body(false) });
|
||||
}
|
||||
await react('+1');
|
||||
|
||||
nudge:
|
||||
if: >-
|
||||
github.repository == 'OrcaSlicer/OrcaSlicer'
|
||||
&& github.event_name == 'workflow_run'
|
||||
&& github.event.workflow_run.name == 'clang-tidy'
|
||||
&& github.event.workflow_run.event == 'pull_request'
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-nudge-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}
|
||||
cancel-in-progress: false
|
||||
permissions:
|
||||
actions: read # the check's steps
|
||||
pull-requests: write # comment on the PR
|
||||
issues: write # the comment
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Ask for a fix when the check fails
|
||||
uses: actions/github-script@v9
|
||||
with:
|
||||
script: |
|
||||
const MARKER = '<!-- pr-tidy-bot-nudge -->';
|
||||
// The clang-tidy step's name in clang_tidy.yml. A failure in any other
|
||||
// step is the CI's, not the PR's.
|
||||
const TIDY_STEP = 'Run clang-tidy on the changed lines';
|
||||
|
||||
const { owner, repo } = context.repo;
|
||||
const run = context.payload.workflow_run;
|
||||
|
||||
// workflow_run lists no PR for a fork's branch, so the PR is found by its branch.
|
||||
const { data: prs } = await github.rest.pulls.list({
|
||||
owner, repo, state: 'open', head: `${run.head_repository.owner.login}:${run.head_branch}`
|
||||
});
|
||||
const pr = prs.find((p) => p.head.sha === run.head_sha);
|
||||
if (!pr) {
|
||||
core.info('No open PR at this run\'s commit; a newer run will answer.');
|
||||
return;
|
||||
}
|
||||
|
||||
const { data: { jobs } } = await github.rest.actions.listJobsForWorkflowRun({ owner, repo, run_id: run.id });
|
||||
const failed = jobs.some((job) => (job.steps || []).some((step) => step.name === TIDY_STEP && step.conclusion === 'failure'));
|
||||
|
||||
const comments = await github.paginate(github.rest.issues.listComments, { owner, repo, issue_number: pr.number, per_page: 100 });
|
||||
const previous = comments.find((c) => c.user.type === 'Bot' && (c.body || '').startsWith(MARKER));
|
||||
|
||||
if (!failed) {
|
||||
// Removes the request once the check passes.
|
||||
if (previous && run.conclusion === 'success') {
|
||||
await github.rest.issues.deleteComment({ owner, repo, comment_id: previous.id });
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const body = `${MARKER}\n@${pr.user.login} the clang-tidy check found problems in this PR's changes ` +
|
||||
`at ${run.head_sha.slice(0, 10)} ([log](${run.html_url})). Missing includes can be fixed either way:\n\n` +
|
||||
'- run `scripts/run_clang_tidy.sh --fix` (`scripts\\run_clang_tidy.ps1 -Fix` on Windows) and push the result, or\n' +
|
||||
'- comment `/bot fix-tidy`, and I\'ll suggest the fix here for you to apply.\n\n' +
|
||||
'Other findings, such as a `using` in a header, need a manual edit.';
|
||||
// Edits the earlier request instead of posting another, so each push does not notify again.
|
||||
if (previous) {
|
||||
await github.rest.issues.updateComment({ owner, repo, comment_id: previous.id, body });
|
||||
} else {
|
||||
await github.rest.issues.createComment({ owner, repo, issue_number: pr.number, body });
|
||||
}
|
||||
@@ -333,6 +333,8 @@ src/slic3r/GUI/OAuthDialog.cpp
|
||||
src/slic3r/GUI/PluginPickerDialog.cpp
|
||||
src/slic3r/GUI/PluginsConfigDialog.cpp
|
||||
src/slic3r/GUI/PluginsDialog.cpp
|
||||
src/slic3r/GUI/PrinterWebView.cpp
|
||||
src/slic3r/GUI/Project.cpp
|
||||
src/slic3r/GUI/PublishSettingsDialog.hpp
|
||||
src/slic3r/GUI/PurgeModeDialog.cpp
|
||||
src/slic3r/GUI/TerminalDialog.cpp
|
||||
@@ -341,7 +343,6 @@ src/slic3r/GUI/TextureLibrary.cpp
|
||||
src/slic3r/GUI/TextureProjectorFrame.cpp
|
||||
src/slic3r/GUI/UVEditorCanvas.cpp
|
||||
src/slic3r/GUI/UserManager.cpp
|
||||
src/slic3r/GUI/WebDownPluginDlg.cpp
|
||||
src/slic3r/GUI/WebViewDialog.cpp
|
||||
src/slic3r/GUI/Widgets/AMSItem.cpp
|
||||
src/slic3r/GUI/Widgets/DialogButtons.cpp
|
||||
|
||||
@@ -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 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Anker",
|
||||
"version": "02.04.00.05",
|
||||
"version": "02.04.00.06",
|
||||
"force_update": "0",
|
||||
"description": "Anker configurations",
|
||||
"machine_model_list": [
|
||||
@@ -304,6 +304,26 @@
|
||||
"name": "Generic PLA Silk @Anker 0.25 nozzle",
|
||||
"sub_path": "filament/Generic PLA Silk @Anker 0.25 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Basic @Anker base",
|
||||
"sub_path": "filament/AnkerMake PLA+ Basic @Anker base.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Glitter @Anker base",
|
||||
"sub_path": "filament/AnkerMake PLA+ Glitter @Anker base.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Matte @Anker base",
|
||||
"sub_path": "filament/AnkerMake PLA+ Matte @Anker base.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Metallic @Anker base",
|
||||
"sub_path": "filament/AnkerMake PLA+ Metallic @Anker base.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Silk @Anker base",
|
||||
"sub_path": "filament/AnkerMake PLA+ Silk @Anker base.json"
|
||||
},
|
||||
{
|
||||
"name": "Generic PLA+ @Anker",
|
||||
"sub_path": "filament/Generic PLA+ @Anker.json"
|
||||
@@ -327,6 +347,26 @@
|
||||
{
|
||||
"name": "Generic TPU @Anker",
|
||||
"sub_path": "filament/Generic TPU @Anker.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Basic @Anker",
|
||||
"sub_path": "filament/AnkerMake PLA+ Basic @Anker.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Glitter @Anker",
|
||||
"sub_path": "filament/AnkerMake PLA+ Glitter @Anker.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Matte @Anker",
|
||||
"sub_path": "filament/AnkerMake PLA+ Matte @Anker.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Metallic @Anker",
|
||||
"sub_path": "filament/AnkerMake PLA+ Metallic @Anker.json"
|
||||
},
|
||||
{
|
||||
"name": "AnkerMake PLA+ Silk @Anker",
|
||||
"sub_path": "filament/AnkerMake PLA+ Silk @Anker.json"
|
||||
}
|
||||
],
|
||||
"machine_list": [
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Basic @Anker base",
|
||||
"inherits": "Generic PLA+ @Anker base",
|
||||
"from": "system",
|
||||
"filament_id": "OFUuZlQL",
|
||||
"instantiation": "false",
|
||||
"filament_vendor": [
|
||||
"AnkerMake"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"200"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"230"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"filament_flow_ratio": [
|
||||
"1"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"fan_cooling_layer_time": [
|
||||
"60"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"8"
|
||||
],
|
||||
"slow_down_min_speed": [
|
||||
"30"
|
||||
],
|
||||
"default_filament_colour": [
|
||||
"#FFFFFF"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"22"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Basic @Anker",
|
||||
"inherits": "AnkerMake PLA+ Basic @Anker base",
|
||||
"from": "system",
|
||||
"setting_id": "EfM5rmn4w6pMBajC",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
"Anker M5 0.6 nozzle",
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
"Anker M5 All-Metal 0.6 nozzle",
|
||||
"Anker M5C 0.4 nozzle",
|
||||
"Anker M5C 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Glitter @Anker base",
|
||||
"inherits": "Generic PLA+ @Anker base",
|
||||
"from": "system",
|
||||
"filament_id": "OFxCURdg",
|
||||
"instantiation": "false",
|
||||
"filament_vendor": [
|
||||
"AnkerMake"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"200"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"230"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"filament_flow_ratio": [
|
||||
"1"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"fan_cooling_layer_time": [
|
||||
"60"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"6"
|
||||
],
|
||||
"slow_down_min_speed": [
|
||||
"30"
|
||||
],
|
||||
"default_filament_colour": [
|
||||
"#00AD66"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"22"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Glitter @Anker",
|
||||
"inherits": "AnkerMake PLA+ Glitter @Anker base",
|
||||
"from": "system",
|
||||
"setting_id": "blGHp0htgHEj7khE",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
"Anker M5 0.6 nozzle",
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
"Anker M5 All-Metal 0.6 nozzle",
|
||||
"Anker M5C 0.4 nozzle",
|
||||
"Anker M5C 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Matte @Anker base",
|
||||
"inherits": "Generic PLA+ @Anker base",
|
||||
"from": "system",
|
||||
"filament_id": "OFKDOyNK",
|
||||
"instantiation": "false",
|
||||
"filament_vendor": [
|
||||
"AnkerMake"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"210"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"230"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"filament_flow_ratio": [
|
||||
"1"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"fan_cooling_layer_time": [
|
||||
"60"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"6"
|
||||
],
|
||||
"slow_down_min_speed": [
|
||||
"30"
|
||||
],
|
||||
"default_filament_colour": [
|
||||
"#FFFFFF"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"22"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Matte @Anker",
|
||||
"inherits": "AnkerMake PLA+ Matte @Anker base",
|
||||
"from": "system",
|
||||
"setting_id": "tPgwC1eEXyWPOn9S",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
"Anker M5C 0.4 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Metallic @Anker base",
|
||||
"inherits": "Generic PLA+ @Anker base",
|
||||
"from": "system",
|
||||
"filament_id": "OFBfbmtb",
|
||||
"instantiation": "false",
|
||||
"filament_vendor": [
|
||||
"AnkerMake"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"200"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"60"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"60"
|
||||
],
|
||||
"filament_flow_ratio": [
|
||||
"1"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"fan_cooling_layer_time": [
|
||||
"60"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"6"
|
||||
],
|
||||
"slow_down_min_speed": [
|
||||
"30"
|
||||
],
|
||||
"overhang_fan_speed": [
|
||||
"50"
|
||||
],
|
||||
"reduce_fan_stop_start_freq": [
|
||||
"0"
|
||||
],
|
||||
"filament_retraction_length": [
|
||||
"1"
|
||||
],
|
||||
"filament_retraction_speed": [
|
||||
"50"
|
||||
],
|
||||
"filament_deretraction_speed": [
|
||||
"50"
|
||||
],
|
||||
"default_filament_colour": [
|
||||
"#ACAC8A"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"20"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Metallic @Anker",
|
||||
"inherits": "AnkerMake PLA+ Metallic @Anker base",
|
||||
"from": "system",
|
||||
"setting_id": "jlbAMNNaEacdUASZ",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
"Anker M5C 0.4 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Silk @Anker base",
|
||||
"inherits": "Generic PLA+ @Anker base",
|
||||
"from": "system",
|
||||
"filament_id": "OFkxTGQc",
|
||||
"instantiation": "false",
|
||||
"filament_vendor": [
|
||||
"AnkerMake"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"210"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"230"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp": [
|
||||
"65"
|
||||
],
|
||||
"hot_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"textured_plate_temp_initial_layer": [
|
||||
"65"
|
||||
],
|
||||
"filament_flow_ratio": [
|
||||
"1"
|
||||
],
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
"fan_cooling_layer_time": [
|
||||
"60"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"2"
|
||||
],
|
||||
"slow_down_min_speed": [
|
||||
"20"
|
||||
],
|
||||
"filament_retraction_length": [
|
||||
"0.5"
|
||||
],
|
||||
"filament_retraction_speed": [
|
||||
"20"
|
||||
],
|
||||
"filament_wipe": [
|
||||
"0"
|
||||
],
|
||||
"default_filament_colour": [
|
||||
"#99ADA3"
|
||||
],
|
||||
"filament_deretraction_speed": [
|
||||
"20"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"13"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "AnkerMake PLA+ Silk @Anker",
|
||||
"inherits": "AnkerMake PLA+ Silk @Anker base",
|
||||
"from": "system",
|
||||
"setting_id": "eVM9Ckwjl5vEvEKN",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
"Anker M5 All-Metal 0.6 nozzle",
|
||||
"Anker M5C 0.4 nozzle",
|
||||
"Anker M5C 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Anycubic",
|
||||
"version": "02.04.00.08",
|
||||
"version": "02.04.00.09",
|
||||
"force_update": "0",
|
||||
"description": "Anycubic configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
"default_filament_profile": [
|
||||
"Generic PLA @Anycubic"
|
||||
],
|
||||
"machine_start_gcode": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG0 Z0.2 F1800 ; move nozzle to print position\nG92 E0 ; specify current extruder position as zero\nG1 Y10 X180 E50 F1200 ; extrude a line in front of the printer\nG92 E0 ; specify current extruder position as zero\nG0 Z20 F6000 ; move head up\nG1 E-7 F2400 ; retract\nG04 S2 ; wait 2s\nG0 X0 F6000 ; wipe from oozed filament\nG1 E-1 F2400 ; undo some of the retraction to avoid oozing\nG1 F6000 ; set travel speed to move to start printing point\nM117",
|
||||
"machine_start_gcode": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG0 Z0.2 F1800 ; move nozzle to print position\nG92 E0 ; specify current extruder position as zero\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Y10 X180 E50 F1200 ; extrude a line in front of the printer\nG92 E0 ; specify current extruder position as zero\nG0 Z20 F6000 ; move head up\nG1 E-7 F2400 ; retract\nG04 S2 ; wait 2s\nG0 X0 F6000 ; wipe from oozed filament\nG1 E-1 F2400 ; undo some of the retraction to avoid oozing\nG1 F6000 ; set travel speed to move to start printing point\nM117",
|
||||
"machine_end_gcode": "G4 ; wait\nG92 E0\nG1{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} ; move print head up\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors",
|
||||
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
|
||||
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Bambulab",
|
||||
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
|
||||
"version": "02.08.00.13",
|
||||
"version": "02.08.00.14",
|
||||
"force_update": "0",
|
||||
"description": "the initial version of BBL configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"0.4"
|
||||
],
|
||||
"printer_variant": "0.4",
|
||||
"use_3mf": "1",
|
||||
"bed_exclude_area": [
|
||||
"0x0",
|
||||
"28x0",
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"0.4"
|
||||
],
|
||||
"printer_variant": "0.4",
|
||||
"use_3mf": "1",
|
||||
"best_object_pos": "0.3x0.5",
|
||||
"bed_exclude_area": [],
|
||||
"bed_temperature_formula": "by_highest_temp",
|
||||
|
||||
@@ -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 |
|
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 |
|
After Width: | Height: | Size: 716 KiB |
|
After Width: | Height: | Size: 793 KiB |
|
After Width: | Height: | Size: 183 KiB |
|
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 |
|
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 |
|
After Width: | Height: | Size: 611 KiB |
@@ -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"
|
||||
]
|
||||
}
|
||||