Merge remote-tracking branch 'upstream/main' into feedback

This commit is contained in:
Clifford Garwood
2026-04-21 14:56:08 -04:00
10271 changed files with 1877977 additions and 1865978 deletions
+1 -1
View File
@@ -136,7 +136,7 @@ jobs:
files: "ctest_results.xml"
- name: Delete Test Artifact
if: success()
uses: geekyeggo/delete-artifact@v5
uses: geekyeggo/delete-artifact@v6
with:
name: ${{ github.sha }}-tests
flatpak:
+1 -1
View File
@@ -52,7 +52,7 @@ jobs:
- name: setup dev on Windows
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v2
uses: microsoft/setup-msbuild@v3
- name: Get the date on Ubuntu and macOS
if: runner.os != 'Windows'
+3 -2
View File
@@ -155,7 +155,7 @@ jobs:
- name: Delete intermediate per-arch artifacts
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: geekyeggo/delete-artifact@v5
uses: geekyeggo/delete-artifact@v6
with:
name: |
OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}
@@ -275,7 +275,7 @@ jobs:
# Windows
- name: setup MSVC
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v2
uses: microsoft/setup-msbuild@v3
- name: Install nsis
if: runner.os == 'Windows' && !vars.SELF_HOSTED
@@ -382,6 +382,7 @@ jobs:
shell: bash
run: |
./build_linux.sh -istrlL
./scripts/check_appimage_libs.sh ./build/package ./build/package/bin/orca-slicer
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
tar -cvpf build_tests.tar build/tests
+275
View File
@@ -0,0 +1,275 @@
name: PR Label Bot
on:
pull_request_target:
types:
- opened
- reopened
issue_comment:
types:
- created
permissions:
contents: read
pull-requests: write
issues: write
jobs:
request-label:
if: github.event_name == 'pull_request_target' && github.event.pull_request.author_association != 'COLLABORATOR' && github.event.pull_request.author_association != 'OWNER' && github.event.pull_request.author_association != 'MEMBER'
permissions:
contents: read
pull-requests: write
issues: write
runs-on: ubuntu-latest
steps:
- name: Ask PR author for label
uses: actions/github-script@v7
with:
script: |
function isPermissionDenied(error) {
return error && error.status === 403 && /Resource not accessible by integration/i.test(error.message || '');
}
const allowedLabels = [
'bug-fix',
'enhancement',
'Localization',
'profile',
'QoL',
'UI/UX',
'dependencies'
];
const pr = context.payload.pull_request;
const labelsList = `${allowedLabels
.slice(0, -1)
.map((label) => `\`${label}\``)
.join(', ')} and \`${allowedLabels[allowedLabels.length - 1]}\`.`;
const examplesText = [
'```',
'/bot add-label bug-fix',
'```',
'```',
'/bot add-label bug-fix, UI/UX',
'```',
'```',
'/bot remove-label bug-fix, UI/UX',
'```'
].join('\n');
try {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
body:
`Hi @${pr.user.login}, you can manage the labels for this PR by \`/bot add-label\` and \`/bot remove-label\`\n\n` +
`Allowed labels are:\n${labelsList}\n\n` +
`Examples:\n${examplesText}`
});
} catch (error) {
if (isPermissionDenied(error)) {
core.warning(
'Skipping PR comment because token cannot write. Enable Actions write permissions, ' +
'or run with a token that has issues:write and pull_requests:write.'
);
return;
}
throw error;
}
apply-label:
if: github.event_name == 'issue_comment'
permissions:
contents: read
pull-requests: write
issues: write
runs-on: ubuntu-latest
steps:
- name: Apply label command from PR author
uses: actions/github-script@v7
with:
script: |
function isPermissionDenied(error) {
return error && error.status === 403 && /Resource not accessible by integration/i.test(error.message || '');
}
const allowedLabels = [
'bug-fix',
'enhancement',
'Localization',
'profile',
'QoL',
'UI/UX',
'dependencies'
];
const issue = context.payload.issue;
if (!issue.pull_request) {
core.info('Ignoring comment that is not on a pull request.');
return;
}
const body = (context.payload.comment.body || '').trim();
const commandLine = body
.split('\n')
.map((line) => line.trim())
.find((line) => /^\/bot\s+(add-label|remove-label)(?:\s*:\s*|\s+)/i.test(line));
if (!commandLine) {
core.info('No /bot add-label or /bot remove-label command found.');
return;
}
const commandMatch = commandLine.match(/^\/bot\s+(add-label|remove-label)(?:\s*:\s*|\s+)(.+)\s*$/i);
if (!commandMatch) {
core.info('Label command format is invalid.');
return;
}
const action = commandMatch[1].toLowerCase() === 'add-label' ? 'add' : 'remove';
let labelsExpr = (commandMatch[2] || '').trim();
if (!labelsExpr) {
core.info('Label command is missing label name.');
return;
}
if (labelsExpr.startsWith('[') && labelsExpr.endsWith(']')) {
labelsExpr = labelsExpr.slice(1, -1).trim();
}
const requestedRawLabels = labelsExpr
.split(',')
.map((part) => part.trim())
.filter(Boolean);
if (!requestedRawLabels.length) {
core.info('No labels were provided in the command.');
return;
}
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: issue.number
});
const commenter = context.payload.comment.user.login;
if (commenter !== pr.user.login) {
core.info('Ignoring command because commenter is not the PR author.');
return;
}
const labelsByLower = new Map(
allowedLabels.map((label) => [label.toLowerCase(), label])
);
const resolvedLabels = [];
const invalidLabels = [];
for (const rawLabel of requestedRawLabels) {
const resolved = labelsByLower.get(rawLabel.toLowerCase());
if (resolved) {
resolvedLabels.push(resolved);
} else {
invalidLabels.push(rawLabel);
}
}
const uniqueRequestedLabels = [...new Set(resolvedLabels)];
if (action === 'add' && uniqueRequestedLabels.length) {
try {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
labels: uniqueRequestedLabels
});
} catch (error) {
if (isPermissionDenied(error)) {
core.warning(
'Cannot add labels because token cannot write. Enable Actions write permissions, ' +
'or run with a token that has issues:write and pull_requests:write.'
);
return;
}
throw error;
}
core.info(`Added labels: ${uniqueRequestedLabels.join(', ')}`);
}
if (action === 'remove' && uniqueRequestedLabels.length) {
let removedCount = 0;
try {
for (const label of uniqueRequestedLabels) {
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
name: label
});
removedCount += 1;
} catch (error) {
if (isPermissionDenied(error)) {
core.warning(
'Cannot remove labels because token cannot write. Enable Actions write permissions, ' +
'or run with a token that has issues:write and pull_requests:write.'
);
return;
}
if (error.status === 404) {
core.info(`Label is not currently applied: ${label}`);
continue;
}
throw error;
}
}
core.info(`Removed labels count: ${removedCount}`);
} catch (error) {
throw error;
}
}
if (!uniqueRequestedLabels.length) {
core.info('No valid labels were provided in the command.');
}
if (invalidLabels.length) {
const allowedText = allowedLabels.map((label) => `\`${label}\``).join(', ');
const invalidText = invalidLabels.map((label) => `\`${label}\``).join(', ');
const validText = uniqueRequestedLabels.length
? `\n\nProcessed valid label(s): ${uniqueRequestedLabels.map((label) => `\`${label}\``).join(', ')}`
: '';
try {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
body:
`@${commenter} invalid label(s): ${invalidText}.${validText}\n\n` +
`Allowed labels: ${allowedText}\n\n` +
`Use:\n` +
`- \`/bot add-label label\`\n` +
`- \`/bot remove-label label\`\n` +
`- \`/bot add-label label1, label2\``
});
} catch (error) {
if (isPermissionDenied(error)) {
core.warning('Cannot post invalid-label feedback because token cannot write comments.');
return;
}
throw error;
}
}
const processedLabelsText = uniqueRequestedLabels.length ? uniqueRequestedLabels.join(', ') : '(none)';
core.info(`Processed label command: ${action} ${processedLabelsText}`);
+3 -13
View File
@@ -117,7 +117,7 @@ else()
set(SLIC3R_STATIC_INITIAL 1)
endif()
option(SLIC3R_STATIC "Compile OrcaSlicer with static libraries (Boost, TBB, glew)" ${SLIC3R_STATIC_INITIAL})
option(SLIC3R_STATIC "Compile OrcaSlicer with static libraries (Boost, TBB)" ${SLIC3R_STATIC_INITIAL})
option(SLIC3R_GUI "Compile OrcaSlicer with GUI components (OpenGL, wxWidgets)" 1)
option(SLIC3R_FHS "Assume OrcaSlicer is to be installed in a FHS directory structure" 0)
option(SLIC3R_PROFILE "Compile OrcaSlicer with an invasive Shiny profiler" 0)
@@ -694,16 +694,6 @@ if(APPLE AND CMAKE_VERSION VERSION_GREATER_EQUAL "4.0")
set(OPENGL_LIBRARIES "-framework OpenGL" CACHE STRING "OpenGL framework" FORCE)
endif()
set(GLEW_ROOT "${CMAKE_PREFIX_PATH}")
message("GLEW_ROOT: ${GLEW_ROOT}")
# Find glew or use bundled version
if (SLIC3R_STATIC AND NOT SLIC3R_STATIC_EXCLUDE_GLEW)
set(GLEW_USE_STATIC_LIBS ON)
set(GLEW_VERBOSE ON)
endif()
find_package(GLEW REQUIRED)
find_package(glfw3 REQUIRED)
# Find the Cereal serialization library
@@ -919,7 +909,7 @@ elseif (SLIC3R_FHS)
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES}
PATTERN "*/udev" EXCLUDE
)
install(FILES src/dev-utils/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
install(FILES src/dev-utils/platform/unix/com.orcaslicer.OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
foreach(SIZE 32 128 192)
install(FILES ${SLIC3R_RESOURCES_DIR}/images/OrcaSlicer_${SIZE}px.png
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${SIZE}x${SIZE}/apps RENAME OrcaSlicer.png
@@ -928,7 +918,7 @@ elseif (SLIC3R_FHS)
elseif (CMAKE_MACOSX_BUNDLE)
# install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/OrcaSlicer.app/Contents/resources")
else ()
install(FILES src/dev-utils/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(FILES src/dev-utils/platform/unix/com.orcaslicer.OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources")
endif ()
+305 -3
View File
@@ -8,7 +8,7 @@ SCRIPT_PATH=$(dirname "$(readlink -f "${0}")")
pushd "${SCRIPT_PATH}" > /dev/null
function usage() {
echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-h][-i][-j N][-p][-r][-s][-t][-u][-l][-L]"
echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-F][-g][-h][-i][-j N][-p][-r][-s][-t][-u][-l][-L]"
echo " -1: limit builds to one core (where possible)"
echo " -j N: limit builds to N cores (where possible)"
echo " -b: build in Debug mode"
@@ -17,6 +17,8 @@ function usage() {
echo " -d: download and build dependencies in ./deps/ (build prerequisite)"
echo " -D: dry run"
echo " -e: build in RelWithDebInfo mode"
echo " -F: rebuild the cached Docker/Podman runner image from scratch when used with -g"
echo " -g: run the requested build steps inside a Docker/Podman Ubuntu 24.04 container similar to the GitHub Actions Linux runner"
echo " -h: prints this help text"
echo " -i: build the Orca Slicer AppImage (optional)"
echo " -p: boost ccache hit rate by disabling precompiled headers (default: ON)"
@@ -28,6 +30,9 @@ function usage() {
echo " -L: use ld.lld as linker (if available)"
echo "For a first use, you want to './${SCRIPT_NAME} -u'"
echo " and then './${SCRIPT_NAME} -dsi'"
echo "For a GitHub Actions-like Linux build locally, use './${SCRIPT_NAME} -g -istrlL'"
echo "Use './${SCRIPT_NAME} -gF -istrlL' to rebuild the cached runner image first."
echo "Set ORCA_CONTAINER_CLI, ORCA_DOCKER_IMAGE, ORCA_DOCKER_BASE_IMAGE, or ORCA_DOCKER_CMAKE_VERSION to override the container runtime, cached image tag, base image, or CMake version."
}
SLIC3R_PRECOMPILED_HEADERS="ON"
@@ -35,60 +40,83 @@ SLIC3R_PRECOMPILED_HEADERS="ON"
unset name
BUILD_DIR=build
BUILD_CONFIG=Release
while getopts ":1j:bcCdDehiprstulL" opt ; do
FORWARDED_ARGS=()
while getopts ":1j:bcCdDeFghiprstulL" opt ; do
case ${opt} in
1 )
export CMAKE_BUILD_PARALLEL_LEVEL=1
FORWARDED_ARGS+=("-1")
;;
j )
export CMAKE_BUILD_PARALLEL_LEVEL=$OPTARG
FORWARDED_ARGS+=("-j" "$OPTARG")
;;
b )
BUILD_DIR=build-dbg
BUILD_CONFIG=Debug
FORWARDED_ARGS+=("-b")
;;
c )
CLEAN_BUILD=1
FORWARDED_ARGS+=("-c")
;;
C )
COLORED_OUTPUT="-DCOLORED_OUTPUT=ON"
FORWARDED_ARGS+=("-C")
;;
d )
BUILD_DEPS="1"
FORWARDED_ARGS+=("-d")
;;
D )
DRY_RUN="1"
FORWARDED_ARGS+=("-D")
;;
e )
BUILD_DIR=build-dbginfo
BUILD_CONFIG=RelWithDebInfo
FORWARDED_ARGS+=("-e")
;;
F )
CLEAN_DOCKER_IMAGE="1"
;;
g )
USE_DOCKER="1"
;;
h ) usage
exit 1
;;
i )
BUILD_IMAGE="1"
FORWARDED_ARGS+=("-i")
;;
p )
SLIC3R_PRECOMPILED_HEADERS="OFF"
FORWARDED_ARGS+=("-p")
;;
r )
SKIP_RAM_CHECK="1"
FORWARDED_ARGS+=("-r")
;;
s )
BUILD_ORCA="1"
FORWARDED_ARGS+=("-s")
;;
t )
BUILD_TESTS="1"
FORWARDED_ARGS+=("-t")
;;
u )
export UPDATE_LIB="1"
FORWARDED_ARGS+=("-u")
;;
l )
USE_CLANG="1"
FORWARDED_ARGS+=("-l")
;;
L )
USE_LLD="1"
FORWARDED_ARGS+=("-L")
;;
* )
echo "Unknown argument '${opt}', aborting."
@@ -102,6 +130,11 @@ if [ ${OPTIND} -eq 1 ] ; then
exit 1
fi
if [[ -n "${CLEAN_DOCKER_IMAGE}" ]] && [[ -z "${USE_DOCKER}" ]] ; then
echo "Error: -F requires -g."
exit 1
fi
function check_available_memory_and_disk() {
FREE_MEM_GB=$(free --gibi --total | grep 'Mem' | rev | cut --delimiter=" " --fields=1 | rev)
MIN_MEM_GB=10
@@ -139,6 +172,275 @@ function print_and_run() {
fi
}
function resolve_container_cli() {
if [[ -n "${ORCA_CONTAINER_CLI}" ]] ; then
if ! command -v "${ORCA_CONTAINER_CLI}" >/dev/null 2>&1 ; then
echo "Error: container runtime '${ORCA_CONTAINER_CLI}' was not found." >&2
exit 1
fi
echo "${ORCA_CONTAINER_CLI}"
return
fi
if command -v docker >/dev/null 2>&1 ; then
echo "docker"
return
fi
if command -v podman >/dev/null 2>&1 ; then
echo "podman"
return
fi
echo "Error: neither docker nor podman is available. Install one of them or set ORCA_CONTAINER_CLI." >&2
exit 1
}
function get_docker_runner_image() {
local base_image
local docker_cmake_version
local recipe_hash
local sanitized_base_image
local sanitized_cmake_version
if [[ -n "${ORCA_DOCKER_IMAGE}" ]] ; then
echo "${ORCA_DOCKER_IMAGE}"
return
fi
base_image="${ORCA_DOCKER_BASE_IMAGE:-ubuntu:24.04}"
docker_cmake_version="${ORCA_DOCKER_CMAKE_VERSION-4.3.0}"
recipe_hash=$(find "${SCRIPT_PATH}/build_linux.sh" "${SCRIPT_PATH}/scripts/linux.d" -type f -print0 | sort -z | xargs -0 cat | sha256sum | cut -c1-12)
sanitized_base_image=$(echo "${base_image}" | tr '/:@' '---' | tr -cs 'A-Za-z0-9_.-' '-')
sanitized_cmake_version=$(echo "${docker_cmake_version:-system}" | tr -cs 'A-Za-z0-9_.-' '-')
echo "orcaslicer-linux-builder:${sanitized_base_image}-cmake-${sanitized_cmake_version}-${recipe_hash}"
}
function docker_runner_dockerfile() {
cat <<'EOF'
ARG BASE_IMAGE=ubuntu:24.04
FROM ${BASE_IMAGE}
ARG CMAKE_VERSION=4.3.0
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y sudo ca-certificates curl tar
COPY build_linux.sh /tmp/orcaslicer/build_linux.sh
COPY scripts/linux.d /tmp/orcaslicer/scripts/linux.d
WORKDIR /tmp/orcaslicer
RUN chmod +x ./build_linux.sh
RUN ./build_linux.sh -ur
RUN if [[ -n "${CMAKE_VERSION}" ]] ; then \
case "$(uname -m)" in \
x86_64|amd64) cmake_arch="x86_64" ;; \
aarch64|arm64) cmake_arch="aarch64" ;; \
*) cmake_arch="" ;; \
esac ; \
if [[ -n "${cmake_arch}" ]] ; then \
cmake_root="/opt/cmake-${CMAKE_VERSION}-linux-${cmake_arch}" ; \
if ! curl -fsSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-${cmake_arch}.tar.gz" | tar -xz -C /opt ; then \
echo "Warning: failed to install CMake ${CMAKE_VERSION}; falling back to the distro cmake package." ; \
elif [[ -d "${cmake_root}" ]] ; then \
ln -sf "${cmake_root}/bin/"* /usr/local/bin/ ; \
fi ; \
else \
echo "Skipping GitHub Actions CMake install for unsupported architecture $(uname -m)." ; \
fi ; \
fi
RUN rm -rf /var/lib/apt/lists/* /tmp/orcaslicer
EOF
}
function ensure_docker_runner_image() {
local container_cli
local base_image
local runner_image
local docker_cmake_version
local image_exists="0"
local force_rebuild="0"
local -a build_cmd
container_cli="$1"
runner_image="$2"
base_image="${ORCA_DOCKER_BASE_IMAGE:-ubuntu:24.04}"
docker_cmake_version="${ORCA_DOCKER_CMAKE_VERSION-4.3.0}"
if "${container_cli}" image inspect "${runner_image}" >/dev/null 2>&1 ; then
image_exists="1"
fi
if [[ -n "${CLEAN_DOCKER_IMAGE}" ]] ; then
force_rebuild="1"
if [[ "${image_exists}" == "1" ]] ; then
echo "Removing cached container image ${runner_image} ..."
if [[ -z "${DRY_RUN}" ]] ; then
"${container_cli}" image rm -f "${runner_image}" >/dev/null
else
printf '%q ' "${container_cli}" image rm -f "${runner_image}"
echo
fi
image_exists="0"
fi
fi
if [[ "${image_exists}" == "1" ]] ; then
echo "Using cached container image ${runner_image}"
return
fi
build_cmd=(
"${container_cli}" build --pull
-t "${runner_image}"
--build-arg "BASE_IMAGE=${base_image}"
--build-arg "CMAKE_VERSION=${docker_cmake_version}"
)
if [[ "${force_rebuild}" == "1" ]] ; then
build_cmd+=(--no-cache)
fi
build_cmd+=(-f - "${SCRIPT_PATH}")
printf '%q ' "${build_cmd[@]}"
echo
if [[ -n "${DRY_RUN}" ]] ; then
return
fi
docker_runner_dockerfile | "${build_cmd[@]}"
}
function run_in_docker() {
local container_cli
local runner_image
local container_workspace
local host_uid
local host_gid
local host_user
local -a build_args
local -a container_env
container_cli=$(resolve_container_cli)
runner_image=$(get_docker_runner_image)
host_uid=$(id -u)
host_gid=$(id -g)
host_user="${USER:-orca}"
container_workspace="/__w/OrcaSlicer/OrcaSlicer"
build_args=()
for item in "${FORWARDED_ARGS[@]}" ; do
if [[ "${item}" == "-u" ]] || [[ "${item}" == "-D" ]] ; then
continue
fi
build_args+=("${item}")
done
container_env=(
-e "CI=true"
-e "GITHUB_ACTIONS=true"
-e "GITHUB_WORKSPACE=${container_workspace}"
-e "RUNNER_OS=Linux"
-e "RUNNER_TEMP=/tmp"
-e "HOST_UID=${host_uid}"
-e "HOST_GID=${host_gid}"
-e "HOST_USER=${host_user}"
)
if [[ -n "${CMAKE_BUILD_PARALLEL_LEVEL}" ]] ; then
container_env+=( -e "CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}" )
fi
if [[ -n "${ORCA_UPDATER_SIG_KEY}" ]] ; then
container_env+=( -e "ORCA_UPDATER_SIG_KEY=${ORCA_UPDATER_SIG_KEY}" )
fi
ensure_docker_runner_image "${container_cli}" "${runner_image}"
printf '%q ' "${container_cli}" run --rm -i \
-v "${SCRIPT_PATH}:${container_workspace}" \
-w "${container_workspace}" \
"${container_env[@]}" \
"${runner_image}" \
bash -s -- "${build_args[@]}"
echo
if [[ -n "${DRY_RUN}" ]] ; then
return
fi
"${container_cli}" run --rm -i \
-v "${SCRIPT_PATH}:${container_workspace}" \
-w "${container_workspace}" \
"${container_env[@]}" \
"${runner_image}" \
bash -s -- "${build_args[@]}" <<'EOF'
set -e
function create_builder_user() {
if [[ "${HOST_UID}" == "0" ]] ; then
HOST_USER=root
return
fi
if getent group "${HOST_GID}" >/dev/null 2>&1 ; then
HOST_GROUP=$(getent group "${HOST_GID}" | cut -d: -f1)
else
HOST_GROUP="orca-builder"
if getent group "${HOST_GROUP}" >/dev/null 2>&1 ; then
HOST_GROUP="orca-builder-${HOST_GID}"
fi
groupadd -g "${HOST_GID}" "${HOST_GROUP}"
fi
if getent passwd "${HOST_UID}" >/dev/null 2>&1 ; then
HOST_USER=$(getent passwd "${HOST_UID}" | cut -d: -f1)
usermod -g "${HOST_GROUP}" "${HOST_USER}"
elif id -u "${HOST_USER}" >/dev/null 2>&1 ; then
usermod -u "${HOST_UID}" -g "${HOST_GROUP}" "${HOST_USER}"
else
useradd -m -u "${HOST_UID}" -g "${HOST_GROUP}" -s /bin/bash "${HOST_USER}"
fi
echo "${HOST_USER} ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/orcaslicer-builder
chmod 0440 /etc/sudoers.d/orcaslicer-builder
}
create_builder_user
mkdir -p "${GITHUB_WORKSPACE}/deps/build/destdir"
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/deps/build"
if [[ -d "${GITHUB_WORKSPACE}/build" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build"
fi
if [[ -d "${GITHUB_WORKSPACE}/build-dbg" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build-dbg"
fi
if [[ -d "${GITHUB_WORKSPACE}/build-dbginfo" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build-dbginfo"
fi
sudo -H -u "${HOST_USER}" env \
CMAKE_BUILD_PARALLEL_LEVEL="${CMAKE_BUILD_PARALLEL_LEVEL-}" \
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" \
ORCA_UPDATER_SIG_KEY="${ORCA_UPDATER_SIG_KEY-}" \
bash -c '
set -e
cd "${GITHUB_WORKSPACE}"
if [[ "$#" -gt 0 ]] ; then
./build_linux.sh "$@"
else
echo "No build steps were requested after container setup."
fi
' bash "$@"
EOF
}
if [[ -n "${USE_DOCKER}" ]] ; then
run_in_docker
popd > /dev/null # ${SCRIPT_PATH}
exit 0
fi
# cmake 4.x compatibility workaround
export CMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -215,7 +517,7 @@ if [[ -n "${BUILD_DEPS}" ]] ; then
fi
print_and_run cmake -S deps -B deps/$BUILD_DIR "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" -G Ninja "${COLORED_OUTPUT}" "${BUILD_ARGS[@]}"
print_and_run cmake --build deps/$BUILD_DIR
print_and_run cmake --build deps/$BUILD_DIR -j1
fi
if [[ -n "${BUILD_ORCA}" ]] || [[ -n "${BUILD_TESTS}" ]] ; then
+1
View File
@@ -18,6 +18,7 @@ orcaslicer_add_cmake_project(Boost
-DBOOST_EXCLUDE_LIBRARIES:STRING=contract|fiber|numpy|stacktrace|wave|test
-DBOOST_LOCALE_ENABLE_ICU:BOOL=OFF # do not link to libicu, breaks compatibility between distros
-DBUILD_TESTING:BOOL=OFF
-DBOOST_IOSTREAMS_ENABLE_BZIP2:BOOL=OFF # avoid libbz2 soname differences in AppImage builds
-DBOOST_IOSTREAMS_ENABLE_ZSTD:BOOL=OFF
"${_context_abi_line}"
"${_context_arch_line}"
+11 -4
View File
@@ -166,11 +166,18 @@ function(orcaslicer_add_cmake_project projectname)
endif ()
endif ()
set(_gen "")
set(_build_j "-j${NPROC}")
if (MSVC)
set(_gen CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}")
set(_build_j "/m")
set(_gen CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}")
else()
set(_gen "")
endif()
if ($ENV{CMAKE_BUILD_PARALLEL_LEVEL})
set(_build_j "") # assume environment will control --build parallel setting
elseif(MSVC)
set(_build_j "/m")
else()
set(_build_j "-j${NPROC}")
endif ()
if (NOT IS_CROSS_COMPILE OR NOT APPLE)
+7 -9
View File
@@ -6,22 +6,20 @@ else()
set(_build_static ON)
endif()
set(_glfw_platform_args "")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(_glfw_use_wayland "-DGLFW_USE_WAYLAND=ON")
else()
set(_glfw_use_wayland "-DGLFW_USE_WAYLAND=FF")
set(_glfw_platform_args -DGLFW_BUILD_WAYLAND=ON -DGLFW_BUILD_X11=ON)
endif()
orcaslicer_add_cmake_project(GLFW
URL https://github.com/glfw/glfw/archive/refs/tags/3.3.7.zip
URL_HASH SHA256=e02d956935e5b9fb4abf90e2c2e07c9a0526d7eacae8ee5353484c69a2a76cd0
#DEPENDS dep_Boost
URL https://github.com/glfw/glfw/archive/refs/tags/3.4.zip
URL_HASH SHA256=a133ddc3d3c66143eba9035621db8e0bcf34dba1ee9514a9e23e96afd39fd57a
CMAKE_ARGS
-DBUILD_SHARED_LIBS=${_build_shared}
-DBUILD_SHARED_LIBS=${_build_shared}
-DGLFW_BUILD_DOCS=OFF
-DGLFW_BUILD_EXAMPLES=OFF
-DGLFW_BUILD_TESTS=OFF
${_glfw_use_wayland}
-DGLFW_BUILD_TESTS=OFF
${_glfw_platform_args}
)
if (MSVC)
+2
View File
@@ -55,6 +55,8 @@ orcaslicer_add_cmake_project(OpenCV
-DWITH_VTK=OFF
-DWITH_JPEG=OFF
-DWITH_WEBP=OFF
-DWITH_TIFF=OFF
-DBUILD_TIFF=OFF
-DENABLE_PRECOMPILED_HEADERS=OFF
-DINSTALL_TESTS=OFF
-DINSTALL_C_EXAMPLES=OFF
+2 -1
View File
@@ -38,7 +38,7 @@ orcaslicer_add_cmake_project(
-DwxUSE_DETECT_SM=OFF
-DwxUSE_PRIVATE_FONTS=ON
-DwxUSE_OPENGL=ON
-DwxUSE_GLCANVAS_EGL=OFF
-DwxUSE_GLCANVAS_EGL=ON
-DwxUSE_WEBREQUEST=ON
-DwxUSE_WEBVIEW=ON
${_wx_edge}
@@ -52,6 +52,7 @@ orcaslicer_add_cmake_project(
-DwxUSE_ZLIB=sys
-DwxUSE_LIBJPEG=sys
-DwxUSE_LIBTIFF=OFF
-DwxUSE_LIBWEBP=builtin
-DwxUSE_EXPAT=sys
-DwxUSE_NANOSVG=OFF
)
+1 -1
View File
@@ -12435,7 +12435,7 @@ msgid ""
"Orca Slicer can upload G-code files to a printer host. This field should "
"contain the API Key or the password required for authentication."
msgstr ""
"OrcaSlicer puede cargar archivos G-Cpde a un host de impresora. Este campo "
"OrcaSlicer puede cargar archivos G-Code a un host de impresora. Este campo "
"debería contener una clave API o una contraseña requerida para la "
"autenticación."
File diff suppressed because it is too large Load Diff
+37 -37
View File
@@ -2854,7 +2854,7 @@ msgstr "内环"
#. TRN To be shown in the main menu View->Top
msgid "Top"
msgstr "上"
msgstr "顶部"
msgid ""
"The fan controls the temperature during printing to improve print quality. "
@@ -3677,7 +3677,7 @@ msgstr "更新剩余容量"
msgid ""
"AMS will attempt to estimate the remaining capacity of the Bambu Lab "
"filaments."
msgstr "AMS 将尝试估计 Bambu Lab 细丝的剩余容量。"
msgstr "AMS 将尝试估计 Bambu Lab 耗材丝的剩余容量。"
msgid "AMS filament backup"
msgstr "AMS材料备份"
@@ -4813,7 +4813,7 @@ msgstr "当前切片结果的分组不是最佳的。"
#, boost-format
msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
msgstr "与最佳分组相比,增加 %1%g 细丝和 %2% 变化。"
msgstr "与最佳分组相比,增加 %1%g 耗材丝和 %2% 变化。"
#, boost-format
msgid ""
@@ -5088,11 +5088,11 @@ msgstr "对齐到Y轴"
msgctxt "Camera"
msgid "Left"
msgstr "左边"
msgstr "左"
msgctxt "Camera"
msgid "Right"
msgstr "正确的"
msgstr "右"
msgid "Add"
msgstr "添加"
@@ -5236,7 +5236,7 @@ msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s
msgid ""
"Filaments %s are placed in the %s, but the generated G-code path exceeds the "
"printable range of the %s."
msgstr "细丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
#, c-format, boost-format
msgid ""
@@ -5248,7 +5248,7 @@ msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s
msgid ""
"Filaments %s are placed in the %s, but the generated G-code path exceeds the "
"printable height of the %s."
msgstr "细丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
msgid "Open wiki for more information."
msgstr "打开维基百科了解更多信息。"
@@ -5258,7 +5258,7 @@ msgstr "只有正在编辑的对象是可见的。"
#, c-format, boost-format
msgid "Filaments %s cannot be printed directly on the surface of this plate."
msgstr "细丝 %s 不能直接打印在该板的表面上。"
msgstr "耗材 %s 不能直接打印在该板的表面上。"
msgid ""
"PLA and PETG filaments detected in the mixture. Adjust parameters according "
@@ -5475,13 +5475,13 @@ msgstr "顶部视图"
#. TRN To be shown in the main menu View->Bottom
msgid "Bottom"
msgstr "下"
msgstr "底部"
msgid "Bottom View"
msgstr "底部视图"
msgid "Front"
msgstr "前"
msgstr "前面"
msgid "Front View"
msgstr "前视图"
@@ -6855,7 +6855,7 @@ msgid "Nozzle Clumping Detection"
msgstr "裹头检测"
msgid "Check if the nozzle is clumping by filaments or other foreign objects."
msgstr "检查喷嘴是否被细丝或其他异物堵塞。"
msgstr "检查喷嘴是否被耗材或其他异物堵塞。"
msgid "Detects air printing caused by nozzle clogging or filament grinding."
msgstr "检测由于喷嘴堵塞或耗材丝研磨造成的空打。"
@@ -8422,13 +8422,13 @@ msgid "My Printer"
msgstr "我的打印机"
msgid "Left filaments"
msgstr "左细丝"
msgstr "左耗材"
msgid "AMS filaments"
msgstr "AMS 打印丝"
msgid "Right filaments"
msgstr "右细丝"
msgstr "右耗材"
msgid "Click to select filament color"
msgstr "点击设置材料颜色"
@@ -8651,10 +8651,10 @@ msgid "Send print job"
msgstr "发送打印作业"
msgid "On"
msgstr "在"
msgstr "开"
msgid "Not satisfied with the grouping of filaments? Regroup and slice ->"
msgstr "对细丝的分组不满意?重组并切片 ->"
msgstr "对耗材丝的分组不满意?重组并切片 ->"
msgid "Manually change external spool during printing for multi-color printing"
msgstr "在打印过程中手动更换外部线轴以进行多色打印"
@@ -8807,7 +8807,7 @@ msgstr "名称长度超过限制。"
#, c-format, boost-format
msgid "Cost %dg filament and %d changes more than optimal grouping."
msgstr "成本 %dg 细丝和 %d 的变化超过最佳分组。"
msgstr "成本 %dg 耗材和 %d 的变化超过最佳分组。"
msgid "nozzle"
msgstr "喷嘴"
@@ -10094,7 +10094,7 @@ msgid "Append"
msgstr "追加"
msgid "Append to existing filaments"
msgstr "附加到现有细丝"
msgstr "附加到现有耗材"
msgid "Reset mapped extruders."
msgstr "重置匹配的耗材丝。"
@@ -10316,7 +10316,7 @@ msgid ""
"changed or filaments changed. You could disable the auto-calculate in Orca "
"Slicer > Preferences"
msgstr ""
"每次细丝颜色发生变化或细丝发生变化时,Orca 都会重新计算您的冲洗量。您可以在 "
"每次耗材颜色发生变化或耗材发生变化时,Orca 都会重新计算您的冲洗量。您可以在 "
"Orca Slicer > 首选项中禁用自动计算"
msgid "Flushing volume (mm³) for each filament pair."
@@ -11832,7 +11832,7 @@ msgid ""
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"稍微减小该值(例如 0.9)以减少桥梁材料的用量,从而改善下垂。 实际使用的桥流量"
"是通过将该值乘以细丝流量比以及对象的流量比(如果已设置)来计算的。"
"是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
msgid "Internal bridge flow ratio"
msgstr "内部搭桥流量比例"
@@ -11847,7 +11847,7 @@ msgid ""
"object's flow ratio."
msgstr ""
"该值控制内部桥接层的厚度。这是稀疏填充的第一层。稍微减小该值(例如 0.9)可改"
"善稀疏填充的表面质量。 实际使用的内部桥流量是通过将该值乘以桥流量比、细丝流量"
"善稀疏填充的表面质量。 实际使用的内部桥流量是通过将该值乘以桥流量比、耗材流量"
"比以及对象的流量比(如果已设置)来计算的。"
msgid "Top surface flow ratio"
@@ -11861,7 +11861,7 @@ msgid ""
"with the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响顶部固体填充的材料量。您可以稍微减少它以获得光滑的表面光洁度。 实际"
"使用的顶面流量是通过将该值乘以细丝流量比以及对象的流量比(如果已设置)来计算"
"使用的顶面流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算"
"的。"
msgid "Bottom surface flow ratio"
@@ -11904,7 +11904,7 @@ msgid ""
"The actual outer wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响外墙材料的用量。 实际使用的外壁流量是通过将该值乘以细丝流量比以及对"
"该因素影响外墙材料的用量。 实际使用的外壁流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Inner wall flow ratio"
@@ -11916,7 +11916,7 @@ msgid ""
"The actual inner wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响内壁材料的用量。 实际使用的内壁流量是通过将该值乘以细丝流量比以及对"
"该因素影响内壁材料的用量。 实际使用的内壁流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Overhang flow ratio"
@@ -11928,7 +11928,7 @@ msgid ""
"The actual overhang flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响悬垂材料的数量。 实际使用的悬垂流量是通过将该值乘以细丝流量比以及对"
"该因素影响悬垂材料的数量。 实际使用的悬垂流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Sparse infill flow ratio"
@@ -11940,7 +11940,7 @@ msgid ""
"The actual sparse infill flow used is calculated by multiplying this value "
"by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响稀疏填充的材料量。 实际使用的稀疏填充流量是通过将该值乘以细丝流量比"
"该因素影响稀疏填充的材料量。 实际使用的稀疏填充流量是通过将该值乘以耗材流量比"
"以及对象的流量比(如果已设置)来计算的。"
msgid "Internal solid infill flow ratio"
@@ -11953,7 +11953,7 @@ msgid ""
"value by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响内部固体填充材料的数量。 实际使用的内部固体填充流量是通过将该值乘以"
"细丝流量比以及对象的流量比(如果已设置)来计算的。"
"耗材流量比以及对象的流量比(如果已设置)来计算的。"
msgid "Gap fill flow ratio"
msgstr "间隙填充流量比"
@@ -11964,7 +11964,7 @@ msgid ""
"The actual gap filling flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响填充间隙的材料量。 实际使用的间隙填充流量是通过将该值乘以细丝流量比"
"该因素影响填充间隙的材料量。 实际使用的间隙填充流量是通过将该值乘以耗材流量比"
"以及对象的流量比(如果已设置)来计算的。"
msgid "Support flow ratio"
@@ -11976,7 +11976,7 @@ msgid ""
"The actual support flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响支撑材料的数量。 实际使用的支撑流量是通过将该值乘以细丝流量比以及对"
"该因素影响支撑材料的数量。 实际使用的支撑流量是通过将该值乘以耗材流量比以及对"
"象的流量比(如果已设置)来计算的。"
msgid "Support interface flow ratio"
@@ -11988,7 +11988,7 @@ msgid ""
"The actual support interface flow used is calculated by multiplying this "
"value by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"该因素影响支撑界面的材料量。 实际使用的支撑界面流量是通过将该值乘以细丝流量比"
"该因素影响支撑界面的材料量。 实际使用的支撑界面流量是通过将该值乘以耗材流量比"
"以及对象的流量比(如果已设置)来计算的。"
msgid "Precise wall"
@@ -13851,7 +13851,7 @@ msgid ""
"the ironing flow for each filament type. Too high value results in "
"overextrusion on the surface."
msgstr ""
"针对熨烫流程的细丝特定覆盖。这使您可以为每种细丝类型定制熨烫流程。值太高会导"
"针对熨烫流程的耗材特定覆盖。这使您可以为每种耗材类型定制熨烫流程。值太高会导"
"致表面过度挤压。"
msgid "Ironing line spacing"
@@ -13861,7 +13861,7 @@ msgid ""
"Filament-specific override for ironing line spacing. This allows you to "
"customize the spacing between ironing lines for each filament type."
msgstr ""
"针对熨烫线间距的细丝特定覆盖。这使您可以自定义每种细丝类型的熨烫线之间的间"
"针对熨烫线间距的耗材特定覆盖。这使您可以自定义每种耗材类型的熨烫线之间的间"
"距。"
msgid "Ironing inset"
@@ -13871,7 +13871,7 @@ msgid ""
"Filament-specific override for ironing inset. This allows you to customize "
"the distance to keep from the edges when ironing for each filament type."
msgstr ""
"用于熨烫插入的细丝特定覆盖。这使您可以自定义熨烫每种细丝类型时与边缘保持的距"
"用于熨烫插入的耗材丝特定覆盖。这使您可以自定义熨烫每种耗材丝类型时与边缘保持的距"
"离。"
msgid "Ironing speed"
@@ -13881,7 +13881,7 @@ msgid ""
"Filament-specific override for ironing speed. This allows you to customize "
"the print speed of ironing lines for each filament type."
msgstr ""
"特定于耗材的熨烫速度优先。这允许您自定义每种细丝类型的熨烫线的打印速度。"
"特定于耗材的熨烫速度优先。这允许您自定义每种耗材丝类型的熨烫线的打印速度。"
msgid ""
"Randomly jitter while printing the wall, so that the surface has a rough "
@@ -13948,7 +13948,7 @@ msgid ""
"displayed, and the model will not be sliced. You can choose this number "
"until this error is repeated."
msgstr ""
"模糊皮肤生成模式。仅适用于阿拉克尼!\n"
"模糊皮肤生成模式。仅适用于Arachne!\n"
"位移:经典模式,通过将喷嘴从原始路径向侧面移动来形成图案。\n"
"挤出:通过挤出塑料量而形成图案的模式。这是一种快速而直接的算法,没有不必要的"
"喷嘴抖动,可以产生平滑的图案。但它对于在整个阵列中形成松散的墙壁更有用。\n"
@@ -14868,7 +14868,7 @@ msgstr ""
"注意:此参数禁用圆弧拟合。"
msgid "mm³/s²"
msgstr "毫米立方/秒平方"
msgstr "mm³/s²"
msgid "Smoothing segment length"
msgstr "平滑段长度"
@@ -15213,7 +15213,7 @@ msgstr "切料回抽距离"
msgid ""
"Experimental feature: Retraction length before cutting off during filament "
"change."
msgstr "实验性选项。在更换耗材丝时,切断前的回抽长度"
msgstr "实验性选项:在更换耗材丝时,切断前的回抽长度"
msgid "Long retraction when extruder change"
msgstr "更换挤出机时长回缩"
@@ -20696,7 +20696,7 @@ msgstr ""
#~ msgstr "检查新版本"
#~ msgid "Detect spaghetti failure(scattered lose filament)."
#~ msgstr "检测炒面故障(散落的细丝)。"
#~ msgstr "检测炒面故障(散落的耗材丝)。"
#~ msgid "Rotate of view"
#~ msgstr "旋转视图"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+20904 -20904
View File
File diff suppressed because it is too large Load Diff
+20316 -20316
View File
File diff suppressed because it is too large Load Diff
+20216 -20216
View File
File diff suppressed because it is too large Load Diff
+21800 -21800
View File
File diff suppressed because it is too large Load Diff
+42 -42
View File
@@ -1,43 +1,43 @@
{
"version": "1.0.0.4",
"high_temp_filament": [
"ABS",
"ASA",
"ASA-CF",
"PC",
"PA",
"PA-CF",
"PA-GF",
"PA6-CF",
"PET-CF",
"PPS",
"PPS-CF",
"PPA-CF",
"PPA-GF",
"ABS-GF",
"ASA-AERO"
],
"low_temp_filament": [
"PLA",
"TPU",
"TPU-AMS",
"PLA-CF",
"PLA-AERO",
"PVA",
"BVOH",
"PCTG",
"PETG",
"PETG-CF",
"SBS"
],
"high_low_compatible_filament":[
"HIPS",
"PE",
"PP",
"EVA",
"PE-CF",
"PP-CF",
"PP-GF",
"PHA"
]
}
"version": "1.0.0.4",
"high_temp_filament": [
"ABS",
"ASA",
"ASA-CF",
"PC",
"PA",
"PA-CF",
"PA-GF",
"PA6-CF",
"PET-CF",
"PPS",
"PPS-CF",
"PPA-CF",
"PPA-GF",
"ABS-GF",
"ASA-AERO"
],
"low_temp_filament": [
"PLA",
"TPU",
"TPU-AMS",
"PLA-CF",
"PLA-AERO",
"PVA",
"BVOH",
"PCTG",
"PETG",
"PETG-CF",
"SBS"
],
"high_low_compatible_filament": [
"HIPS",
"PE",
"PP",
"EVA",
"PE-CF",
"PP-CF",
"PP-GF",
"PHA"
]
}
+40 -40
View File
@@ -1,41 +1,41 @@
{
"incompatible_nozzles":{
"Standard":{
"0.2":[
"Bambu PLA Marble",
"Bambu PLA Sparkle",
"Bambu PLA Wood",
"Bambu PLA Galaxy",
"Bambu PETG Translucent"
],
"0.4":[],
"0.6":[
"Bambu PLA Silk+",
"Bambu PLA Silk",
"Bambu PLA Aero",
"Bambu ASA-Aero"
],
"0.8":[
"Bambu PLA Silk+",
"Bambu PLA Silk",
"Bambu PLA Aero",
"Bambu ASA-Aero"
]
},
"High Flow":{
"0.4":[
"Bambu PLA-CF",
"Bambu PETG-CF",
"Bambu ASA-CF",
"Bambu PAHT-CF",
"Bambu PET-CF",
"Bambu PA6-CF",
"Bambu PA6-GF",
"Bambu PPA-CF",
"Bambu PPS-CF"
],
"0.6":[],
"0.8":[]
}
}
}
"incompatible_nozzles": {
"Standard": {
"0.2": [
"Bambu PLA Marble",
"Bambu PLA Sparkle",
"Bambu PLA Wood",
"Bambu PLA Galaxy",
"Bambu PETG Translucent"
],
"0.4": [],
"0.6": [
"Bambu PLA Silk+",
"Bambu PLA Silk",
"Bambu PLA Aero",
"Bambu ASA-Aero"
],
"0.8": [
"Bambu PLA Silk+",
"Bambu PLA Silk",
"Bambu PLA Aero",
"Bambu ASA-Aero"
]
},
"High Flow": {
"0.4": [
"Bambu PLA-CF",
"Bambu PETG-CF",
"Bambu ASA-CF",
"Bambu PAHT-CF",
"Bambu PET-CF",
"Bambu PA6-CF",
"Bambu PA6-GF",
"Bambu PPA-CF",
"Bambu PPS-CF"
],
"0.6": [],
"0.8": []
}
}
}
+10 -10
View File
@@ -1,11 +1,11 @@
{
"version": "1.0.0.3",
"nozzle_hrc": {
"hardened_steel": 55,
"stainless_steel": 20,
"tungsten_carbide": 85,
"brass": 2,
"E3D": 55,
"undefine": 0
}
}
"version": "1.0.0.3",
"nozzle_hrc": {
"hardened_steel": 55,
"stainless_steel": 20,
"tungsten_carbide": 85,
"brass": 2,
"E3D": 55,
"undefine": 0
}
}
+22 -6
View File
@@ -3,7 +3,10 @@
"display_name": "Bambu Lab X1 Carbon",
"print": {
"ipcam": {
"resolution_supported": [ "720p", "1080p" ],
"resolution_supported": [
"720p",
"1080p"
],
"virtual_camera": "enabled",
"liveview": {
"remote": "tutk"
@@ -13,7 +16,10 @@
"model_download": "enabled"
}
},
"nozzle_temp_range": [ 0, 300 ],
"nozzle_temp_range": [
0,
300
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/x1/maintenance/replace-hotend",
"en": "https://wiki.bambulab.com/en/x1/maintenance/replace-hotend"
@@ -50,15 +56,25 @@
"support_ams_ext_mix_print": true
},
"model_id": "BL-P001",
"compatible_machine": [ "BL-P002", "C11", "C12", "C13" ],
"auto_cali_not_support_filaments": [ "GFU03", "GFU04" ],
"compatible_machine": [
"BL-P002",
"C11",
"C12",
"C13"
],
"auto_cali_not_support_filaments": [
"GFU03",
"GFU04"
],
"support_wrapping_detection": false,
"auto_pa_cali_thumbnail_image": "fd_calibration_auto",
"printer_type": "3DPrinter-X1-Carbon",
"printer_thumbnail_image": "printer_thumbnail_x1c",
"printer_connect_help_image": "input_access_code_x1",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_xp"],
"printer_ext_image": [
"ext_image_xp"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_x1",
@@ -101,4 +117,4 @@
"support_user_preset": true
}
}
}
}
+22 -6
View File
@@ -3,7 +3,10 @@
"display_name": "Bambu Lab X1",
"print": {
"ipcam": {
"resolution_supported": [ "720p", "1080p" ],
"resolution_supported": [
"720p",
"1080p"
],
"virtual_camera": "enabled",
"liveview": {
"remote": "tutk"
@@ -13,7 +16,10 @@
"model_download": "enabled"
}
},
"nozzle_temp_range": [ 0, 300 ],
"nozzle_temp_range": [
0,
300
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/x1/maintenance/replace-hotend",
"en": "https://wiki.bambulab.com/en/x1/maintenance/replace-hotend"
@@ -51,14 +57,24 @@
},
"model_id": "BL-P002",
"auto_pa_cali_thumbnail_image": "fd_calibration_auto",
"compatible_machine": [ "BL-P001", "C11", "C12", "C13" ],
"auto_cali_not_support_filaments": [ "GFU03", "GFU04" ],
"compatible_machine": [
"BL-P001",
"C11",
"C12",
"C13"
],
"auto_cali_not_support_filaments": [
"GFU03",
"GFU04"
],
"printer_type": "3DPrinter-X1",
"printer_thumbnail_image": "printer_thumbnail",
"support_wrapping_detection": false,
"printer_connect_help_image": "input_access_code_x1",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_xp"],
"printer_ext_image": [
"ext_image_xp"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_x1",
@@ -101,4 +117,4 @@
"support_user_preset": true
}
}
}
}
+20 -5
View File
@@ -3,12 +3,17 @@
"display_name": "Bambu Lab P1P",
"print": {
"ipcam": {
"resolution_supported": [ "720p" ],
"resolution_supported": [
"720p"
],
"liveview": {
"local": "local"
}
},
"nozzle_temp_range": [ 0, 300 ],
"nozzle_temp_range": [
0,
300
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/p1/maintenance/complete-hot-end-assembly",
"en": "https://wiki.bambulab.com/en/p1/maintenance/complete-hot-end-assembly"
@@ -47,14 +52,24 @@
"model_id": "C11",
"support_wrapping_detection": false,
"auto_pa_cali_thumbnail_image": "fd_calibration_auto",
"compatible_machine": [ "BL-P001", "BL-P002", "C12", "C13" ],
"auto_cali_not_support_filaments": [ "GFU03", "GFU04" ],
"compatible_machine": [
"BL-P001",
"BL-P002",
"C12",
"C13"
],
"auto_cali_not_support_filaments": [
"GFU03",
"GFU04"
],
"printer_type": "C11",
"ftp_folder": "sdcard/",
"printer_thumbnail_image": "printer_thumbnail_p1p",
"printer_connect_help_image": "input_access_code_p1p",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_xp"],
"printer_ext_image": [
"ext_image_xp"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_p1p",
+23 -6
View File
@@ -3,12 +3,17 @@
"display_name": "Bambu Lab P1S",
"print": {
"ipcam": {
"resolution_supported": [ "720p" ],
"resolution_supported": [
"720p"
],
"liveview": {
"local": "local"
}
},
"nozzle_temp_range": [ 0, 300 ],
"nozzle_temp_range": [
0,
300
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/p1/maintenance/complete-hot-end-assembly",
"en": "https://wiki.bambulab.com/en/p1/maintenance/complete-hot-end-assembly"
@@ -47,14 +52,24 @@
"model_id": "C12",
"support_wrapping_detection": false,
"auto_pa_cali_thumbnail_image": "fd_calibration_auto",
"compatible_machine": [ "BL-P001", "BL-P002", "C11", "C13" ],
"auto_cali_not_support_filaments": [ "GFU03", "GFU04" ],
"compatible_machine": [
"BL-P001",
"BL-P002",
"C11",
"C13"
],
"auto_cali_not_support_filaments": [
"GFU03",
"GFU04"
],
"printer_type": "C12",
"ftp_folder": "sdcard/",
"printer_thumbnail_image": "printer_thumbnail_p1s",
"printer_connect_help_image": "input_access_code_p1p",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_xp"],
"printer_ext_image": [
"ext_image_xp"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_p1p",
@@ -69,7 +84,9 @@
},
"01.03.50.01": {
"engineer": "00.06.03.51",
"resolution_supported": ["720p"],
"resolution_supported": [
"720p"
],
"print": {
"ipcam": {
"liveview": {
+26 -7
View File
@@ -3,7 +3,10 @@
"display_name": "Bambu Lab X1E",
"print": {
"ipcam": {
"resolution_supported": [ "720p", "1080p" ],
"resolution_supported": [
"720p",
"1080p"
],
"virtual_camera": "enabled",
"liveview": {
"remote": "tutk"
@@ -13,7 +16,10 @@
"model_download": "enabled"
}
},
"nozzle_temp_range": [ 0, 320 ],
"nozzle_temp_range": [
0,
320
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/x1/maintenance/replace-hotend",
"en": "https://wiki.bambulab.com/en/x1/maintenance/replace-hotend"
@@ -46,7 +52,10 @@
"support_first_layer_inspect": true,
"support_chamber": true,
"support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [0, 60],
"support_chamber_temp_edit_range": [
0,
60
],
"support_extrusion_cali": false,
"support_user_preset": false,
"bed_temperature_limit": 110,
@@ -56,13 +65,23 @@
"model_id": "C13",
"support_wrapping_detection": false,
"auto_pa_cali_thumbnail_image": "fd_calibration_auto",
"compatible_machine": [ "BL-P001", "BL-P002", "C11", "C12" ],
"auto_cali_not_support_filaments": [ "GFU03", "GFU04" ],
"compatible_machine": [
"BL-P001",
"BL-P002",
"C11",
"C12"
],
"auto_cali_not_support_filaments": [
"GFU03",
"GFU04"
],
"printer_type": "C13",
"printer_thumbnail_image": "printer_thumbnail_x1e",
"printer_connect_help_image": "input_access_code_x1",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_xp"],
"printer_ext_image": [
"ext_image_xp"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_x1",
@@ -74,4 +93,4 @@
"01.05.06.06": {
"rv2166": "00.00.21.20"
}
}
}
+15 -5
View File
@@ -3,13 +3,18 @@
"display_name": "Bambu Lab A1 mini",
"print": {
"ipcam": {
"resolution_supported": [ "720p" ],
"resolution_supported": [
"720p"
],
"liveview": {
"local": "local",
"remote": "tutk"
}
},
"nozzle_temp_range": [ 0, 300 ],
"nozzle_temp_range": [
0,
300
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/a1-mini/maintenance/hotend-heating-assembly-replacement",
"en": "https://wiki.bambulab.com/en/a1-mini/maintenance/hotend-heating-assembly-replacement"
@@ -48,13 +53,18 @@
"support_wrapping_detection": false,
"auto_pa_cali_thumbnail_image": "fd_calibration_auto_i3",
"compatible_machine": [],
"auto_cali_not_support_filaments": [ "GFU03", "GFU04" ],
"auto_cali_not_support_filaments": [
"GFU03",
"GFU04"
],
"printer_type": "N1",
"ftp_folder": "sdcard/",
"printer_thumbnail_image": "printer_thumbnail_n1",
"printer_connect_help_image": "input_access_code_n1",
"printer_use_ams_image": "extra_icon",
"printer_ext_image": ["ext_image_n1"],
"printer_ext_image": [
"ext_image_n1"
],
"use_ams_type": "f1",
"printer_arch": "i3",
"printer_series": "series_n",
@@ -73,4 +83,4 @@
"support_user_preset": true
}
}
}
}
+15 -5
View File
@@ -3,13 +3,18 @@
"display_name": "Bambu Lab A1",
"print": {
"ipcam": {
"resolution_supported": [ "720p" ],
"resolution_supported": [
"720p"
],
"liveview": {
"local": "local",
"remote": "tutk"
}
},
"nozzle_temp_range": [ 0, 300 ],
"nozzle_temp_range": [
0,
300
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/a1-mini/maintenance/hotend-heating-assembly-replacement",
"en": "https://wiki.bambulab.com/en/a1-mini/maintenance/hotend-heating-assembly-replacement"
@@ -46,7 +51,10 @@
},
"model_id": "N2S",
"compatible_machine": [],
"auto_cali_not_support_filaments": [ "GFU03", "GFU04" ],
"auto_cali_not_support_filaments": [
"GFU03",
"GFU04"
],
"support_wrapping_detection": false,
"auto_pa_cali_thumbnail_image": "fd_calibration_auto_i3",
"printer_type": "N2S",
@@ -54,7 +62,9 @@
"printer_thumbnail_image": "printer_thumbnail_n2s",
"printer_connect_help_image": "input_access_code_n1",
"printer_use_ams_image": "extra_icon",
"printer_ext_image": ["ext_image_n2s"],
"printer_ext_image": [
"ext_image_n2s"
],
"use_ams_type": "f1",
"printer_arch": "i3",
"printer_series": "series_n",
@@ -72,4 +82,4 @@
}
}
}
}
}
+22 -12
View File
@@ -3,7 +3,9 @@
"display_name": "Bambu Lab P2S",
"print": {
"ipcam": {
"resolution_supported": [ "1080p" ],
"resolution_supported": [
"1080p"
],
"virtual_camera": "enabled",
"liveview": {
"remote": "tutk"
@@ -14,12 +16,18 @@
"model_download": "enabled"
}
},
"nozzle_temp_range": [ 0, 300 ],
"nozzle_temp_range": [
0,
300
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/h2/maintenance/replace-hotend",
"en": "https://wiki.bambulab.com/en/h2/maintenance/replace-hotend"
},
"bed_temp_range": [ 0, 110 ],
"bed_temp_range": [
0,
110
],
"support_motor_noise_cali": false,
"support_tunnel_mqtt": true,
"support_mqtt_alive": true,
@@ -56,22 +64,22 @@
"support_user_preset": false,
"support_ams_ext_mix_print": true
},
"fan" : {
"0" :
{
"fan": {
"0": {
"description": "",
"2": "Right(Aux)",
"10": "Left(Aux)"
},
"1" :
{
"1": {
"2": "Right(Filter)",
"10": "Left(Aux)"
},
"special_cooling_text" : "Cooling mode is suitable for printing PLA/PETG/TPU materials."
"special_cooling_text": "Cooling mode is suitable for printing PLA/PETG/TPU materials."
},
"model_id": "N7",
"subseries": ["N7-V2"],
"subseries": [
"N7-V2"
],
"auto_pa_cali_thumbnail_image": "fd_calibration_auto_n7",
"support_wrapping_detection": true,
"compatible_machine": [],
@@ -79,7 +87,9 @@
"printer_thumbnail_image": "printer_thumbnail_N7",
"printer_connect_help_image": "input_access_code_x1",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_n7"],
"printer_ext_image": [
"ext_image_n7"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_x1",
@@ -88,4 +98,4 @@
"enable_set_nozzle_info": false,
"support_safety_options": true
}
}
}
+32 -9
View File
@@ -4,11 +4,16 @@
"print": {
"2D": {
"laser": {
"power": [ 10, 40 ]
"power": [
10,
40
]
}
},
"ipcam": {
"resolution_supported": [ "1080p" ],
"resolution_supported": [
"1080p"
],
"virtual_camera": "enabled",
"liveview": {
"remote": "tutk"
@@ -19,12 +24,18 @@
"model_download": "enabled"
}
},
"nozzle_temp_range": [ 0, 350 ],
"nozzle_temp_range": [
0,
350
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/h2/maintenance/replace-hotend",
"en": "https://wiki.bambulab.com/en/h2/maintenance/replace-hotend"
},
"bed_temp_range": [ 0, 120 ],
"bed_temp_range": [
0,
120
],
"support_motor_noise_cali": false,
"support_tunnel_mqtt": true,
"support_mqtt_alive": true,
@@ -56,7 +67,10 @@
"support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [ 0, 65 ],
"support_chamber_temp_edit_range": [
0,
65
],
"support_chamber_temp_switch_heating": 40,
"support_extrusion_cali": false,
"support_user_preset": false,
@@ -66,13 +80,22 @@
"model_id": "O1D",
"support_wrapping_detection": true,
"auto_pa_cali_thumbnail_image": "fd_calibration_auto_multi_extruders",
"printer_modes": [ "fdm", "laser", "cut" ],
"compatible_machine": ["O1E"],
"printer_modes": [
"fdm",
"laser",
"cut"
],
"compatible_machine": [
"O1E"
],
"printer_type": "O1D",
"printer_thumbnail_image": "printer_thumbnail_h2d",
"printer_connect_help_image": "input_access_code_h2d",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_o_right", "ext_image_o_left"],
"printer_ext_image": [
"ext_image_o_right",
"ext_image_o_left"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_o",
@@ -81,4 +104,4 @@
"enable_set_nozzle_info": false,
"support_safety_options": false
}
}
}
+32 -9
View File
@@ -4,11 +4,16 @@
"print": {
"2D": {
"laser": {
"power": [ 10, 40 ]
"power": [
10,
40
]
}
},
"ipcam": {
"resolution_supported": [ "1080p" ],
"resolution_supported": [
"1080p"
],
"virtual_camera": "enabled",
"liveview": {
"remote": "tutk"
@@ -19,12 +24,18 @@
"model_download": "enabled"
}
},
"nozzle_temp_range": [ 0, 350 ],
"nozzle_temp_range": [
0,
350
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/h2/maintenance/replace-hotend",
"en": "https://wiki.bambulab.com/en/h2/maintenance/replace-hotend"
},
"bed_temp_range": [ 0, 120 ],
"bed_temp_range": [
0,
120
],
"support_motor_noise_cali": false,
"support_tunnel_mqtt": true,
"support_mqtt_alive": true,
@@ -56,7 +67,10 @@
"support_save_remote_print_file_to_storage": true,
"support_chamber": true,
"support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [ 0, 65 ],
"support_chamber_temp_edit_range": [
0,
65
],
"support_chamber_temp_switch_heating": 40,
"support_extrusion_cali": false,
"support_user_preset": false,
@@ -66,13 +80,22 @@
"model_id": "O1E",
"auto_pa_cali_thumbnail_image": "fd_calibration_auto_multi_extruders",
"support_wrapping_detection": true,
"printer_modes": [ "fdm", "laser", "cut" ],
"compatible_machine": ["O1D"],
"printer_modes": [
"fdm",
"laser",
"cut"
],
"compatible_machine": [
"O1D"
],
"printer_type": "O1E",
"printer_thumbnail_image": "printer_thumbnail_o1e",
"printer_connect_help_image": "input_access_code_h2d",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_o_right", "ext_image_o_left"],
"printer_ext_image": [
"ext_image_o_right",
"ext_image_o_left"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_o",
@@ -81,4 +104,4 @@
"enable_set_nozzle_info": false,
"support_safety_options": false
}
}
}
+28 -8
View File
@@ -4,11 +4,16 @@
"print": {
"2D": {
"laser": {
"power": [ 10, 40 ]
"power": [
10,
40
]
}
},
"ipcam": {
"resolution_supported": [ "1080p" ],
"resolution_supported": [
"1080p"
],
"virtual_camera": "enabled",
"liveview": {
"remote": "tutk"
@@ -19,12 +24,18 @@
"model_download": "enabled"
}
},
"nozzle_temp_range": [ 0, 350 ],
"nozzle_temp_range": [
0,
350
],
"nozzle_replace_wiki": {
"zh": "https://wiki.bambulab.com/zh/h2s/maintenance/replace-silicone-sock-and-hotend",
"en": "https://wiki.bambulab.com/en/h2s/maintenance/replace-silicone-sock-and-hotend"
},
"bed_temp_range": [ 0, 120 ],
"bed_temp_range": [
0,
120
],
"support_motor_noise_cali": false,
"support_tunnel_mqtt": true,
"support_mqtt_alive": true,
@@ -55,7 +66,10 @@
"support_first_layer_inspect": false,
"support_save_remote_print_file_to_storage": true,
"support_chamber_temp_edit": true,
"support_chamber_temp_edit_range": [0, 65],
"support_chamber_temp_edit_range": [
0,
65
],
"support_chamber_temp_switch_heating": 40,
"support_extrusion_cali": false,
"support_user_preset": false,
@@ -63,13 +77,19 @@
},
"model_id": "O1S",
"auto_pa_cali_thumbnail_image": "fd_calibration_auto_single_o",
"printer_modes": [ "fdm", "laser", "cut" ],
"printer_modes": [
"fdm",
"laser",
"cut"
],
"compatible_machine": [],
"printer_type": "O1S",
"printer_thumbnail_image": "printer_thumbnail_o1s",
"printer_connect_help_image": "input_access_code_x1",
"printer_use_ams_image": "ams_icon",
"printer_ext_image": ["ext_image_o1s"],
"printer_ext_image": [
"ext_image_o1s"
],
"use_ams_type": "generic",
"printer_arch": "core_xy",
"printer_series": "series_o",
@@ -78,4 +98,4 @@
"enable_set_nozzle_info": false,
"support_safety_options": false
}
}
}
+80 -74
View File
@@ -1,76 +1,82 @@
{
"whitelist": [
],
"blacklist": [
{
"type": "TPU",
"action": "prohibition",
"slot": "ams",
"description": "TPU is not supported by AMS."
},
{
"vendor": "Bambu Lab",
"type": "PET-CF",
"action": "prohibition",
"slot": "ams",
"description": "AMS does not support 'Bambu Lab PET-CF'."
},
{
"type": "TPU",
"action": "warning",
"description": "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
},
{
"type": "TPU-AMS",
"action": "warning",
"description": "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
},
{
"type": "PVA",
"action": "warning",
"slot": "ams",
"description": "Damp PVA will become flexible and get stuck inside AMS, please take care to dry it before use."
},
{
"type": "PVA",
"action": "warning",
"slot": "ext",
"description": "Damp PVA is flexible and may get stuck in extruder. Dry it before use."
},
{
"type": "PPS-CF",
"model_id":["O1S"],
"action": "warning",
"description": "PPS-CF is brittle and could break in bended PTFE tube above Toolhead.",
"wiki": "https://e.bambulab.com/t?c=UC64kdlpHxN3Mb15"
},
{
"type": "PPA-CF",
"model_id":["O1S"],
"action": "warning",
"description": "PPA-CF is brittle and could break in bended PTFE tube above Toolhead.",
"wiki": "https://e.bambulab.com/t?c=UC64kdlpHxN3Mb15"
},
{
"type_suffix": "CF",
"action": "warning",
"slot": "ams",
"description": "CF/GF filaments are hard and brittle, it's easy to break or get stuck in AMS, please use with caution."
},
{
"type_suffix": "GF",
"action": "warning",
"slot": "ams",
"description": "CF/GF filaments are hard and brittle, it's easy to break or get stuck in AMS, please use with caution."
},
{
"vendor": "Bambu Lab",
"type": "PLA",
"name": "PLA Glow",
"model_id":["N1","N2S"],
"action": "warning",
"slot": "ams",
"description": "The rough surface of PLA Glow can accelerate wear on the AMS system, particularly on the internal components of the AMS Lite."
}
]
"whitelist": [],
"blacklist": [
{
"type": "TPU",
"action": "prohibition",
"slot": "ams",
"description": "TPU is not supported by AMS."
},
{
"vendor": "Bambu Lab",
"type": "PET-CF",
"action": "prohibition",
"slot": "ams",
"description": "AMS does not support 'Bambu Lab PET-CF'."
},
{
"type": "TPU",
"action": "warning",
"description": "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
},
{
"type": "TPU-AMS",
"action": "warning",
"description": "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
},
{
"type": "PVA",
"action": "warning",
"slot": "ams",
"description": "Damp PVA will become flexible and get stuck inside AMS, please take care to dry it before use."
},
{
"type": "PVA",
"action": "warning",
"slot": "ext",
"description": "Damp PVA is flexible and may get stuck in extruder. Dry it before use."
},
{
"type": "PPS-CF",
"model_id": [
"O1S"
],
"action": "warning",
"description": "PPS-CF is brittle and could break in bended PTFE tube above Toolhead.",
"wiki": "https://e.bambulab.com/t?c=UC64kdlpHxN3Mb15"
},
{
"type": "PPA-CF",
"model_id": [
"O1S"
],
"action": "warning",
"description": "PPA-CF is brittle and could break in bended PTFE tube above Toolhead.",
"wiki": "https://e.bambulab.com/t?c=UC64kdlpHxN3Mb15"
},
{
"type_suffix": "CF",
"action": "warning",
"slot": "ams",
"description": "CF/GF filaments are hard and brittle, it's easy to break or get stuck in AMS, please use with caution."
},
{
"type_suffix": "GF",
"action": "warning",
"slot": "ams",
"description": "CF/GF filaments are hard and brittle, it's easy to break or get stuck in AMS, please use with caution."
},
{
"vendor": "Bambu Lab",
"type": "PLA",
"name": "PLA Glow",
"model_id": [
"N1",
"N2S"
],
"action": "warning",
"slot": "ams",
"description": "The rough surface of PLA Glow can accelerate wear on the AMS system, particularly on the internal components of the AMS Lite."
}
]
}
+193 -193
View File
@@ -1,194 +1,194 @@
{
"name": "Afinia",
"version": "02.03.02.60",
"force_update": "0",
"description": "Afinia configurations",
"machine_model_list": [
{
"name": "Afinia H+1(HS)",
"sub_path": "machine/Afinia H+1(HS).json"
}
],
"process_list": [
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "fdm_process_afinia_common",
"sub_path": "process/fdm_process_afinia_common.json"
},
{
"name": "fdm_process_afinia_0.18_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.18_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.24_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.24_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.30_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.30_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.36_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.36_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.42_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.42_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_HS_common",
"sub_path": "process/fdm_process_afinia_HS_common.json"
},
{
"name": "0.12mm Fine @Afinia H+1(HS)",
"sub_path": "process/0.12mm Fine @Afinia H+1(HS).json"
},
{
"name": "0.16mm Optimal @Afinia H+1(HS)",
"sub_path": "process/0.16mm Optimal @Afinia H+1(HS).json"
},
{
"name": "0.20mm Standard @Afinia H+1(HS)",
"sub_path": "process/0.20mm Standard @Afinia H+1(HS).json"
},
{
"name": "0.24mm Draft @Afinia H+1(HS)",
"sub_path": "process/0.24mm Draft @Afinia H+1(HS).json"
},
{
"name": "0.28mm Extra Draft @Afinia H+1(HS)",
"sub_path": "process/0.28mm Extra Draft @Afinia H+1(HS).json"
},
{
"name": "fdm_process_afinia_0.18_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.18_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.24_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.24_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.30_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.30_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.36_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.36_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.42_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.42_nozzle_0.6_HS.json"
},
{
"name": "0.18mm Fine @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.18mm Fine @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.24mm Standard @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.24mm Standard @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.30mm Standard @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.30mm Standard @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.30mm Strength @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.30mm Strength @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.36mm Draft @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.36mm Draft @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.42mm Extra Draft @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.42mm Extra Draft @Afinia H+1(HS) 0.6 nozzle.json"
}
],
"filament_list": [
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_abs",
"sub_path": "filament/fdm_filament_abs.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "Afinia ABS",
"sub_path": "filament/Afinia ABS.json"
},
{
"name": "Afinia ABS+",
"sub_path": "filament/Afinia ABS+.json"
},
{
"name": "Afinia ABS+@HS",
"sub_path": "filament/Afinia ABS+@HS.json"
},
{
"name": "Afinia ABS@HS",
"sub_path": "filament/Afinia ABS@HS.json"
},
{
"name": "Afinia Value ABS",
"sub_path": "filament/Afinia Value ABS.json"
},
{
"name": "Afinia Value ABS@HS",
"sub_path": "filament/Afinia Value ABS@HS.json"
},
{
"name": "Afinia PLA",
"sub_path": "filament/Afinia PLA.json"
},
{
"name": "Afinia PLA@HS",
"sub_path": "filament/Afinia PLA@HS.json"
},
{
"name": "Afinia Value PLA",
"sub_path": "filament/Afinia Value PLA.json"
},
{
"name": "Afinia Value PLA@HS",
"sub_path": "filament/Afinia Value PLA@HS.json"
},
{
"name": "Afinia TPU",
"sub_path": "filament/Afinia TPU.json"
},
{
"name": "Afinia TPU@HS",
"sub_path": "filament/Afinia TPU@HS.json"
}
],
"machine_list": [
{
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "fdm_afinia_common",
"sub_path": "machine/fdm_afinia_common.json"
},
{
"name": "Afinia H+1(HS) 0.4 nozzle",
"sub_path": "machine/Afinia H+1(HS) 0.4 nozzle.json"
},
{
"name": "Afinia H+1(HS) 0.6 nozzle",
"sub_path": "machine/Afinia H+1(HS) 0.6 nozzle.json"
}
]
}
"name": "Afinia",
"version": "02.03.02.60",
"force_update": "0",
"description": "Afinia configurations",
"machine_model_list": [
{
"name": "Afinia H+1(HS)",
"sub_path": "machine/Afinia H+1(HS).json"
}
],
"process_list": [
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "fdm_process_afinia_common",
"sub_path": "process/fdm_process_afinia_common.json"
},
{
"name": "fdm_process_afinia_0.18_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.18_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.24_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.24_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.30_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.30_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.36_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.36_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.42_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.42_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_HS_common",
"sub_path": "process/fdm_process_afinia_HS_common.json"
},
{
"name": "0.12mm Fine @Afinia H+1(HS)",
"sub_path": "process/0.12mm Fine @Afinia H+1(HS).json"
},
{
"name": "0.16mm Optimal @Afinia H+1(HS)",
"sub_path": "process/0.16mm Optimal @Afinia H+1(HS).json"
},
{
"name": "0.20mm Standard @Afinia H+1(HS)",
"sub_path": "process/0.20mm Standard @Afinia H+1(HS).json"
},
{
"name": "0.24mm Draft @Afinia H+1(HS)",
"sub_path": "process/0.24mm Draft @Afinia H+1(HS).json"
},
{
"name": "0.28mm Extra Draft @Afinia H+1(HS)",
"sub_path": "process/0.28mm Extra Draft @Afinia H+1(HS).json"
},
{
"name": "fdm_process_afinia_0.18_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.18_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.24_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.24_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.30_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.30_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.36_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.36_nozzle_0.6_HS.json"
},
{
"name": "fdm_process_afinia_0.42_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.42_nozzle_0.6_HS.json"
},
{
"name": "0.18mm Fine @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.18mm Fine @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.24mm Standard @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.24mm Standard @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.30mm Standard @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.30mm Standard @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.30mm Strength @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.30mm Strength @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.36mm Draft @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.36mm Draft @Afinia H+1(HS) 0.6 nozzle.json"
},
{
"name": "0.42mm Extra Draft @Afinia H+1(HS) 0.6 nozzle",
"sub_path": "process/0.42mm Extra Draft @Afinia H+1(HS) 0.6 nozzle.json"
}
],
"filament_list": [
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_abs",
"sub_path": "filament/fdm_filament_abs.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "Afinia ABS",
"sub_path": "filament/Afinia ABS.json"
},
{
"name": "Afinia ABS+",
"sub_path": "filament/Afinia ABS+.json"
},
{
"name": "Afinia ABS+@HS",
"sub_path": "filament/Afinia ABS+@HS.json"
},
{
"name": "Afinia ABS@HS",
"sub_path": "filament/Afinia ABS@HS.json"
},
{
"name": "Afinia Value ABS",
"sub_path": "filament/Afinia Value ABS.json"
},
{
"name": "Afinia Value ABS@HS",
"sub_path": "filament/Afinia Value ABS@HS.json"
},
{
"name": "Afinia PLA",
"sub_path": "filament/Afinia PLA.json"
},
{
"name": "Afinia PLA@HS",
"sub_path": "filament/Afinia PLA@HS.json"
},
{
"name": "Afinia Value PLA",
"sub_path": "filament/Afinia Value PLA.json"
},
{
"name": "Afinia Value PLA@HS",
"sub_path": "filament/Afinia Value PLA@HS.json"
},
{
"name": "Afinia TPU",
"sub_path": "filament/Afinia TPU.json"
},
{
"name": "Afinia TPU@HS",
"sub_path": "filament/Afinia TPU@HS.json"
}
],
"machine_list": [
{
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "fdm_afinia_common",
"sub_path": "machine/fdm_afinia_common.json"
},
{
"name": "Afinia H+1(HS) 0.4 nozzle",
"sub_path": "machine/Afinia H+1(HS) 0.4 nozzle.json"
},
{
"name": "Afinia H+1(HS) 0.6 nozzle",
"sub_path": "machine/Afinia H+1(HS) 0.6 nozzle.json"
}
]
}
@@ -1,37 +1,37 @@
{
"type": "filament",
"filament_id": "GFB00",
"setting_id": "GFSB00",
"name": "Afinia ABS+",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"nozzle_temperature": [
"275"
],
"nozzle_temperature_initial_layer": [
"275"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
"type": "filament",
"filament_id": "GFB00",
"setting_id": "GFSB00",
"name": "Afinia ABS+",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"nozzle_temperature": [
"275"
],
"nozzle_temperature_initial_layer": [
"275"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,37 +1,37 @@
{
"type": "filament",
"filament_id": "GFB00_01",
"setting_id": "GFSB00",
"name": "Afinia ABS+@HS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"nozzle_temperature": [
"275"
],
"nozzle_temperature_initial_layer": [
"275"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H+1(HS) 0.4 nozzle",
"Afinia H+1(HS) 0.6 nozzle"
]
"type": "filament",
"filament_id": "GFB00_01",
"setting_id": "GFSB00",
"name": "Afinia ABS+@HS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"nozzle_temperature": [
"275"
],
"nozzle_temperature_initial_layer": [
"275"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H+1(HS) 0.4 nozzle",
"Afinia H+1(HS) 0.6 nozzle"
]
}
@@ -1,31 +1,31 @@
{
"type": "filament",
"filament_id": "GFB00",
"setting_id": "GFSB00",
"name": "Afinia ABS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
"type": "filament",
"filament_id": "GFB00",
"setting_id": "GFSB00",
"name": "Afinia ABS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,31 +1,31 @@
{
"type": "filament",
"filament_id": "GFB00_01",
"setting_id": "GFSB00",
"name": "Afinia ABS@HS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H+1(HS) 0.4 nozzle",
"Afinia H+1(HS) 0.6 nozzle"
]
"type": "filament",
"filament_id": "GFB00_01",
"setting_id": "GFSB00",
"name": "Afinia ABS@HS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.95"
],
"filament_cost": [
"24.99"
],
"filament_vendor": [
"Afinia"
],
"fan_max_speed": [
"60"
],
"filament_max_volumetric_speed": [
"16"
],
"slow_down_layer_time": [
"12"
],
"compatible_printers": [
"Afinia H+1(HS) 0.4 nozzle",
"Afinia H+1(HS) 0.6 nozzle"
]
}
@@ -1,34 +1,34 @@
{
"type": "filament",
"filament_id": "GFA00",
"setting_id": "GFSA00",
"name": "Afinia PLA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_cost": [
"24.99"
],
"filament_density": [
"1.26"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"21"
],
"filament_vendor": [
"Afinia"
],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
"type": "filament",
"filament_id": "GFA00",
"setting_id": "GFSA00",
"name": "Afinia PLA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_cost": [
"24.99"
],
"filament_density": [
"1.26"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"21"
],
"filament_vendor": [
"Afinia"
],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}
@@ -1,34 +1,34 @@
{
"type": "filament",
"filament_id": "GFA00_01",
"setting_id": "GFSA00",
"name": "Afinia PLA@HS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_cost": [
"24.99"
],
"filament_density": [
"1.26"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"21"
],
"filament_vendor": [
"Afinia"
],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"compatible_printers": [
"Afinia H+1(HS) 0.4 nozzle",
"Afinia H+1(HS) 0.6 nozzle"
]
"type": "filament",
"filament_id": "GFA00_01",
"setting_id": "GFSA00",
"name": "Afinia PLA@HS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_cost": [
"24.99"
],
"filament_density": [
"1.26"
],
"filament_flow_ratio": [
"0.98"
],
"filament_max_volumetric_speed": [
"21"
],
"filament_vendor": [
"Afinia"
],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"compatible_printers": [
"Afinia H+1(HS) 0.4 nozzle",
"Afinia H+1(HS) 0.6 nozzle"
]
}
@@ -1,27 +1,27 @@
{
"type": "filament",
"name": "Afinia TPU",
"inherits": "fdm_filament_tpu",
"from": "system",
"filament_id": "GFU01",
"instantiation": "true",
"filament_vendor": [
"Afinia"
],
"filament_density": [
"1.22"
],
"nozzle_temperature_initial_layer": [
"230"
],
"filament_cost": [
"41.99"
],
"nozzle_temperature": [
"230"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
"type": "filament",
"name": "Afinia TPU",
"inherits": "fdm_filament_tpu",
"from": "system",
"filament_id": "GFU01",
"instantiation": "true",
"filament_vendor": [
"Afinia"
],
"filament_density": [
"1.22"
],
"nozzle_temperature_initial_layer": [
"230"
],
"filament_cost": [
"41.99"
],
"nozzle_temperature": [
"230"
],
"compatible_printers": [
"Afinia H400 Pro 0.4 nozzle",
"Afinia H400 Pro 0.6 nozzle"
]
}

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