Compare commits

..
Author SHA1 Message Date
TheLegendTubaGuy 4b4a261787 Fix small binary STLs failing to load as ASCII (#16130) 2026-10-04 18:23:40 -03:00
Damir Galeev fb529f8315 Fix startup freeze from synchronous scripts in the camera view (#16104) 2026-10-04 18:22:35 -03:00
TheLegendTubaGuy 93fca83122 Fix memory leak of gap fill paths in solid infill (#16137) 2026-10-04 22:13:17 +01:00
Ioannis Giannakas 7fd6e5fd72 Fix crash on macOS when OrcaSlicer is quit from the Dock, a logout or a restart (#16136)
Fix crash when quitting from the Dock, logout or restart on macOS
2026-10-04 21:54:47 +01:00
Ioannis Giannakas b29c3b36ec Fix a small memory leak when creating default enum list options (#16133)
Fix memory leak in ConfigOptionDef::create_default_option for enum lists
2026-10-04 20:08:42 +01:00
Damir GaleevandIan Bassi b6d11b2b3a Precise Seam: remove known limitations and rework perimeter intersection (#16072)
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-10-04 14:47:56 -03:00
TheLegendTubaGuy 73a4ff9b16 Fix adding filaments with incomplete mixed metadata (#15728) 2026-10-04 13:03:42 -03:00
TheLegendTubaGuy 67a976e002 Fix mirrored transforms when loading 3MF files (#15731) 2026-10-04 12:53:34 -03:00
000f8abc6d CoreOne INDX 8T and 4T: welcome to earth, MMU3 fixes (#15903)
* Add opt-in printer overrides for filament tool-change settings

Allow printer presets to define uniform ramming, loading, unloading,
cooling, purge, filament scripts and pressure-advance enable settings
without duplicating material presets. Apply overrides during preset
composition and FDM normalization, and expose the switch in Multimaterial.

Keep the feature disabled by default. Omitted or empty override vectors
preserve material settings; a single value applies to every filament,
including an explicitly empty script. Reject multi-value overrides.

Preserve empty float vectors across project serialization and initialize
empty nullable filament overrides before resizing them, preventing preset
cache generation from accessing an empty vector.

Include focused override tests and document the configuration semantics,
Prusa MMU3 integration and INDX tool-change behavior.

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

* Add Prusa MMU3 and CORE One INDX profiles with shared material tuning

Add MK4 MMU3 and four-tool/eight-tool CORE One INDX printer definitions,
process presets and printer resources. Reuse ordinary MK4 and CORE One
printer/process inheritance while retaining device-specific startup,
shutdown, tool-change and wipe-tower behavior.

Move uniform MMU3 tip forming and INDX handling into machine filament
overrides. Keep MMU3 pressure advance and purge material-specific, retain
INDX material tuning, and share surviving materials with migration aliases
for retired MMU3 and XL tool-change copies.

Preserve unrelated Prusa filament identities, scalar value formats and
inheritance rather than applying broad profile cleanup.

Validation: Prusa profile checks and all 69 printer smoke slices passed.
The final cleanup preserved emitted commands with identical filament
selections.

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

* Refresh filament controls after loading printer presets

Synchronize the plater filament controls after preset loading, even when the internal filament list already matches the nozzle count.

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

* Fix nullable Z-hop overrides in Prusa filament variants

Represent empty overrides as nil for each inherited extruder variant so
the native profile loader preserves machine Z-hop settings.

Validation: full profile checks, native loading, and 1,115-printer slicing
sweep passed.

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

* Separate Prusa profiles from machine-owned filament overrides

Retain profile tuning without unsupported machine override keys. Move supporting code, tests and override documentation into a separate feature change.

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

* Default INDX tools to hardened high-flow nozzles

Use the High Flow variant for every INDX tool and its dedicated filament presets. Raise Generic PLA throughput to 28 mm3/s.

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

* Use normal filament-change lifts for INDX and MMU3

Avoid duplicate INDX retraction and account for its 12.5-second dock swap in print estimates.

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

* Set z_hop_types for the machine too

* Fix profile check failures in the Prusa CORE One filament presets

---------

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-10-04 23:52:56 +08:00
Kris Austin 78a4f2867c build: update OCCT to 8.0.1 (faster STEP and Design tab, Windows STEP crash fix) (#16089) 2026-10-04 12:36:54 -03:00
MNKczPragostroj 0fd04ff07c Add Pragostroj KINARB profile set (#16045)
* Add Pragostroj KINARB profile set

This adds the new Pragostroj vendor profile with KINARB 1HB and 2HB machine models, nozzle variants, common machine/process settings, and default material mappings. It also includes the corresponding filament and print presets for PLA, PETG, PP, and HIPS, covering the printer family’s standard profiles and tuning.
2026-10-04 23:01:50 +08:00
Kiss Lorand 5efb3bef45 Fix missing slicing progress on the first slice (#16000)
Restore slicing progress after notification reset

Ensure the cleared slicing-progress controller is recreated before its initial state transition, and calculate the Daily Tips size before positioning the popup.
2026-10-04 14:06:23 +03:00
Kris Austin 90ac58d3cd perf: skip the unused curled wall estimate to speed up slicing by up to 9% (#16113)
perf: skip estimating curled walls when nothing reads them

The curled extrusion estimate ran whenever a region had overhang speed on,
which is the default, but only the slowdown for curled perimeters reads the
curled lines it produces, and that slowdown is off by default. The step now
also requires a region with the slowdown on, and clears the curled lines
when it skips the estimate, so none are left from an earlier slice. 
Also fixes stale fan commands due to the stale curled lines on the reused layers.
2026-10-04 09:45:19 +01:00
859 changed files with 13170 additions and 6123 deletions
+3
View File
@@ -10,3 +10,6 @@
# resume after `call :label`. With LF endings that offset can land wrong and the
# label lookup fails, so keep these CRLF whatever the platform.
*.bat text eol=crlf
# OCCT BRep fixtures, kept byte for byte as OCCT wrote them.
*.brep -text
+2 -1
View File
@@ -1131,7 +1131,8 @@ function(orcaslicer_copy_dlls target config postfix output_dlls)
if (NOT OCCT_LIBS)
message(FATAL_ERROR "OCCT_LIBS is not set; libslic3r must be configured first.")
endif ()
set(_occt_bin "${CMAKE_PREFIX_PATH}/bin/occt")
string(TOUPPER "${config}" _config_upper)
set(_occt_bin "${OCCT_BIN_DIR_${_config_upper}}")
set(_occt_dlls "")
set(_occt_staged "")
set(_missing_occt "")
-264
View File
@@ -1,264 +0,0 @@
diff --git a/adm/cmake/occt_defs_flags.cmake b/adm/cmake/occt_defs_flags.cmake
index 00000000..00000001 100644
--- a/adm/cmake/occt_defs_flags.cmake
+++ b/adm/cmake/occt_defs_flags.cmake
@@ -134,7 +134,11 @@
set (CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")
endif()
# Optimize size of binaries
- set (CMAKE_SHARED_LINKER_FLAGS "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS}")
+ # clang-cl reports the Clang compiler ID, and OCCT builds shared on Windows,
+ # where the MSVC-style linker gets this flag as an argument it does not know.
+ if (NOT WIN32)
+ set (CMAKE_SHARED_LINKER_FLAGS "-Wl,-s ${CMAKE_SHARED_LINKER_FLAGS}")
+ endif()
elseif(MINGW)
add_definitions(-D_WIN32_WINNT=0x0601)
# _WIN32_WINNT=0x0601 (use Windows 7 SDK)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d98acc0f..28eb8eb4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -225,7 +225,7 @@ if (NOT DEFINED INSTALL_DIR_BIN)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
set (INSTALL_DIR_BIN "bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}")
else()
- set (INSTALL_DIR_BIN "${OS_WITH_BIT}/${COMPILER}/bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}")
+ set (INSTALL_DIR_BIN "bin/occt" CACHE PATH "${INSTALL_DIR_BIN_DESCR}")
endif()
endif()
@@ -243,11 +243,11 @@ if (NOT DEFINED INSTALL_DIR_LIB)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
set (INSTALL_DIR_LIB "lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}")
else()
- set (INSTALL_DIR_LIB "${OS_WITH_BIT}/${COMPILER}/lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}")
+ set (INSTALL_DIR_LIB "lib/occt" CACHE PATH "${INSTALL_DIR_LIB_DESCR}")
endif()
endif()
-# OCCT headers: <prefix>/inc for windows,
+# OCCT headers: <prefix>/include for windows,
# <prefix>/include/opencascade-7.0.0 for unix
if (NOT DEFINED INSTALL_DIR_INCLUDE)
if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
@@ -256,7 +256,7 @@ if (NOT DEFINED INSTALL_DIR_INCLUDE)
set (INSTALL_DIR_INCLUDE "include/opencascade-${OCC_VERSION_STRING_EXT}" CACHE PATH "${INSTALL_DIR_INCLUDE_DESCR}" FORCE)
endif()
else()
- set (INSTALL_DIR_INCLUDE "inc" CACHE PATH "${INSTALL_DIR_INCLUDE_DESCR}")
+ set (INSTALL_DIR_INCLUDE "include/occt" CACHE PATH "${INSTALL_DIR_INCLUDE_DESCR}")
endif()
endif()
@@ -330,7 +330,7 @@ if (NOT DEFINED INSTALL_DIR_CMAKE)
set (INSTALL_DIR_CMAKE "lib/cmake/opencascade" CACHE PATH "${INSTALL_DIR_CMAKE_DESCR}")
endif()
else()
- set (INSTALL_DIR_CMAKE "cmake" CACHE PATH "${INSTALL_DIR_CMAKE_DESCR}")
+ set (INSTALL_DIR_CMAKE "lib/cmake/occt" CACHE PATH "${INSTALL_DIR_CMAKE_DESCR}")
endif()
endif()
@@ -338,13 +338,13 @@ endif()
OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_resources")
# install LICENSE_LGPL_21.txt and OCCT_LGPL_EXCEPTION.txt files
-if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
- OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" "${INSTALL_DIR_DOC}")
- OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" "${INSTALL_DIR_DOC}")
-else()
- OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" ".")
- OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" ".")
-endif()
+#if ("${INSTALL_DIR_LAYOUT}" STREQUAL "Unix")
+# OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" "${INSTALL_DIR_DOC}")
+# OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" "${INSTALL_DIR_DOC}")
+#else()
+# OCCT_INSTALL_FILE_OR_DIR ("LICENSE_LGPL_21.txt" ".")
+# OCCT_INSTALL_FILE_OR_DIR ("OCCT_LGPL_EXCEPTION.txt" ".")
+#endif()
if(APPLE)
set (INSTALL_NAME_DIR "" CACHE STRING "install_name library suffix on OS X (e.g. @executable_path/../Frameworks)")
@@ -850,34 +850,34 @@ endif()
# build directories
if (SINGLE_GENERATOR)
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BIN_LETTER}")
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BIN_LETTER}")
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BIN_LETTER}")
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/occt")
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/occt")
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/occt")
if (WIN32)
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BIN_LETTER}")
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/occt")
endif()
endif()
-set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
-set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
-set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/lib")
+set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib/occt")
+set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin/occt")
+set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib/occt")
-set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libi")
-set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
-set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libi")
+set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib/occt/RelWithDebInfo")
+set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin/occt/RelWithDebInfo")
+set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib/occt/RelWithDebInfo")
-set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libd")
-set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
-set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/libd")
+set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib/occt/Debug")
+set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin/occt/Debug")
+set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/lib/occt/Debug")
if (WIN32)
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin/occt")
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin/occt/RelWithDebInfo")
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin/occt/Debug")
endif()
string(TIMESTAMP CURRENT_TIME "%H:%M:%S")
-message (STATUS "\nInfo: \(${CURRENT_TIME}\) Start collecting all OCCT header files into ${CMAKE_BINARY_DIR}/inc ...")
+message (STATUS "\nInfo: \(${CURRENT_TIME}\) Start collecting all OCCT header files into ${CMAKE_BINARY_DIR}/include/occt ...")
# collect all the headers to <binary dir>/inc folder
COLLECT_AND_INSTALL_OCCT_HEADER_FILES ("${CMAKE_BINARY_DIR}" "${BUILD_TOOLKITS}" "${CMAKE_SOURCE_DIR}/src" "${INSTALL_DIR_INCLUDE}")
@@ -984,9 +984,9 @@ if (EXISTS "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}")
set (CUSTOM_CONTENT "${CUSTOM_CONTENT} ${ADDITIONAL_CUSTOM_CONTENT}")
- file (WRITE "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" "${CUSTOM_CONTENT}")
+ #file (WRITE "${INSTALL_DIR}/${INSTALL_DIR_SCRIPT}/custom.${SCRIPT_EXT}" "${CUSTOM_CONTENT}")
else()
- OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.${SCRIPT_EXT}.main" "custom.${SCRIPT_EXT}" "custom.${SCRIPT_EXT}" "${INSTALL_DIR_SCRIPT}")
+ #OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.${SCRIPT_EXT}.main" "custom.${SCRIPT_EXT}" "custom.${SCRIPT_EXT}" "${INSTALL_DIR_SCRIPT}")
endif()
if (WIN32)
@@ -1007,7 +1007,7 @@ endforeach()
# write current custom.bat/sh (for install directory)
set (SUB_CUSTOM_BUILD_NAME "custom_${COMPILER}_${COMPILER_BITNESS}.install.${SCRIPT_EXT}")
-OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.install.${SCRIPT_EXT}.in" "${SUB_CUSTOM_BUILD_NAME}" "${SUB_CUSTOM_NAME}" "${INSTALL_DIR_SCRIPT}")
+#OCCT_CONFIGURE_AND_INSTALL ("adm/templates/custom.install.${SCRIPT_EXT}.in" "${SUB_CUSTOM_BUILD_NAME}" "${SUB_CUSTOM_NAME}" "${INSTALL_DIR_SCRIPT}")
# write current custom.bat/sh (for build directory)
OCCT_CONFIGURE ("adm/templates/custom.build.${SCRIPT_EXT}.in" "${SUB_CUSTOM_NAME}")
@@ -1019,9 +1019,9 @@ endif()
if (WIN32)
# env script for draw in building environment
- OCCT_CONFIGURE ("adm/templates/env.${SCRIPT_EXT}.in" "env.${SCRIPT_EXT}")
+ #OCCT_CONFIGURE ("adm/templates/env.${SCRIPT_EXT}.in" "env.${SCRIPT_EXT}")
# install env script
- install (FILES "${CMAKE_BINARY_DIR}/env.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}")
+ #install (FILES "${CMAKE_BINARY_DIR}/env.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}")
# copy build.bat and install.bat scripts to CMake binary folder
OCCT_COPY_FILE_OR_DIR ("adm/templates/build.bat" "${CMAKE_BINARY_DIR}")
OCCT_COPY_FILE_OR_DIR ("adm/templates/install.bat" "${CMAKE_BINARY_DIR}")
@@ -1043,12 +1043,12 @@ endif()
FILE_TO_LIST ("adm/RESOURCES" RESOURCES)
foreach(RESOURCE ${RESOURCES})
get_filename_component(RESOURCE_FOLDER ${RESOURCE} DIRECTORY)
- if(NOT "${RESOURCE_FOLDER}" STREQUAL "")
- get_filename_component(RESOURCE_FOLDER ${RESOURCE_FOLDER} NAME)
- OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR_RESOURCE}/${RESOURCE_FOLDER}")
- else()
- OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR_RESOURCE}")
- endif()
+ #if(NOT "${RESOURCE_FOLDER}" STREQUAL "")
+ # get_filename_component(RESOURCE_FOLDER ${RESOURCE_FOLDER} NAME)
+ # OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR_RESOURCE}/${RESOURCE_FOLDER}")
+ #else()
+ # OCCT_INSTALL_FILE_OR_DIR ("src/${RESOURCE}" "${INSTALL_DIR_RESOURCE}")
+ #endif()
endforeach()
if (BUILD_SAMPLES_QT)
diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake
index 224c96b1..8c94a1c5 100644
--- a/adm/cmake/occt_macros.cmake
+++ b/adm/cmake/occt_macros.cmake
@@ -608,7 +608,7 @@ macro (OCCT_INSERT_CODE_FOR_TARGET)
install(CODE "if (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$\")
set (OCCT_INSTALL_BIN_LETTER \"\")
elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$\")
- set (OCCT_INSTALL_BIN_LETTER \"i\")
+ set (OCCT_INSTALL_BIN_LETTER \"\")
elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Dd][Ee][Bb][Uu][Gg])$\")
set (OCCT_INSTALL_BIN_LETTER \"d\")
endif()")
diff --git a/adm/cmake/occt_toolkit.cmake b/adm/cmake/occt_toolkit.cmake
index 550e0e2f..7ac1a3b8 100644
--- a/adm/cmake/occt_toolkit.cmake
+++ b/adm/cmake/occt_toolkit.cmake
@@ -241,7 +241,7 @@
else()
set (aReleasePdbConf)
endif()
- install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.pdb
+ install (FILES $<TARGET_PDB_FILE:${PROJECT_NAME}>
CONFIGURATIONS Debug ${aReleasePdbConf} RelWithDebInfo
DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}")
endif()
diff --git a/src/Font/Font_FTFont.cxx b/src/Font/Font_FTFont.cxx
index 5ae9899f..0a17372b 100644
--- a/src/Font/Font_FTFont.cxx
+++ b/src/Font/Font_FTFont.cxx
@@ -103,9 +103,11 @@ bool Font_FTFont::Init (const Handle(NCollection_Buffer)& theData,
{
throw Standard_ProgramError ("Font_FTFont, Light and Normal hinting styles are mutually exclusive");
}
+#ifdef HAVE_FREETYPE
setLoadFlag (FT_LOAD_TARGET_LIGHT, (theParams.FontHinting & Font_Hinting_Light) != 0);
setLoadFlag (FT_LOAD_NO_HINTING, (theParams.FontHinting & Font_Hinting_Normal) == 0
&& (theParams.FontHinting & Font_Hinting_Light) == 0);
+#endif
// manage native / autohinting
if ((theParams.FontHinting & Font_Hinting_ForceAutohint) != 0
@@ -113,8 +115,10 @@ bool Font_FTFont::Init (const Handle(NCollection_Buffer)& theData,
{
throw Standard_ProgramError ("Font_FTFont, ForceAutohint and NoAutohint are mutually exclusive");
}
+#ifdef HAVE_FREETYPE
setLoadFlag (FT_LOAD_FORCE_AUTOHINT, (theParams.FontHinting & Font_Hinting_ForceAutohint) != 0);
setLoadFlag (FT_LOAD_NO_AUTOHINT, (theParams.FontHinting & Font_Hinting_NoAutohint) != 0);
+#endif
if (!myFTLib->IsValid())
{
From 7236e83dcc1e7284e66dc61e612154617ef715d6 Mon Sep 17 00:00:00 2001
From: dpasukhi <dpasukhi@opencascade.com>
Date: Tue, 27 Aug 2024 11:33:29 +0100
Subject: [PATCH] 0033808: Coding - FreeType Use unsigned point and contour
indexing in `FT_Outline`
Changes to auto instead of specific type
---
src/StdPrs/StdPrs_BRepFont.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/StdPrs/StdPrs_BRepFont.cxx b/src/StdPrs/StdPrs_BRepFont.cxx
index ab2d9b3c9f..cd701879b1 100644
--- a/src/StdPrs/StdPrs_BRepFont.cxx
+++ b/src/StdPrs/StdPrs_BRepFont.cxx
@@ -457,7 +457,7 @@ Standard_Boolean StdPrs_BRepFont::renderGlyph (const Standard_Utf32Char theChar,
for (short aContour = 0, aStartIndex = 0; aContour < anOutline->n_contours; ++aContour)
{
const FT_Vector* aPntList = &anOutline->points[aStartIndex];
- const char* aTags = &anOutline->tags[aStartIndex];
+ const auto* aTags = &anOutline->tags[aStartIndex];
const short anEndIndex = anOutline->contours[aContour];
const short aPntsNb = (anEndIndex - aStartIndex) + 1;
aStartIndex = anEndIndex + 1;
+18 -18
View File
@@ -1,5 +1,5 @@
# clang-cl cannot emit IGESAppli_GeneralModule.cxx on ARM64
# (llvm/llvm-project#62081). cl and clang-cl share an ABI.
# clang-cl cannot emit some OCCT sources for ARM64 (llvm/llvm-project#62081).
# cl and clang-cl share an ABI.
set(_occt_compiler_args "")
if ("${DEPS_ARCH}" STREQUAL "arm64" AND CMAKE_CXX_COMPILER_ID STREQUAL Clang)
set(_occt_compiler_args -DCMAKE_C_COMPILER:STRING=cl -DCMAKE_CXX_COMPILER:STRING=cl)
@@ -15,31 +15,31 @@ endif()
# (fillet/offset/loft), whose only consumer is the parametric Design/CAD tab. With it OFF
# the deps prefix matches upstream exactly.
#
# With it ON the delta is THREE toolkits, not two: TKFillet (7.40 MiB archive, used via
# BRepFilletAPI), TKOffset (5.38 MiB, used via BRepOffsetAPI) and TKFeat (4.42 MiB), which
# nothing here references but which the module flag builds anyway -- it is all-or-nothing
# per module. The module's other nine toolkits are built either way, because DataExchange
# (the STEP path upstream already ships) depends on them.
# With it ON OCCT also builds TKFillet (used via BRepFilletAPI), TKOffset (used via
# BRepOffsetAPI), and TKFeat, TKHelix, TKXMesh and TKExpress, which nothing here references
# but which the module flag builds anyway, since module flags are all-or-nothing. The
# module's other toolkits are built either way, because DataExchange (the STEP path)
# depends on them.
#
# On macOS/Linux OCCT links statically, so an unreferenced toolkit costs build time and no
# shipped bytes. The Windows figure is a real DLL cost and has NOT been measured -- an
# earlier "3.77 MiB, Windows only" note here covered only two of the three toolkits and is
# not a number to quote. See docs/HLSD/design-tab.md.
if (IN_GIT_REPO)
set(OCCT_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OCCT-prefix/src/dep_OCCT)
endif ()
# shipped bytes. Windows ships only the DLLs libslic3r links, so the tab adds the TKFillet,
# TKOffset and TKBool DLLs. See docs/HLSD/design-tab.md.
orcaslicer_add_cmake_project(OCCT
URL https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_6_0.zip
URL_HASH SHA256=28334f0e98f1b1629799783e9b4d21e05349d89e695809d7e6dfa45ea43e1dbc
#PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
PATCH_COMMAND git apply ${OCCT_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
URL https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V8_0_1.zip
URL_HASH SHA256=7c033d917ee8f040c0512d289dcc5f02c148889d5bac17c3e25639accb44f0da
#DEPENDS dep_Boost
DEPENDS ${FREETYPE_PKG}
CMAKE_ARGS
-DCMAKE_CXX_STANDARD=17
-DBUILD_LIBRARY_TYPE=${library_build_type}
# With the Unix layout, OCCT's resources and licenses go under share/ and its scripts
# into bin/occt on Windows too. libslic3r finds the CMake package in lib/cmake/occt.
-DINSTALL_DIR_LAYOUT=Unix
-DINSTALL_DIR_BIN=bin/occt
-DINSTALL_DIR_LIB=lib/occt
-DINSTALL_DIR_INCLUDE=include/occt
-DINSTALL_DIR_CMAKE=lib/cmake/occt
-DUSE_TK=OFF
-DUSE_TBB=OFF
#-DUSE_FREETYPE=OFF
+13
View File
@@ -75,6 +75,19 @@ static FILE *stl_open_count_facets(stl_file *stl, const char *file, unsigned int
break;
}
}
// Zero normals and coordinates like 10 or 15 have no byte above 127, so the test above can miss a binary file.
// Its size still matches its facet count; text read as that count would need a file of gigabytes.
if (stl->stats.type == ascii) {
uint32_t header_num_facets;
fseek(fp, custom_header_length, SEEK_SET);
if (fread(&header_num_facets, sizeof(uint32_t), 1, fp) == 1) {
#if BOOST_ENDIAN_BIG_BYTE
stl_internal_reverse_quads((char*)&header_num_facets, 4);
#endif /* BOOST_ENDIAN_BIG_BYTE */
if (header_size + uint64_t(header_num_facets) * SIZEOF_STL_FACET == file_size)
stl->stats.type = binary;
}
}
rewind(fp);
uint32_t num_facets = 0;
+9 -8
View File
@@ -51,14 +51,13 @@ widens the existing OCCT build by one module flag in `deps/OCCT/OCCT.cmake`:
-DBUILD_MODULE_ModelingAlgorithms=${SLIC3R_CAD}
```
Most of that module's twelve toolkits were already being built, because `DataExchange` — the
STEP path upstream ships — depends on them. The delta is `TKFillet` (used through
`BRepFilletAPI`), `TKOffset` (`BRepOffsetAPI`) and `TKFeat`, which nothing here references but
which the module flag builds anyway, because OCCT's module flags are all-or-nothing. On macOS
and Linux OCCT links statically, so an unreferenced toolkit costs build time and no shipped
bytes; on Windows OCCT builds shared, so the cost there is real DLL bytes. That Windows figure
has not been measured, and `OCCT.cmake` says so rather than carrying a number that was derived
from an incomplete toolkit list.
Most of that module's toolkits are built either way, because `DataExchange`, which the STEP
importer uses, depends on them. With the flag on, OCCT also builds `TKFillet` (used through
`BRepFilletAPI`), `TKOffset` (`BRepOffsetAPI`), and `TKFeat`, `TKHelix`, `TKXMesh` and
`TKExpress`, which nothing here references but which the module flag builds anyway, because
OCCT's module flags are all-or-nothing. On macOS and Linux OCCT links statically, so an
unreferenced toolkit costs build time and no shipped bytes. On Windows OCCT builds shared and
only the linked toolkits ship, so the tab adds the `TKFillet`, `TKOffset` and `TKBool` DLLs.
On Windows the packaging step asserts that every linked OCCT toolkit has a shipped DLL and
fails the configure with the name of any that is missing, because the alternative failure — a
@@ -117,6 +116,8 @@ that keep it survivable are:
`Import` features embed the imported solid as an OCCT BRep string inside the recipe rather than
referencing the source file, so a project opens without the STEP or mesh it was built from.
The cost is that saved projects are coupled to an OCCT BRep revision.
`tests/data/cad_brep_occt76.brep` holds a solid written by OCCT 7.6, and its test fails if the
bundled OCCT can no longer read it.
## The interaction contract
+529 -183
View File
@@ -2,238 +2,584 @@
## Purpose and scope
Precise Seam places the seam where a helper volume intersects the external
wall. The user attaches a mesh to an object as a Precise Seam modifier, and on
every layer the seam placer reads the modifier's slice to decide where the seam
of each external perimeter may, must or must not go. The same mesh keeps
working after the model changes, so the seam does not have to be repainted
after every design revision, and a swept helper body can guide the seam along
any path.
Precise Seam lets a helper volume decide where the seam of an object goes. The
user attaches a mesh to an object as a Precise Seam modifier. On every layer,
the part of the external perimeter that lies inside the modifier's slice
determines where the seam must, may or must not be placed. The helper is a
persistent model object rather than paint on the surface, so it keeps working
when the design changes. A body swept along a path on the surface can guide the
seam along any trajectory.
The modifier is non-printing geometry. It does not take part in slicing, region
assignment, filament selection or brim adhesion. It affects only seam
placement, which runs during G-code export.
The modifier is non-printing geometry. It takes no part in object slicing,
region assignment, filament selection or brim adhesion, and it affects only seam
placement during G-code export. Objects without Precise Seam volumes follow the
regular seam placement unchanged.
## Volume types and priority
Precise Seam does not replace the seam placer. It feeds it: a modifier inserts
the points it needs into the perimeter and changes the enforced/blocked type of
seam candidates, the same typing mechanism as seam painting, and the configured
seam position then chooses among them.
Precise Seam adds six `ModelVolumeType` values after `SUPPORT_ENFORCER`. The
strong types come first and the weak types follow. `is_precise_seam()`,
## Modifier types
Precise Seam adds six `ModelVolumeType` values after `SUPPORT_ENFORCER`, strong
types first and weak types after them. `is_precise_seam()`,
`is_precise_seam_strong()` and `is_precise_seam_weak()` are range checks that
depend on this order.
| Type | Group | Effect on the perimeter |
| Type | Group | Effect on an intersected perimeter |
| --- | --- | --- |
| `PRECISE_SEAM_CENTER` | strong | seam at the arc-length midpoint of the intersection |
| `PRECISE_SEAM_CENTER` | strong | seam at the midpoint, by arc length, of the intersection |
| `PRECISE_SEAM_LEFT` | strong | seam at the first point of the intersection |
| `PRECISE_SEAM_RIGHT` | strong | seam at the last point of the intersection |
| `PRECISE_SEAM_ENFORCED` | weak | intersection marked as enforced |
| `PRECISE_SEAM_BLOCKED` | weak | intersection marked as blocked |
| `PRECISE_SEAM_NEUTRAL` | weak | intersection reset to neutral |
A strong modifier fixes one point. A weak modifier only changes the
enforced/blocked type of seam candidates, and the configured seam position then
chooses among them. First and last are taken along the perimeter made
counter-clockwise seen from above. On an outer wall seen from outside, Left is
the left end of the intersection. On the wall of a hole seen from inside the
hole, the two ends are swapped.
A strong modifier fixes a single point. The perimeter gets exactly one enforced
seam candidate there, and every other candidate is blocked. A weak modifier
retypes, and where needed adds, the candidates inside its intersection, like
painting does.
An **intersection** is a continuous part of the external perimeter's centerline
that lies inside the modifier's slice on that layer. It is a portion of the
perimeter, never a chord through the object. The centerline lies half an
extrusion width inside the model surface and depends on print settings, so a
modifier must reach clearly past the surface to cross it unambiguously.
### Terms
- **Segment:** an intersection as the code represents it (`PerimeterSegment`).
User-facing texts call it an intersection.
- **Fragment:** a piece of the perimeter returned by clipping, before it is tied
to the source contour.
- **Interval:** the bound part of one source edge, given by the edge index and a
parameter range on that edge.
- **Zone:** a weak segment with its type (Enforced, Blocked or Neutral).
- **Boundary:** an end of a zone, inserted into the perimeter polygon.
- **Candidate:** a seam candidate of the seam placer, built from the points of
the processed perimeter polygon (painted enforcers may add more).
First and last are taken along the perimeter oriented counter-clockwise as seen
from above. On an outer wall seen from outside, Left is therefore the left end
of the intersection. On the wall of a hole seen from inside the hole, the two
ends are swapped. Mirroring an object does not mirror the mode: perimeters stay
counter-clockwise, so Left remains the left end seen from outside, and the seam
moves to the other end of the modifier instead of following the mirrored model.
## Priority
The order of volumes in the object is the priority order, highest first.
`ModelObject::sort_volumes()` keeps every strong modifier before every weak one
and preserves the user's order within each group. The object list lets the user
drag a modifier only within its own group. A type change that crosses a group
boundary moves the volume to the end of its new group, where it has the lowest
priority. Strong modifiers are tried in this order, and the first one that
yields a seam on a perimeter wins. Weak modifiers are applied from the lowest
priority to the highest, so the highest one overwrites any overlapping zone.
drag a modifier only within its own group. A type change that crosses the group
boundary moves the volume to the end of its new group, with the lowest priority
there.
## Model storage and 3MF compatibility
- **Strong:** modifiers are tried in priority order on each perimeter. The first
one that yields a usable segment decides the seam. Within that modifier the
longest segment wins; lengths are never compared across modifiers. Once a
strong point is placed, no later strong modifier and no weak modifier is
processed for that perimeter.
- **Weak:** every weak modifier applies. They are applied from the lowest
priority to the highest, so the highest one overwrites overlapping zones. A
Blocked modifier that fully contains a perimeter is the exception: it is
skipped there (see [Full containment](#full-containment)).
Projects must stay readable by earlier releases, and the modifier must not
change a print there. Both 3MF writers therefore store a Precise Seam volume as
an ordinary parameter modifier: `modifier_part` in the Bambu-format part
subtype, and `ParameterModifier` together with the legacy `modifier` flag in
the Prusa-format volume metadata. The seam mode is written separately under
A strong modifier without a usable segment, even one whose fragments were all
discarded, passes the turn to the next one.
## Data flow
1. **Invalidation.** `Print::apply()` treats a change of Precise Seam volumes as
a change of seam placement and invalidates G-code export; the object is not
resliced (see [Print invalidation](#print-invalidation)).
2. **Modifier slices.** `SeamPlacer::init()` collects each object's Precise Seam
volumes once, slices every volume separately and caches its regions with
their bounding boxes.
3. **Perimeters.** Seam candidates are gathered in parallel over the layers.
For objects with Precise Seam volumes, each external perimeter polygon is
normalized and prepared once for all modifiers.
4. **Extraction.** For each modifier, the perimeter is clipped against the
modifier's regions on that layer. The clipped fragments are bound back to the
source edges of the perimeter and assembled into segments.
5. **Strong, then weak.** Strong modifiers try to insert one seam point into the
perimeter polygon. If none succeeds, weak modifiers insert their zone
boundaries and subdivide enforced edges.
6. **Candidates.** The seam placer builds candidates from the modified polygon.
Painting assigns types first, weak zones overwrite them, and a strong point
makes its candidate the only enforced one.
7. **Selection and restoration.** The configured seam position chooses the
seams and aligns them. Afterwards the exact strong points are restored.
8. **Warnings.** After all objects are processed, `SeamPlacer::init()` prepares
one combined warning text if any problem was found; G-code export issues it.
## Modifier slices
`init_precise_seam_data()` collects the Precise Seam volumes of each object:
strong ones in priority order and weak ones in reverse, so that weak zones can
be applied with last-write-wins. Each volume is sliced separately with
`PrintObject::slice_single_volume_regions()`, at the object's layer heights and
with the same centered transformation as the object. The slices keep every
region's outer contour together with its holes as an `ExPolygon`. Volumes are
not merged, so each keeps its own priority, and a modifier may have several
regions on one layer.
`prepare_modifier_slices()` moves the slices into `ModifierRegionsCache`,
pairing each region with the bounding box of its exterior. Empty layers keep
their slots, so the cache is indexed by object layer; `Layer::id()` includes raft
layers, which are subtracted. The cache is filled before candidates are gathered
and is only read afterwards, shared by both modifier kinds and all worker
threads without locking.
## Perimeter preparation
The seam placer works on external perimeter loops, including the walls of
holes. For objects with Precise Seam volumes, consecutive duplicate points and
the repeated closing point of each extrusion loop are removed: adjacent
extrusion paths share endpoints, and the resulting zero-length edges would
prevent point insertion at their junctions. Distinct visits to one point of a
self-touching contour are kept. Objects without Precise Seam volumes keep their
original points, so ordinary seam candidates are unaffected.
Each polygon is made counter-clockwise. A single `PreparedPerimeter` is then
built for all modifiers of that perimeter. It holds a validity check (at least
three points, no consecutive or closing duplicates), the bounding box, and the
clipping line: the polygon as an open polyline with its first point repeated at
the end. The preparation borrows the polygon and is used only while the polygon
is unchanged: strong processing returns immediately after inserting its point,
and weak processing collects all segments before it inserts anything. An
invalid perimeter receives no Precise Seam processing.
## Segment extraction
`extract_perimeter_segments()` turns one modifier's regions on one layer into
segments of the perimeter, each with its geometry and its position on the
source contour. Both modifier kinds consume these segments; the extractor is
told the modifier type so that it prepares only the data that type needs.
### Clipping
Regions whose bounding box does not overlap the perimeter's are skipped. The
clipping line is intersected with each remaining region by `intersection_pl()`,
which clips an open path against an `ExPolygon` with its holes attached, using
the nonzero rule. Clipping an open line yields only pieces of the perimeter, so
a modifier crossing the whole object produces two separate pieces rather than a
chord through the body. Holes in a modifier and several regions of one modifier
simply produce more pieces. The line is cut at vertex zero, so a piece crossing
that vertex arrives as two fragments. A border that only touches the line can
come back as a single point; such fragments carry no coverage and are dropped
before binding.
### Binding fragments to source edges
Clipper returns coordinates only. Insertion needs the source edge of every
point, and coordinates alone are ambiguous where a contour visits the same
point twice. Each fragment is therefore bound to the source edges it covers,
producing intervals: an edge index with a parameter range on that edge.
- **Exact path.** For fragments with interior points, the second point is used
as an anchor that must equal a source vertex exactly. Clipping keeps the
vertices of an open path unchanged, including collinear ones. The following
points must match successive source vertices in either direction; later
occurrences of the anchor are tried if a sequence does not match. Only the two
end cuts are projected onto their edges.
- **Projection path.** Two-point fragments, and fragments the exact path cannot
match, are bound by projection. The first source edge that holds both points
of the first pair, with distinct parameters, establishes the edge and
direction. Every following pair must continue on the same edge or cross to the
neighboring edge at their actual shared vertex, in the same direction. A pair
continuing on the same edge reuses the previous pair's parameter for their
shared point, so the two projections of one point cannot differ.
- **Failure.** A fragment that cannot be bound continuously is rolled back and
discarded. Earlier fragments and other fragments are unaffected. The failure
is counted, logged and reported to the user (see
[Diagnostics](#diagnostics-and-warnings)).
Two rare rounding cases are handled only after both paths have failed, so the
normal path never pays for them:
- **Cut beside a vertex.** When a modifier boundary crosses within about one
coordinate unit of a source vertex, Clipper can place the cut at the vertex's
height but a few units beside it. The end pair then collapses to the vertex's
parameter or misses both neighboring edges. An end cut closer than the
snapping radius to a vertex of the fragment's own chain is snapped to that
vertex: either its neighbor in the fragment (the cut is a rounded copy of it
and is dropped) or a vertex that shares a source edge with that neighbor. The
neighbor wins whenever it is within the radius. Ends that are themselves source
vertices and ambiguous choices are left unchanged. Binding is then retried
once with the same strict rules, so a wrong candidate can only fail again.
- **Contact.** A fragment that still fails but is shorter than the snapping
radius is accepted as a contact and binds nothing. Insertion would collapse it
onto one point anyway.
Both outcomes are recoveries, not failures: they show no user warning but leave
a log marker.
### Assembling segments
The intervals are sorted by edge and parameter. Intervals on the same occurrence
of an edge are united when they overlap or meet, by parameter or at the same
integer point; equal coordinates on different edges are never united. A
parameter of 1 is stored as parameter 0 of the next edge, so intervals on
adjacent edges meet exactly at their shared vertex. Consecutive intervals that
meet form one `PerimeterSegment`, and the last segment is joined with the first
when they meet at vertex zero, undoing the artificial cut of the clipping line.
Each segment keeps its polyline, the source edge of every polyline edge, and its
begin and end positions on the source contour.
### Full containment
A modifier that covers the whole perimeter has no boundaries on it. The policy
follows seam painting, where painting a whole perimeter green is a meaningful
choice and forbidding the seam all round is not:
- **Seam Enforced** types the whole perimeter, like a perimeter painted green all
round, with subdivision applied as described under [Weak modifiers](#weak-modifiers).
- **Seam Neutral** types the whole perimeter Neutral, like an unmarked perimeter,
clearing painting and lower zones.
- **Seam Blocked** is skipped for the perimeter, with the full-containment
warning. The seam cannot avoid the whole perimeter, so the modifier does not
override anything below it: lower zones and painting stay in effect.
- **Seam Center, Left and Right** are skipped with the same warning: there is no
intersection to place the point on.
Enforced and Neutral take part in the usual priority order (see
[Weak modifiers](#weak-modifiers)).
The perimeter is fully contained when the united intervals cover every source
edge from parameter 0 to 1. A modifier boundary that merely touches the
perimeter counts as well:
- At a vertex or on an axis-aligned edge, clipping splits the line exactly at the
touch, the pieces meet at one point, and the coverage is complete.
- On an inclined edge the touching point is usually not representable on the
integer grid. The boundary pokes a few units across and leaves a real gap, so
a single segment covers everything except that gap.
Weak insertion would collapse such a segment's boundaries onto one vertex and
turn the intended zone into a single candidate, and strong would put the seam at
the touch. A single segment is therefore also full containment in the cases
where insertion collapses it, exactly up to edges shorter than 2 µm:
- the uncovered length from its end to its begin is below 1 µm, or
- the gap spans one vertex, or starts at a vertex and ends on the next edge, and
both ends lie within 1 µm of the vertex that ends the first gap edge, since
each end then snaps onto it from its own edge.
A cheap filter runs first: both cases bring the segment's ends within 2 µm of
each other.
## Strong modifiers
For a strong modifier, the extractor prepares each segment's target point
before anything is inserted, together with the source edge it lies on:
- **Left:** the segment's first point.
- **Right:** the segment's last point.
- **Center:** the point at half the segment's arc length.
Arc length is the sum of Euclidean edge lengths, not the chord or a vertex count.
`insert_strong_seam_point()` selects the longest segment of the first modifier
that has one. Exactly equal lengths are resolved by the prepared target points:
greater bed Y first, then smaller X; a complete tie keeps the first segment.
Slice coordinates already include instance rotation and have the bed axes;
centering and XY translation do not change this order. Nearly equal lengths are
not treated as equal, so exact ties occur mainly on axis-aligned geometry.
Geometrically equal segments, such as a symmetric modifier crossing both faces
of a thin wall, differ only by rounding noise that varies between layers, so
the chosen face may alternate. This is accepted deliberately: such a modifier is
ambiguous by itself: more than one segment raises the "multiple intersections"
warning. The user should make the modifier cross the perimeter once.
The selected point is inserted on its source edge. A point within 1 µm of an
existing vertex is snapped to that vertex. Helper points are added 1 µm on both
sides of it, except on an adjacent edge shorter than 2 µm, which already bounds
the distance.
When the candidates are built, the candidate at the inserted point is the only
enforced one and becomes the central enforcer; every other candidate is blocked.
Every seam position mode therefore selects it. Alignment and random placement
can still move the final position, so after alignment
`restore_precise_seam_positions()` writes the exact point and its index back
into every perimeter that has a strong seam.
## Weak modifiers
`collect_weak_modifier_segments()` extracts the segments of every weak modifier
before the polygon is modified, so all positions refer to the same contour. Each
segment becomes a zone with a type and two boundaries, kept in application
order, lowest priority first. Full containment of an Enforced or Neutral
modifier becomes a whole-perimeter zone at its place in that order: it has no
boundaries and takes part in no insertion or helper step below. The boundaries
carry their positions on the source contour; these remain as provenance after
insertion and are not indices into the modified polygon.
`prepare_weak_modifier_segments()` then changes the polygon:
1. **Boundary insertion.** Insertion events are sorted by decreasing source edge
and parameter, and the polygon is modified from its end towards its start. A
pending boundary's source index therefore stays valid. Vertex zero has the
canonical position `(0, 0)` and is
processed last, and a point on the closing edge is appended rather than
inserted at index zero. A boundary within 1 µm of either endpoint of its
current edge, an original vertex or a boundary inserted earlier, is snapped to
that point, so coincident boundaries share a vertex. A zone narrower than
1 µm collapses into a single vertex.
2. **Helper points.** A helper point is added 1 µm outside every boundary,
unless the edge there is shorter than 2 µm, which already bounds it. The
helpers keep the edges at a boundary short, so a seam placed along such an
edge stays close to the boundary. Coincident boundaries share their helpers.
3. **Enforced subdivision.** Zone types are resolved for the polygon's edges in
priority order. The edges of a zone are those from its left boundary up to,
but not including, its right boundary; a whole-perimeter zone types every
edge. Enforced edges longer than `SeamPlacer::enforcer_oversampling_distance`
(0.2 mm) are subdivided into steps of at most that length; shorter edges and
existing vertices are kept.
The regular seam placer then chooses the seam as for painted seams.
When candidates are built, painting assigns their types first.
`apply_weak_modifiers_to_perimeter()` then overwrites the types of the
candidates between the boundaries of each zone, both boundaries included,
lowest priority first; a whole-perimeter zone types every candidate. Blocked
and Enforced zones therefore take precedence over painting, and Neutral clears
painting inside its zone.
## Numeric tolerances
Coordinates are integers in scaled units: 1 nm by default, and 10 nm when a bed
larger than 2147 mm switches `SCALING_FACTOR`. Both Precise Seam tolerances are
deliberately defined in units rather than physical distances. Clipper truncates
cuts to whole units at any scale, so the on-edge tolerance must follow the unit; the
snapping radius scales with it to keep its margin over single-precision
candidate coordinates, which are coarser on large beds. Distances quoted in
this document in nanometers and
micrometers assume the default unit; on large printers they are ten times
larger. The enforced subdivision step is a physical distance and stays 0.2 mm.
| Value | Role |
| --- | --- |
| `MACHINE_PRECISION_SQUARED` (2.5 units², about 1.6 nm) | A point lies on an edge if it is this close. It absorbs Clipper's truncation of cuts to whole units (under √2 units from the edge) and never bridges a real gap: a one-unit uncovered gap stays a gap. |
| `TOLERANCE_LINEAR` (1000 units, 1 µm) | Insertion snaps points this close to an existing vertex, and helper points are placed this far from boundaries. The same radius bounds the rounding fallback, contacts and the sub-micron full-containment rule, so those decisions match what insertion would produce anyway. |
| `enforcer_oversampling_distance` (0.2 mm) | Maximum step of enforced subdivision. |
Raising the on-edge tolerance would not help with cuts beside a vertex: more
points past a vertex would be clamped to its parameter and collapse. Lowering it
would reject ordinary rounded cuts. The snapping radius is kept far above
clipping precision for robustness: seam candidates hold single-precision
coordinates, whose step is about 8 to 15 nm at typical object coordinates
(about 0.25 µm 3 m from the object's centre, on large beds only), and
weak boundaries and the strong point are located among the candidates by those
coordinates, so distinct points must stay clearly distinct. 1 µm is also far
below printing precision.
## Diagnostics and warnings
One `PreciseSeamWarnings` instance is shared by all objects and layers of a
`SeamPlacer::init()` call. After all objects are processed, `SeamPlacer::init()`
prepares at most one warning text, available through `precise_seam_warning()`.
G-code export issues it as one non-critical warning with the ID
`SlicingPreciseSeamWarning`. It is a single line, "Precise Seam: <causes>. Seam
placement may differ from expected.", because the export warnings dialog shows
only the first line of each warning. Repeated warning events replace the
notification instead of appending to it. Except for the "had no effect" cause,
the causes name the modifier types involved, as the menu names them, in menu
order and each type once, for example "(Seam Left, Seam Enforced)".
The causes are:
- **failed to process some intersections (types):** at least one fragment was
discarded by binding. Other segments remain usable.
- **multiple intersections with a perimeter, only one was used (types):**
a Seam Center, Left or Right modifier had more than one segment on a
perimeter (see [Strong modifiers](#strong-modifiers)).
- **a perimeter is fully inside a modifier, the modifier was not applied to it
(types):** a Seam Center, Left, Right or Blocked modifier was skipped for a
perimeter (see [Full containment](#full-containment)).
- **modifier "<name>" of "<object>" had no effect on the seam (it might not reach
the centerline of the printed perimeter):** a modifier was evaluated on at
least one perimeter and never gave a segment, full containment or a discarded
fragment. Only the first such modifier in print and volume order is named,
followed by "(N in total)" when there are several.
Only the effect is certain, so the cause is given as a hint. A modifier is
evaluated only when its turn comes: on a perimeter where a higher strong
modifier placed the seam, lower strong and all weak modifiers are not
evaluated. A modifier that was never evaluated is not reported, since nothing
is known about it. A point contact gives no segment and does not count as
reaching the perimeter.
The log records the following diagnostic markers:
- `[PreciseSeamIntersectionFailed]` for a discarded fragment, with object,
modifier, layer, height, fragment and failing pair, the failure reason and
point counts.
- `[PreciseSeamFragmentRecovered]` for a recovery, with `outcome=bound` or
`outcome=contact`, the same location fields and the original failure reason.
- `[PreciseSeamNoEffect]` for every modifier of the "had no effect" cause, with
the object and modifier names. Unlike the user warning, the log lists all of
them.
Failures and recoveries are counted separately. The first 10 of each per
`init()` call are logged in detail, in parallel processing order; if a limit is
exceeded, one summary marker reports the total and the number omitted.
## Known limitations
- **The modifier must reach the perimeter centerline.** Contacts are taken as
clipping returns them, without offsets or tangency rules, so boundaries that
only graze the centerline are the user's responsibility. Several near-touches
on inclined edges can leave several segments separated by gaps of a few units;
their zones then cover nearly the whole perimeter instead of being treated as
full containment.
- **Self-touching perimeters.** Extraction keeps distinct visits of one
coordinate apart through its source-edge bindings, but the consumers locate
inserted points by coordinates. A weak zone is typed and subdivided from the
first vertex with its boundary coordinate, while boundary helpers are added at
every such vertex. A strong point marks every candidate at its coordinate as
enforced, and the last one is restored after alignment. If a boundary or a
strong point falls exactly on a repeated coordinate, a zone may therefore start
from another visit, or the seam may start at another visit of the same point.
Carrying visit identity through insertion, refinement, candidates and
restoration would touch the whole pipeline, so it is not done for this rare
geometry. Overlapping source visits are likewise outside the binding contract.
## Integration with the application
### Other seam settings
- Precise Seam takes part only in outer and hole perimeter seam placement. In
spiral vase mode the seam placer is not used for perimeters, so the modifiers
have no effect.
- Scarf seams, the seam gap and wiping start from the chosen point exactly as
they would from an ordinary seam.
- Seam painting acts only from model parts, the volumes the seam gizmo shows and
edits, and from negative volumes. Painting retained on a volume after a change
from part to a Precise Seam, ordinary or support modifier is ignored. A type
change back to a model part reactivates any retained painting.
Negative volumes keep it on purpose: painting a
part and turning it into a negative volume is the only way to paint the wall
of the hole it cuts. That painting still affects the seam but is invisible in
the gizmo and cannot be edited there; this is known technical debt.
If painting them is ever made editable, G-code invalidation must track it too:
`model_custom_seam_data_changed()` checks model parts only.
### Model storage and 3MF compatibility
Projects must stay readable by earlier releases, and a Precise Seam volume must
not change a print there. Both 3MF writers therefore store it as an ordinary
parameter modifier: `modifier_part` in the Bambu-format part subtype, and
`ParameterModifier` together with the legacy `modifier` flag in the
Prusa-format volume metadata. The seam mode is written separately under
`precise_seam_type`, using the names from `ModelVolume::type_to_string()`
(`precise_seam_center` and so on).
On load, the mode applies after all other volume metadata, regardless of XML
key order, and only when the base type is a modifier. Missing or unknown modes
leave an ordinary modifier. Seam metadata on any other base type is ignored.
Files that stored the seam mode directly as the volume type still load.
On load, the mode is applied after all other volume metadata, regardless of XML
key order, and only when the base type is a modifier. A missing or unknown mode
leaves an ordinary modifier, and seam metadata on any other base type is
ignored. Files that stored the seam mode directly as the volume type still load.
A project saved again by an earlier release loses the seam mode for good: the
volumes stay ordinary modifiers without settings.
A Precise Seam volume keeps any per-volume settings it had as a part or
modifier, but they are inactive and the object list shows no settings item for
it. The writers prefix these keys with `precise_seam_config:`, so an earlier
reader drops them as unknown options. The volume therefore loads there as a
modifier without settings and has no effect on the print. The current reader
restores the keys only when the volume ends up as a Precise Seam type, so the
settings return when the user changes the type back. Configuration values are
XML-escaped in both writers, for every volume type.
reader drops them as unknown options and loads a modifier without settings,
which has no effect on the print. The current reader restores the keys only when
the volume ends up as a Precise Seam type, so the settings return when the user
changes the type back.
## Print invalidation
### Print invalidation
`Print::apply()` compares the Precise Seam volumes of each object by type, ID
and transformation. Adding, removing, moving, reordering or retyping one
cancels background processing and invalidates only `psGCodeExport`; the sliced
layers are kept. `model_volume_list_update_supports_and_seams()` then brings
the support and Precise Seam volumes of the print's model copy in line with the
new model in one pass. A volume may switch between the two families, since
neither affects slicing. A conversion to or from a part or ordinary modifier
changes the solid and modifier volume lists and reslices as before.
and transformation. Adding, removing, moving, reordering or retyping one cancels
background processing and invalidates only `psGCodeExport`; the sliced layers
are kept. `model_volume_list_update_supports_and_seams()` then brings the
support and Precise Seam volumes of the print's model copy in line with the new
model in one pass. A volume may switch between these two families, since neither
affects object slicing; such a switch also changes the support volumes, so the
support step is invalidated as well.
## Modifier slices
A conversion to or from a part or an ordinary modifier changes the solid and
modifier volume lists and reslices the object as before. The volume keeps its
ID across the type change, so the region cache treats a former support or
Precise Seam volume that became a part or modifier as new, since it was never
cached.
`SeamPlacer::init()` collects the Precise Seam volumes of each object once:
strong ones in priority order and weak ones reversed. It slices each volume
separately with `PrintObject::slice_single_volume()`, which shares
`slice_modifier_volumes()` with support blockers and enforcers but does not
merge volumes, so each keeps its own priority. The result is cached per volume
and indexed by object layer; `Layer::id()` includes raft layers, which are
subtracted. Seam candidates are then gathered in parallel over the layers and
read the cache without locking.
Removing the last helper of a single-part object reslices it, as removing any
last modifier would.
Objects without Precise Seam volumes follow the unchanged seam placement path.
For objects that have them, perimeter extraction also removes consecutive
duplicate points and the repeated closing point of each extrusion loop.
Zero-length edges at path junctions would otherwise prevent point insertion
there. Distinct visits to one point of a self-touching contour are kept.
## Finding the wall segment
The seam placer works on the external perimeter loops of each layer, both
outer contours and holes, each made counter-clockwise. For every modifier
polygon on the layer that overlaps the perimeter's bounding box, the region
enclosed by the perimeter is clipped against the modifier polygon. The boundary
of each intersection polygon alternates between runs that follow the perimeter
and runs that follow the modifier outline. The wall segment is the longest
continuous run of intersection vertices that lie on the perimeter, measured in
vertices.
The fast path first finds an intersection vertex that exactly matches a
perimeter vertex. It then walks forward and backward, expecting the adjacent
perimeter vertex and falling back to projection when Clipper has merged or
split collinear edges. A vertex counts as on the perimeter when its projection
is within about 1.6 nm, which covers Clipper's rounding. If no vertex matches
exactly, or every vertex lies on the perimeter, the general path projects all
vertices. When every vertex is on the perimeter, the edge midpoints are checked
instead: a modifier chord can join two perimeter vertices directly, and the
chords split the vertex ring into runs. If no edge leaves the perimeter, the
perimeter lies entirely inside the modifier.
`Polygon::point_projection()` optionally reports the edge that holds the
projection, and every point of the segment keeps the index of its perimeter
edge. New points are inserted on that edge. A point within 1 µm of an existing
vertex snaps to that vertex instead.
## Strong modifiers
For a strong modifier, the target is the first point, the last point or the
arc-length midpoint of the segment. The midpoint is projected back onto the
original perimeter, because Clipper may have merged several perimeter edges
into one segment edge. The target is inserted into the perimeter, and a helper
point is inserted 1 µm before and after it. Strong modifiers are tried in
priority order, the first valid intersection decides the seam, and weak
modifiers are not processed for that perimeter.
When candidates are built, the inserted point is the only enforced candidate
and becomes the central enforcer; every other candidate is blocked. The seam
position modes then pick that point: Aligned and Aligned Back prefer the central
enforcer, while Back, Random and Nearest rank enforced candidates above blocked
ones. Alignment and random placement can still move the final position along an
edge. After alignment, `restore_precise_seam_positions()` writes the exact point
and its index back into every perimeter that has a strong seam. Inner walls take
their seam from the external seam as usual, including staggering.
## Weak modifiers
Weak modifiers produce one segment per intersection polygon, so one modifier can
mark several zones on one perimeter. All segment boundaries are inserted into
the perimeter in order of decreasing arc length. Each insertion then leaves the
indices of the pending, shorter ones unchanged; a point on the closing edge is
appended rather than inserted at index zero. A helper point is added 1 µm
outside each boundary. Random placement picks a position along the edge that
follows a candidate. These helpers keep that edge 1 µm long at each boundary, so
a zone cannot extend or intrude further than that. Boundaries that coincide
share their helper points.
The zone types are then resolved in priority order, and the edges of enforced
zones are subdivided into steps of at most
`SeamPlacer::enforcer_oversampling_distance` (0.2 mm). The middle candidate of
the longest enforced patch is therefore close to the geometric middle of the
zone. That patch is measured in candidates, across the closing edge, regardless
of where the contour starts; the same rule applies to painted seams.
Candidates first receive their type from seam painting. The weak zones then
overwrite it, lowest priority first. Blocked and Enforced zones therefore take
precedence over painting, and Neutral clears painting inside its zone.
## Unsupported geometry and warnings
Some modifier shapes cannot be resolved to one seam or one zone per crossing.
They are detected cheaply and reported rather than guessed:
- A strong modifier that crosses a perimeter in more than one place uses only
its first valid segment. The other crossings are ignored.
- A modifier that crosses the whole region enclosed by the perimeter is
detected when the modifier outline minus that region leaves more than one
piece, none of them a hole. Its intersection holds two wall runs, and only
one of them is used.
- A modifier whose slice has a hole on a layer, found as a clockwise polygon in
the flattened slice, is skipped on that layer. The flattened slice no longer
records which hole belongs to which contour.
- A perimeter that lies entirely inside a modifier is ignored by that modifier.
The conditions are atomic flags shared by all layers and objects. After all
objects are processed, `SeamPlacer::init()` issues at most one non-critical
warning with the ID `SlicingPreciseSeamWarning`. The warning is a single line
that lists every cause found, because the export warnings dialog shows only the
first line of each warning. Repeated warning events replace this notification
instead of appending text to it.
## User interface
### User interface
- *Add Precise Seam* in the object menu creates a Center modifier from a
primitive or a loaded mesh. Text and SVG volumes cannot become Precise Seam
modifiers: the menu does not offer them, and `ObjectList::set_volume_type()`
modifiers: the menu does not offer it, and `ObjectList::set_volume_type()`
refuses the change.
- *Change Type* has a single *Precise Seam* entry. It converts other volumes to
Center and keeps the mode of volumes that are already Precise Seam. The
*Precise Seam Type* submenu appears only when every selected item is a
Precise Seam volume, including settings rows that resolve to one. It sets the
chosen mode on all selected volumes.
*Precise Seam Type* submenu appears only when every selected item is a Precise
Seam volume, including settings rows that resolve to one, and sets the chosen
mode on all of them.
- Each mode has its own icon in the object list and its own color in the 3D
view, at 60% opacity: warm oranges for the strong modes, and green, red and
gray for Enforced, Blocked and Neutral.
- Object list drops map visible rows to volume indices while skipping hidden
cut connectors, and they refresh the row-to-volume map of the object.
- Precise Seam volumes have no filament, block pasting into SLA, and are exposed
to Python plugins as `ModelVolumeType` values plus the `is_precise_seam*()`
methods.
view, at 60% opacity: warm orange, gold and dark orange for Center, Left and
Right; green, red and gray for Enforced, Blocked and Neutral. The three strong
colors are close shades of one orange because all three mark strong
modifiers; the object list icons tell the modes apart.
- Precise Seam volumes have no filament and cannot be pasted into SLA objects.
Python plugins see them as `ModelVolumeType` values and through the
`is_precise_seam*()` methods.
## Implementation and verification
- [PreciseSeam.cpp](../../src/libslic3r/GCode/PreciseSeam.cpp) implements segment
detection, point insertion, weak-zone resolution and position restoration.
[SeamPlacer.cpp](../../src/libslic3r/GCode/SeamPlacer.cpp) integrates it into
candidate gathering and issues the warning.
- [PreciseSeam.cpp](../../src/libslic3r/GCode/PreciseSeam.cpp) implements the
modifier cache, perimeter preparation, segment extraction and binding, strong
selection and insertion, weak-zone preparation and application, and position
restoration. [PreciseSeam.hpp](../../src/libslic3r/GCode/PreciseSeam.hpp)
declares the contracts; [PreciseSeamInternal.hpp](../../src/libslic3r/GCode/PreciseSeamInternal.hpp)
exposes the binding internals to tests.
- [SeamPlacer.cpp](../../src/libslic3r/GCode/SeamPlacer.cpp) fills the cache,
normalizes perimeters, calls both consumers while gathering candidates,
restores strong positions after alignment and prepares the warning text, which
[GCode.cpp](../../src/libslic3r/GCode.cpp) issues during G-code export.
- [Model.hpp](../../src/libslic3r/Model.hpp) defines the types and their order,
[PrintApply.cpp](../../src/libslic3r/PrintApply.cpp) handles invalidation, and
[PrintObjectSlice.cpp](../../src/libslic3r/PrintObjectSlice.cpp) slices the
modifiers. [bbs_3mf.cpp](../../src/libslic3r/Format/bbs_3mf.cpp) and
[3mf.cpp](../../src/libslic3r/Format/3mf.cpp) store them.
[PrintObjectSlice.cpp](../../src/libslic3r/PrintObjectSlice.cpp) slices single
volumes into structured regions. [bbs_3mf.cpp](../../src/libslic3r/Format/bbs_3mf.cpp)
and [3mf.cpp](../../src/libslic3r/Format/3mf.cpp) store them.
- [GUI_Factories.cpp](../../src/slic3r/GUI/GUI_Factories.cpp) and
[GUI_ObjectList.cpp](../../src/slic3r/GUI/GUI_ObjectList.cpp) provide the menus,
type changes and ordering.
type changes and ordering; [3DScene.cpp](../../src/slic3r/GUI/3DScene.cpp)
defines the colors.
- [Segment extraction tests](../../tests/libslic3r/test_precise_seam.cpp) cover
clipping and binding: holes and components, contour origin and reversal,
repeated coordinates, collinear vertices and rounding, rollback and the
diagnostic limits, the rounding fallback on synthetic and real Clipper
fragments, contacts, and full containment including touches and sub-micron
gaps on inclined edges and around vertices.
- [Precise Seam tests](../../tests/fff_print/test_precise_seam.cpp) cover the
strong positions, including a midpoint on an existing vertex or the closing
edge. They also cover shared and coincident weak boundaries, every warning,
and the priority order.
consumers: strong targets in every mode, including a midpoint on an existing
vertex or the closing edge, longest-arc selection and tie order in bed axes,
priorities, weak boundaries that coincide or share an edge, enforced
subdivision, whole-perimeter weak zones with painting and priorities, weak
zones over painting's oversampled candidates, the warning type masks, usage
tracking for the "had no effect" warning, volume sorting of strong and weak
groups, restoration of strong points after alignment, raft layer indexing and
structured slices. End-to-end tests slice a real object with Precise Seam
volumes and check the outer wall starts in the exported G-code: every strong
mode under several seam positions and with a raft, Enforced and Blocked zones,
a modifier with a hole, and the user warning.
- [Seam placer tests](../../tests/fff_print/test_seam_placer.cpp) cover
enforced-patch selection independent of the contour start, fully painted
contours, duplicate removal, and `Print::apply()` synchronization through
type changes and restored model snapshots.
contours, duplicate removal, and `Print::apply()` synchronization through type
changes and restored model snapshots. The duplicate-removal test also checks
the "had no effect" warning text prepared by `init()` for a helper that never
reaches the loop. Further tests check that adding, moving, retyping or
removing a Precise Seam volume invalidates only G-code export, and that seam
painting acts only from model parts and negative volumes, including after a
type change back to part.
- [3MF tests](../../tests/libslic3r/test_precise_seam_3mf.cpp) cover the round
trip of every mode and of inactive settings, attribute escaping, and which
metadata combinations restore a seam mode.
trip of every mode and of inactive settings, attribute escaping, and the
metadata combinations that restore a seam mode.
[Plugin tests](../../tests/slic3rutils/test_precise_seam_plugin.cpp) cover the
Python bindings.
+54
View File
@@ -0,0 +1,54 @@
# Prusa CORE One INDX profiles
The Prusa bundle provides separate four-tool and eight-tool CORE One INDX models
with 0.4 mm high-flow nozzles and a 248 x 205 x 270 mm printable volume. These are
independent-tool printers, not single-extruder MMU3 machines. Both inherit
`fdm_machine_common_coreone_indx`, which inherits the ordinary CORE One HF
printer; the concrete printer presets supply their tool-count-dependent arrays. The bed and wizard resources come from Prusa.
The source configuration is PrusaResearch 2.5.10 from
[Prusa's profile repository](https://github.com/prusa3d/PrusaSlicer-settings-prusa-fff/blob/65c5c8f1e1c3836f306119c49d717759cbc368db/PrusaResearch/2.5.10.ini).
Its printer, process and filament settings are translated to Orca option names.
The supplied process presets cover 0.10, 0.15, 0.20 and 0.25 mm layers. Their
shared `fdm_process_coreone_indx` base inherits the ordinary CORE One HF SPEED
process, with explicit INDX differences and layer-specific child settings.
Material presets are shared with the ordinary CORE One family.
## Tool changes and extrusion state
The start script initializes a persistent `tool_init` vector, counts the tools
used by the job, homes and probes using a loaded tool, calibrates the used tools,
and primes the initial tool at the cleaning station. The change script preserves
Prusa's `G27`, `P0`, `T`, `G12`, `G750` and `M906` sequences. It updates
`e_retracted` so Orca's subsequent unretraction agrees with the script's extrusion.
Per-tool temperature commands are guarded by `is_extruder_used`.
The off-bed purge station is the default. With a prime tower enabled, a newly
used tool still receives its initial station purge, while an initialized tool
uses the source's wipe-tower preparation path. `tool_init` persists across these
changes; treating every tool selection as first use would change the purge and
deretraction sequence.
Purge volume uses the filament's minimal purge setting. Orca's optional flush
volumetric speed is divided by filament cross-sectional area before it is used
as a linear extrusion-speed override. Prusa's separate `filament_flush_volume`
override is not available in these profiles. The source's `EXCLUDE_E_START` and
`EXCLUDE_E_END` internal markers become comments rather than printer commands.
Pressure-advance restoration and automatic pressure-advance emission use the
selected filament preset's settings. These profiles do not impose machine-owned
filament overrides. Dock-fan control retains the source's material and layer
conditions; shutdown parks the tool and turns off the used heaters and dock fan.
## Configuration boundaries
The scripts use Orca's temperature, retraction, fan and speed option names. The
nozzle-check high-flow flag is fixed because these presets describe HF nozzles;
the abrasive-material flag is derived from the filament's required nozzle HRC.
An unset idle temperature uses Orca's zero sentinel. ABS's source XY shrinkage
compensation is represented using Orca's retained-size percentage.
Prusa's consistent-surface cooling strategy and filament-specific infill crossing
speed limits have no direct Orca profile equivalent. These presets use Orca's
native layer-time cooling and material volumetric limits. They do not add slicer
features or change existing Prusa printer profiles.
+25
View File
@@ -22855,3 +22855,28 @@ msgstr ""
#: resources/data/hints.ini: [hint:Avoid warping]
msgid "Avoid warping\nDid you know that when printing materials that are prone to warping such as ABS, appropriately increasing the heatbed temperature can reduce the probability of warping?"
msgstr ""
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "failed to process some intersections (%1%)"
msgstr ""
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "multiple intersections with a perimeter, only one was used (%1%)"
msgstr ""
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr ""
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr ""
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "modifier \"%1%\" of \"%2%\" (%3% in total) had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr ""
+21 -8
View File
@@ -27362,17 +27362,30 @@ msgstr ""
msgid "Precise Seam"
msgstr "Точный шов"
msgid "multiple intersections with a perimeter detected"
msgstr "обнаружены множественные пересечения с периметром"
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "failed to process some intersections (%1%)"
msgstr "не удалось обработать некоторые пересечения (%1%)"
msgid "modifier fully crosses the printable perimeter"
msgstr "модификатор пересекает печатаемый периметр насквозь"
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "multiple intersections with a perimeter, only one was used (%1%)"
msgstr "несколько пересечений с периметром, использовано только одно (%1%)"
msgid "modifier shape is not solid (has holes inside) and was ignored"
msgstr "форма модификатора не сплошная (имеет отверстия) и была проигнорирована"
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "периметр целиком внутри модификатора, модификатор для него не применён (%1%)"
msgid "perimeter is fully contained inside modifier and was ignored"
msgstr "периметр полностью содержится внутри модификатора и был проигнорирован"
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr "модификатор «%1%» модели «%2%» не повлиял на шов (возможно, он не достигает осевой линии печатаемого периметра)"
#: src/libslic3r/GCode/SeamPlacer.cpp
#, possible-boost-format
msgid "modifier \"%1%\" of \"%2%\" (%3% in total) had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr "модификатор «%1%» модели «%2%» (всего: %3%) не повлиял на шов (возможно, он не достигает осевой линии печатаемого периметра)"
msgid "Seam placement may differ from expected."
msgstr "Размещение шва может отличаться от ожидаемого."
@@ -1,8 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<!-- Рамка -->
<!-- Frame -->
<path d="M0.5,13.5L0.5,1.5C0.5,0.951,0.951,0.5,1.5,0.5L13.5,0.5C14.049,0.5,14.5,0.951,14.5,1.5L14.5,13.5C14.5,14.049,14.049,14.5,13.5,14.5L1.5,14.5C0.951,14.5,0.5,14.049,0.5,13.5Z" style="fill:none;stroke:#949494;stroke-width:1px"/>
<!-- Центральные пунктирные линии -->
<!-- Dashed seam line, centered -->
<rect x="7" y="1" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="3" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="5" width="1" height="1" style="fill:#009688"/>
@@ -11,9 +11,9 @@
<rect x="7" y="11" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="13" width="1" height="1" style="fill:#009688"/>
<!-- Правая стрелка -->
<path d="M9.5,7.5L12.504,4.504L12.5,10.5L9.5,7.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
<!-- Left arrow -->
<path d="M9.5,7.5L12.5,4.5L12.5,10.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
<!-- Левая стрелка -->
<path d="M5.501928,7.5L2.497928,4.504L2.501928,10.5L5.501928,7.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
<!-- Right arrow -->
<path d="M5.5,7.5L2.5,4.5L2.5,10.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

+11 -11
View File
@@ -1,16 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<!-- Рамка -->
<!-- Frame -->
<path d="M0.5,13.5L0.5,1.5C0.5,0.951,0.951,0.5,1.5,0.5L13.5,0.5C14.049,0.5,14.5,0.951,14.5,1.5L14.5,13.5C14.5,14.049,14.049,14.5,13.5,14.5L1.5,14.5C0.951,14.5,0.5,14.049,0.5,13.5Z" style="fill:none;stroke:#949494;stroke-width:1px"/>
<!-- Центральные пунктирные линии -->
<rect x="7" y="1" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="3" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="5" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="7" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="9" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="11" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="13" width="1" height="1" style="fill:#009688"/>
<!-- Dashed seam line, shifted left -->
<rect x="3" y="1" width="1" height="1" style="fill:#009688"/>
<rect x="3" y="3" width="1" height="1" style="fill:#009688"/>
<rect x="3" y="5" width="1" height="1" style="fill:#009688"/>
<rect x="3" y="7" width="1" height="1" style="fill:#009688"/>
<rect x="3" y="9" width="1" height="1" style="fill:#009688"/>
<rect x="3" y="11" width="1" height="1" style="fill:#009688"/>
<rect x="3" y="13" width="1" height="1" style="fill:#009688"/>
<!-- Правая стрелка -->
<path d="M9.5,7.5L12.504,4.504L12.5,10.5L9.5,7.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
<!-- Left arrow -->
<path d="M5.5,7.5L8.5,4.5L8.5,10.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1018 B

+11 -11
View File
@@ -1,16 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<!-- Рамка -->
<!-- Frame -->
<path d="M0.5,13.5L0.5,1.5C0.5,0.951,0.951,0.5,1.5,0.5L13.5,0.5C14.049,0.5,14.5,0.951,14.5,1.5L14.5,13.5C14.5,14.049,14.049,14.5,13.5,14.5L1.5,14.5C0.951,14.5,0.5,14.049,0.5,13.5Z" style="fill:none;stroke:#949494;stroke-width:1px"/>
<!-- Центральные пунктирные линии -->
<rect x="7" y="1" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="3" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="5" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="7" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="9" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="11" width="1" height="1" style="fill:#009688"/>
<rect x="7" y="13" width="1" height="1" style="fill:#009688"/>
<!-- Dashed seam line, shifted right -->
<rect x="11" y="1" width="1" height="1" style="fill:#009688"/>
<rect x="11" y="3" width="1" height="1" style="fill:#009688"/>
<rect x="11" y="5" width="1" height="1" style="fill:#009688"/>
<rect x="11" y="7" width="1" height="1" style="fill:#009688"/>
<rect x="11" y="9" width="1" height="1" style="fill:#009688"/>
<rect x="11" y="11" width="1" height="1" style="fill:#009688"/>
<rect x="11" y="13" width="1" height="1" style="fill:#009688"/>
<!-- Левая стрелка -->
<path d="M5.501928,7.5L2.497928,4.504L2.501928,10.5L5.501928,7.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
<!-- Right arrow -->
<path d="M9.5,7.5L6.5,4.5L6.5,10.5Z" style="fill:#949494;stroke:#949494;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

+194
View File
@@ -0,0 +1,194 @@
{
"name": "Pragostroj",
"version": "01.00.01.00",
"force_update": "0",
"description": "Pragostroj printers config",
"machine_model_list": [
{
"name": "KINARB 1HB",
"sub_path": "machine/KINARB1HB.json"
},
{
"name": "KINARB 2HB",
"sub_path": "machine/KINARB2HB.json"
}
],
"machine_list": [
{
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "kinarb_machine_common",
"sub_path": "machine/kinarb_machine_common.json"
},
{
"name": "KINARB 1HB 0.4 nozzle",
"sub_path": "machine/KINARB 1HB 04 nozzle.json"
},
{
"name": "KINARB 1HB 0.5 nozzle",
"sub_path": "machine/KINARB 1HB 05 nozzle.json"
},
{
"name": "KINARB 1HB 0.6 nozzle",
"sub_path": "machine/KINARB 1HB 06 nozzle.json"
},
{
"name": "KINARB 1HB 0.8 nozzle",
"sub_path": "machine/KINARB 1HB 08 nozzle.json"
},
{
"name": "KINARB 1HB 1.0 nozzle",
"sub_path": "machine/KINARB 1HB 10 nozzle.json"
},
{
"name": "KINARB 1HB 1.2 nozzle",
"sub_path": "machine/KINARB 1HB 12 nozzle.json"
},
{
"name": "KINARB 1HB 1.6 nozzle",
"sub_path": "machine/KINARB 1HB 16 nozzle.json"
},
{
"name": "kinarb_2hb_machine_common",
"sub_path": "machine/kinarb_2hb_machine_common.json"
},
{
"name": "KINARB 2HB 0.4 nozzle",
"sub_path": "machine/KINARB 2HB 04 nozzle.json"
},
{
"name": "KINARB 2HB 0.5 nozzle",
"sub_path": "machine/KINARB 2HB 05 nozzle.json"
},
{
"name": "KINARB 2HB 0.6 nozzle",
"sub_path": "machine/KINARB 2HB 06 nozzle.json"
},
{
"name": "KINARB 2HB 0.8 nozzle",
"sub_path": "machine/KINARB 2HB 08 nozzle.json"
},
{
"name": "KINARB 2HB 1.0 nozzle",
"sub_path": "machine/KINARB 2HB 10 nozzle.json"
},
{
"name": "KINARB 2HB 1.2 nozzle",
"sub_path": "machine/KINARB 2HB 12 nozzle.json"
},
{
"name": "KINARB 2HB 1.6 nozzle",
"sub_path": "machine/KINARB 2HB 16 nozzle.json"
}
],
"process_list": [
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "process_common_kinarb",
"sub_path": "process/process_common_kinarb.json"
},
{
"name": "0.15mm PETG fine @Pragostroj 0.5",
"sub_path": "process/0.15mm PETG fine @Pragostroj 0.5.json"
},
{
"name": "0.25mm Draft @Pragostroj 0.5",
"sub_path": "process/0.25mm Draft @Pragostroj 0.5.json"
},
{
"name": "0.25mm PP Draft @Pragostroj 0.5",
"sub_path": "process/0.25mm PP Draft @Pragostroj 0.5.json"
},
{
"name": "0.25mm quality @Pragostroj 0.5",
"sub_path": "process/0.25mm quality @Pragostroj 0.5.json"
},
{
"name": "0.2mm Draft @Pragostroj 0.4",
"sub_path": "process/0.2mm Draft @Pragostroj 0.4.json"
},
{
"name": "0.3mm Draft @Pragostroj 0.6",
"sub_path": "process/0.3mm Draft @Pragostroj 0.6.json"
},
{
"name": "0.40mm quality @Pragostroj 0.8",
"sub_path": "process/0.40mm quality @Pragostroj 0.8.json"
},
{
"name": "0.4mm Draft @Pragostroj 0.8",
"sub_path": "process/0.4mm Draft @Pragostroj 0.8.json"
},
{
"name": "0.4mm PP Draft @Pragostroj 0.8",
"sub_path": "process/0.4mm PP Draft @Pragostroj 0.8.json"
},
{
"name": "0.5mm Draft @Pragostroj 1.0",
"sub_path": "process/0.5mm Draft @Pragostroj 1.0.json"
},
{
"name": "0.6mm Draft @Pragostroj 1.2",
"sub_path": "process/0.6mm Draft @Pragostroj 1.2.json"
},
{
"name": "0.8mm Draft @Pragostroj 1.6",
"sub_path": "process/0.8mm Draft @Pragostroj 1.6.json"
},
{
"name": "0.25mm quality @Pragostroj 0.5 - 100mms",
"sub_path": "process/0.25mm quality @Pragostroj 0.5 - 100mms.json"
}
],
"filament_list": [
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_hips",
"sub_path": "filament/fdm_filament_hips.json"
},
{
"name": "fdm_filament_petg",
"sub_path": "filament/fdm_filament_petg.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_pp",
"sub_path": "filament/fdm_filament_pp.json"
},
{
"name": "Pragostroj hips @Pragostroj",
"sub_path": "filament/Pragostroj hips @Pragostroj.json"
},
{
"name": "Pragostroj PETG @Pragostroj 0.5 nozzle",
"sub_path": "filament/Pragostroj PETG @Pragostroj 0.5 nozzle.json"
},
{
"name": "Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"sub_path": "filament/Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle.json"
},
{
"name": "Pragostroj PLAP @Pragostroj",
"sub_path": "filament/Pragostroj PLAP @Pragostroj.json"
},
{
"name": "Pragostroj PP @Pragostroj 0.5 nozzle",
"sub_path": "filament/Pragostroj PP @Pragostroj 0.5 nozzle.json"
},
{
"name": "Pragostroj PP @Pragostroj 0.8 nozzle",
"sub_path": "filament/Pragostroj PP @Pragostroj 0.8 nozzle.json"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "WMVkoSEAS0OVhEgL",
"filament_id": "OFyKW1DX",
"instantiation": "true",
"filament_vendor": [
"Fillamentum"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"compatible_printers": [
"KINARB 1HB 0.4 nozzle",
"KINARB 2HB 0.4 nozzle",
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle",
"KINARB 1HB 0.6 nozzle",
"KINARB 2HB 0.6 nozzle",
"KINARB 1HB 0.8 nozzle",
"KINARB 2HB 0.8 nozzle",
"KINARB 1HB 1.0 nozzle",
"KINARB 2HB 1.0 nozzle",
"KINARB 1HB 1.2 nozzle",
"KINARB 2HB 1.2 nozzle",
"KINARB 1HB 1.6 nozzle",
"KINARB 2HB 1.6 nozzle"
]
}
@@ -0,0 +1,37 @@
{
"type": "filament",
"name": "Pragostroj PETG @Pragostroj 0.5 nozzle",
"inherits": "fdm_filament_petg",
"from": "system",
"setting_id": "LXUXFNc2wMJfsv1D",
"filament_id": "OFXNhQHm",
"instantiation": "true",
"filament_vendor": [
"Pragostroj"
],
"filament_settings_id": [
"Pragostroj PETG @Pragostroj 0.5 nozzle"
],
"filament_flow_ratio": [
"0.95"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.12"
],
"nozzle_temperature": [
"240"
],
"nozzle_temperature_initial_layer": [
"240"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"compatible_printers": [
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle"
]
}
@@ -0,0 +1,52 @@
{
"type": "filament",
"name": "Pragostroj PLAP @Pragostroj",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "zN1e8RYMoHXldKsZ",
"filament_id": "OFjKU9JG",
"instantiation": "true",
"filament_vendor": [
"Pragostroj"
],
"filament_settings_id": [
"PLAP"
],
"filament_flow_ratio": [
"0.93"
],
"filament_max_volumetric_speed": [
"14"
],
"nozzle_temperature": [
"215"
],
"nozzle_temperature_initial_layer": [
"215"
],
"pressure_advance": [
"0.17"
],
"slow_down_layer_time": [
"0"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"compatible_printers": [
"KINARB 1HB 0.4 nozzle",
"KINARB 2HB 0.4 nozzle",
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle",
"KINARB 1HB 0.6 nozzle",
"KINARB 2HB 0.6 nozzle",
"KINARB 1HB 0.8 nozzle",
"KINARB 2HB 0.8 nozzle",
"KINARB 1HB 1.0 nozzle",
"KINARB 2HB 1.0 nozzle",
"KINARB 1HB 1.2 nozzle",
"KINARB 2HB 1.2 nozzle",
"KINARB 1HB 1.6 nozzle",
"KINARB 2HB 1.6 nozzle"
]
}
@@ -0,0 +1,46 @@
{
"type": "filament",
"name": "Pragostroj PP @Pragostroj 0.5 nozzle",
"inherits": "fdm_filament_pp",
"from": "system",
"setting_id": "kamBMjjHXAQsYUsQ",
"filament_id": "OFp4bAZ8",
"instantiation": "true",
"filament_vendor": [
"Pragostroj"
],
"filament_settings_id": [
"Pragostroj PP @Pragostroj 0.5 nozzle"
],
"filament_flow_ratio": [
"1.1"
],
"filament_shrink": [
"101%"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.05"
],
"nozzle_temperature": [
"240"
],
"nozzle_temperature_initial_layer": [
"240"
],
"hot_plate_temp": [
"40"
],
"hot_plate_temp_initial_layer": [
"40"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"compatible_printers": [
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle"
]
}
@@ -0,0 +1,46 @@
{
"type": "filament",
"name": "Pragostroj PP @Pragostroj 0.8 nozzle",
"inherits": "fdm_filament_pp",
"from": "system",
"setting_id": "md2tDgtQe6V3fuWU",
"filament_id": "OFp4bAZ8",
"instantiation": "true",
"filament_vendor": [
"Pragostroj"
],
"filament_settings_id": [
"Pragostroj PP @Pragostroj 0.8 nozzle"
],
"filament_flow_ratio": [
"1.1"
],
"filament_shrink": [
"101%"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.05"
],
"nozzle_temperature": [
"240"
],
"nozzle_temperature_initial_layer": [
"240"
],
"hot_plate_temp": [
"40"
],
"hot_plate_temp_initial_layer": [
"40"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"compatible_printers": [
"KINARB 1HB 0.8 nozzle",
"KINARB 2HB 0.8 nozzle"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Pragostroj hips @Pragostroj",
"inherits": "fdm_filament_hips",
"from": "system",
"setting_id": "K2nm1PBtMp2msIN9",
"filament_id": "OF0g2qrF",
"instantiation": "true",
"filament_vendor": [
"Pragostroj"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"compatible_printers": [
"KINARB 1HB 0.4 nozzle",
"KINARB 2HB 0.4 nozzle",
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle",
"KINARB 1HB 0.6 nozzle",
"KINARB 2HB 0.6 nozzle",
"KINARB 1HB 0.8 nozzle",
"KINARB 2HB 0.8 nozzle",
"KINARB 1HB 1.0 nozzle",
"KINARB 2HB 1.0 nozzle",
"KINARB 1HB 1.2 nozzle",
"KINARB 2HB 1.2 nozzle",
"KINARB 1HB 1.6 nozzle",
"KINARB 2HB 1.6 nozzle"
]
}
@@ -0,0 +1,135 @@
{
"type": "filament",
"name": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"60"
],
"eng_plate_temp": [
"60"
],
"hot_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"60"
],
"eng_plate_temp_initial_layer": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"overhang_fan_threshold": [
"50%"
],
"overhang_fan_speed": [
"75"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"1"
],
"filament_end_gcode": [
"; filament end gcode \n"
],
"filament_flow_ratio": [
"0.98"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_cooling_layer_time": [
"100"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_max_volumetric_speed": [
"50"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_settings_id": [
""
],
"filament_soluble": [
"0"
],
"filament_type": [
"PLA"
],
"filament_vendor": [
"Generic"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"bed_type": [
"Cool Plate"
],
"nozzle_temperature_initial_layer": [
"220"
],
"full_fan_speed_layer": [
"0"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"45"
],
"slow_down_min_speed": [
"5"
],
"slow_down_layer_time": [
"5"
],
"filament_start_gcode": [
"; filament start gcode\n"
],
"nozzle_temperature": [
"220"
],
"temperature_vitrification": [
"60"
]
}
@@ -0,0 +1,88 @@
{
"type": "filament",
"name": "fdm_filament_hips",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"filament_type": [
"HIPS"
],
"filament_density": [
"1.27"
],
"filament_flow_ratio": [
"0.92"
],
"filament_max_volumetric_speed": [
"12"
],
"filament_is_support": [
"1"
],
"filament_cost": [
"1000"
],
"nozzle_temperature": [
"245"
],
"nozzle_temperature_initial_layer": [
"245"
],
"nozzle_temperature_range_low": [
"220"
],
"nozzle_temperature_range_high": [
"260"
],
"hot_plate_temp": [
"90"
],
"hot_plate_temp_initial_layer": [
"90"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"chamber_temperature": [
"80"
],
"temperature_vitrification": [
"70"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"20"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"20"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"95%"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"10"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.02"
],
"required_nozzle_HRC": [
"3"
]
}
@@ -0,0 +1,55 @@
{
"type": "filament",
"name": "fdm_filament_petg",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"filament_type": [
"PETG"
],
"filament_density": [
"1.27"
],
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"22"
],
"nozzle_temperature": [
"240"
],
"nozzle_temperature_initial_layer": [
"240"
],
"nozzle_temperature_range_low": [
"220"
],
"nozzle_temperature_range_high": [
"260"
],
"hot_plate_temp": [
"80"
],
"hot_plate_temp_initial_layer": [
"80"
],
"temperature_vitrification": [
"70"
],
"fan_min_speed": [
"30"
],
"overhang_fan_speed": [
"100"
],
"slow_down_layer_time": [
"8"
],
"fan_cooling_layer_time": [
"20"
],
"idle_temperature": [
"0"
]
}
@@ -0,0 +1,25 @@
{
"type": "filament",
"name": "fdm_filament_pla",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"idle_temperature": [
"0"
],
"fan_min_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"nozzle_temperature_range_low": [
"190"
],
"nozzle_temperature_range_high": [
"230"
],
"additional_cooling_fan_speed": [
"70"
]
}
@@ -0,0 +1,61 @@
{
"type": "filament",
"name": "fdm_filament_pp",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"filament_type": [
"PP"
],
"filament_density": [
"0.9"
],
"filament_flow_ratio": [
"1.0"
],
"filament_max_volumetric_speed": [
"8"
],
"filament_shrink": [
"101%"
],
"nozzle_temperature": [
"220"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_low": [
"200"
],
"nozzle_temperature_range_high": [
"240"
],
"hot_plate_temp": [
"40"
],
"hot_plate_temp_initial_layer": [
"40"
],
"temperature_vitrification": [
"100"
],
"fan_min_speed": [
"100"
],
"fan_max_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"slow_down_layer_time": [
"5"
],
"fan_cooling_layer_time": [
"20"
],
"idle_temperature": [
"0"
]
}
@@ -0,0 +1,17 @@
{
"type": "machine",
"name": "KINARB 1HB 0.4 nozzle",
"inherits": "kinarb_machine_common",
"from": "system",
"setting_id": "pm3ddboqV14wpT5B",
"instantiation": "true",
"printer_model": "KINARB 1HB",
"printer_variant": "0.4",
"nozzle_diameter": [
"0.4"
],
"default_print_profile": "0.2mm Draft @Pragostroj 0.4",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle"
]
}
@@ -0,0 +1,17 @@
{
"type": "machine",
"name": "KINARB 1HB 0.5 nozzle",
"inherits": "kinarb_machine_common",
"from": "system",
"setting_id": "GQD5YwY5gOkUByac",
"instantiation": "true",
"printer_model": "KINARB 1HB",
"printer_variant": "0.5",
"nozzle_diameter": [
"0.5"
],
"default_print_profile": "0.25mm Draft @Pragostroj 0.5",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle"
]
}
@@ -0,0 +1,23 @@
{
"type": "machine",
"name": "KINARB 1HB 0.6 nozzle",
"inherits": "kinarb_machine_common",
"from": "system",
"setting_id": "7rc9qsIH4SpBjTfC",
"instantiation": "true",
"printer_model": "KINARB 1HB",
"printer_variant": "0.6",
"nozzle_diameter": [
"0.6"
],
"default_print_profile": "0.3mm Draft @Pragostroj 0.6",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle"
],
"max_layer_height": [
"0.48"
],
"min_layer_height": [
"0.15"
]
}
@@ -0,0 +1,23 @@
{
"type": "machine",
"name": "KINARB 1HB 0.8 nozzle",
"inherits": "kinarb_machine_common",
"from": "system",
"setting_id": "ZQhln1W2k0RcGsAW",
"instantiation": "true",
"printer_model": "KINARB 1HB",
"printer_variant": "0.8",
"nozzle_diameter": [
"0.8"
],
"default_print_profile": "0.4mm Draft @Pragostroj 0.8",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle"
],
"max_layer_height": [
"0.64"
],
"min_layer_height": [
"0.2"
]
}
@@ -0,0 +1,23 @@
{
"type": "machine",
"name": "KINARB 1HB 1.0 nozzle",
"inherits": "kinarb_machine_common",
"from": "system",
"setting_id": "YzDkELvWtxCX8YCV",
"instantiation": "true",
"printer_model": "KINARB 1HB",
"printer_variant": "1.0",
"nozzle_diameter": [
"1.0"
],
"default_print_profile": "0.5mm Draft @Pragostroj 1.0",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle"
],
"max_layer_height": [
"0.8"
],
"min_layer_height": [
"0.25"
]
}
@@ -0,0 +1,23 @@
{
"type": "machine",
"name": "KINARB 1HB 1.2 nozzle",
"inherits": "kinarb_machine_common",
"from": "system",
"setting_id": "FbeIpEH1KB3OxbWZ",
"instantiation": "true",
"printer_model": "KINARB 1HB",
"printer_variant": "1.2",
"nozzle_diameter": [
"1.2"
],
"default_print_profile": "0.6mm Draft @Pragostroj 1.2",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle"
],
"max_layer_height": [
"0.96"
],
"min_layer_height": [
"0.3"
]
}
@@ -0,0 +1,23 @@
{
"type": "machine",
"name": "KINARB 1HB 1.6 nozzle",
"inherits": "kinarb_machine_common",
"from": "system",
"setting_id": "HYs1e2qsnzkPaO9J",
"instantiation": "true",
"printer_model": "KINARB 1HB",
"printer_variant": "1.6",
"nozzle_diameter": [
"1.6"
],
"default_print_profile": "0.8mm Draft @Pragostroj 1.6",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle"
],
"max_layer_height": [
"1.28"
],
"min_layer_height": [
"0.4"
]
}
@@ -0,0 +1,27 @@
{
"type": "machine",
"name": "KINARB 2HB 0.4 nozzle",
"inherits": "kinarb_2hb_machine_common",
"from": "system",
"setting_id": "5OdhMXwsOJy1UqUV",
"instantiation": "true",
"printer_model": "KINARB 2HB",
"extruders_count": "2",
"nozzle_count": "2",
"printer_variant": "0.4",
"nozzle_diameter": [
"0.4",
"0.4"
],
"default_print_profile": "0.2mm Draft @Pragostroj 0.4",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"Pragostroj hips @Pragostroj"
],
"max_layer_height": [
"0.32"
],
"min_layer_height": [
"0.1"
]
}
@@ -0,0 +1,27 @@
{
"type": "machine",
"name": "KINARB 2HB 0.5 nozzle",
"inherits": "kinarb_2hb_machine_common",
"from": "system",
"setting_id": "0MYLkJK6xYBT8Ihi",
"instantiation": "true",
"printer_model": "KINARB 2HB",
"extruders_count": "2",
"nozzle_count": "2",
"printer_variant": "0.5",
"nozzle_diameter": [
"0.5",
"0.5"
],
"default_print_profile": "0.25mm Draft @Pragostroj 0.5",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"Pragostroj hips @Pragostroj"
],
"max_layer_height": [
"0.32"
],
"min_layer_height": [
"0.1"
]
}
@@ -0,0 +1,27 @@
{
"type": "machine",
"name": "KINARB 2HB 0.6 nozzle",
"inherits": "kinarb_2hb_machine_common",
"from": "system",
"setting_id": "9QTAyTkDTKHxENP4",
"instantiation": "true",
"printer_model": "KINARB 2HB",
"extruders_count": "2",
"nozzle_count": "2",
"printer_variant": "0.6",
"nozzle_diameter": [
"0.6",
"0.6"
],
"default_print_profile": "0.3mm Draft @Pragostroj 0.6",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"Pragostroj hips @Pragostroj"
],
"max_layer_height": [
"0.48"
],
"min_layer_height": [
"0.15"
]
}
@@ -0,0 +1,27 @@
{
"type": "machine",
"name": "KINARB 2HB 0.8 nozzle",
"inherits": "kinarb_2hb_machine_common",
"from": "system",
"setting_id": "9GZJdG5Iw1pt59ul",
"instantiation": "true",
"printer_model": "KINARB 2HB",
"extruders_count": "2",
"nozzle_count": "2",
"printer_variant": "0.8",
"nozzle_diameter": [
"0.8",
"0.8"
],
"default_print_profile": "0.4mm Draft @Pragostroj 0.8",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"Pragostroj hips @Pragostroj"
],
"max_layer_height": [
"0.64"
],
"min_layer_height": [
"0.2"
]
}
@@ -0,0 +1,27 @@
{
"type": "machine",
"name": "KINARB 2HB 1.0 nozzle",
"inherits": "kinarb_2hb_machine_common",
"from": "system",
"setting_id": "7KmSDXl3zWWxCJss",
"instantiation": "true",
"printer_model": "KINARB 2HB",
"extruders_count": "2",
"nozzle_count": "2",
"printer_variant": "1.0",
"nozzle_diameter": [
"1.0",
"1.0"
],
"default_print_profile": "0.5mm Draft @Pragostroj 1.0",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"Pragostroj hips @Pragostroj"
],
"max_layer_height": [
"0.8"
],
"min_layer_height": [
"0.25"
]
}
@@ -0,0 +1,27 @@
{
"type": "machine",
"name": "KINARB 2HB 1.2 nozzle",
"inherits": "kinarb_2hb_machine_common",
"from": "system",
"setting_id": "vNQtksa68lUXWwha",
"instantiation": "true",
"printer_model": "KINARB 2HB",
"extruders_count": "2",
"nozzle_count": "2",
"printer_variant": "1.2",
"nozzle_diameter": [
"1.2",
"1.2"
],
"default_print_profile": "0.6mm Draft @Pragostroj 1.2",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"Pragostroj hips @Pragostroj"
],
"max_layer_height": [
"0.96"
],
"min_layer_height": [
"0.3"
]
}
@@ -0,0 +1,27 @@
{
"type": "machine",
"name": "KINARB 2HB 1.6 nozzle",
"inherits": "kinarb_2hb_machine_common",
"from": "system",
"setting_id": "KrwyvkeskgY4yjB5",
"instantiation": "true",
"printer_model": "KINARB 2HB",
"extruders_count": "2",
"nozzle_count": "2",
"printer_variant": "1.6",
"nozzle_diameter": [
"1.6",
"1.6"
],
"default_print_profile": "0.8mm Draft @Pragostroj 1.6",
"default_filament_profile": [
"Fillamentum PLA Concret Grey @Pragostroj 330 AWD 0.4 nozzle",
"Pragostroj hips @Pragostroj"
],
"max_layer_height": [
"1.28"
],
"min_layer_height": [
"0.4"
]
}
@@ -0,0 +1,11 @@
{
"type": "machine_model",
"name": "KINARB 1HB",
"nozzle_diameter": "0.4;0.5;0.6;0.8;1.0;1.2;1.6",
"nozzle_count": "1",
"model_id": "V1",
"family": "Kinarb",
"machine_tech": "FDM",
"default_materials": "Pragostroj PLAP @Pragostroj; Pragostroj hips @Pragostroj; Pragostroj PETG @Pragostroj 0.5 nozzle",
"cover": "KINARB 1HB_cover.png"
}
@@ -0,0 +1,11 @@
{
"type": "machine_model",
"name": "KINARB 2HB",
"nozzle_diameter": "0.4;0.5;0.6;0.8;1.0;1.2;1.6",
"nozzle_count": "2",
"model_id": "V1",
"family": "Kinarb",
"machine_tech": "FDM",
"default_materials": "Pragostroj PLAP @Pragostroj; Pragostroj hips @Pragostroj; Pragostroj PETG @Pragostroj 0.5 nozzle",
"cover": "KINARB 2HB_cover.png"
}
@@ -0,0 +1,139 @@
{
"type": "machine",
"name": "fdm_machine_common",
"from": "system",
"instantiation": "false",
"gcode_flavor": "reprapfirmware",
"machine_start_gcode": "M109 S[nozzle_temperature_initial_layer]\nG1 Z10 F6000 ;Move the platform down 10mm\nG1 X60 Y10 F10000\nG1 Z0.25 F6000 ;Move the platform down 0,25mm\nG92 E0\nG1 X200 E20 F1000\nG1 X450 E40 F1000\nG92 E0",
"machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nG1 X0 Y200 F3600 ; park\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+49, max_print_height)} F720 ; Move print head further up{endif}\nM221 S100 ; reset flow\nM900 K0 ; reset LA\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM84 ; disable motors",
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"500",
"20000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"2500",
"20000"
],
"machine_max_acceleration_x": [
"2000",
"20000"
],
"machine_max_acceleration_y": [
"2000",
"20000"
],
"machine_max_acceleration_z": [
"200",
"200"
],
"machine_max_speed_e": [
"500",
"25"
],
"machine_max_speed_x": [
"200",
"200"
],
"machine_max_speed_y": [
"200",
"200"
],
"machine_max_speed_z": [
"12",
"12"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"5",
"5"
],
"machine_max_jerk_y": [
"5",
"5"
],
"machine_max_jerk_z": [
"0.2",
"0.4"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"max_layer_height": [
"0.32"
],
"min_layer_height": [
"0.1"
],
"printable_height": "500",
"extruder_clearance_radius": "65",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [
"0.4"
],
"printer_settings_id": "",
"printer_technology": "FFF",
"printer_variant": "0.4",
"retraction_minimum_travel": [
"1"
],
"retract_before_wipe": [
"70%"
],
"retract_when_changing_layer": [
"0"
],
"retraction_length": [
"1.6"
],
"retract_length_toolchange": [
"2"
],
"z_hop": [
"0.2"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retraction_speed": [
"45"
],
"deretraction_speed": [
"45"
],
"single_extruder_multi_material": [
"1"
],
"change_filament_gcode": "",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"machine_pause_gcode": "M601",
"wipe": [
"0"
]
}
@@ -0,0 +1,120 @@
{
"type": "machine",
"name": "kinarb_2hb_machine_common",
"inherits": "kinarb_machine_common",
"from": "system",
"instantiation": "false",
"extruder_offset": [
"0x0",
"0x0"
],
"extruder_colour": [
"#FCE94F",
"#3465A4"
],
"retraction_length": [
"1.6",
"1.6"
],
"retract_length_toolchange": [
"2",
"2"
],
"retraction_speed": [
"45",
"45"
],
"deretraction_speed": [
"45",
"45"
],
"retraction_minimum_travel": [
"1",
"1"
],
"retract_before_wipe": [
"70%",
"70%"
],
"retract_when_changing_layer": [
"0",
"0"
],
"retract_restart_extra": [
"0",
"0"
],
"retract_restart_extra_toolchange": [
"0",
"0"
],
"wipe": [
"0",
"0"
],
"wipe_distance": [
"1",
"1"
],
"z_hop": [
"0.2",
"0.2"
],
"z_hop_types": [
"Spiral Lift",
"Spiral Lift"
],
"retract_lift_above": [
"0",
"0"
],
"retract_lift_below": [
"0",
"0"
],
"retract_lift_enforce": [
"All Surfaces",
"All Surfaces"
],
"retraction_distances_when_cut": [
"18",
"18"
],
"long_retractions_when_cut": [
"0",
"0"
],
"travel_slope": [
"3",
"3"
],
"single_extruder_multi_material": [
"0"
],
"printable_area": [
"0x0",
"540x0",
"540x450",
"0x450"
],
"extruder_printable_area": [
"0x0,540x0,540x450,0x450",
"0x0,540x0,540x450,0x450"
],
"extruder_printable_height": [
"500",
"500"
],
"nozzle_count": "2",
"machine_tool_change_time": "5",
"machine_start_gcode": "; --- DUAL-HEAD START G-CODE (placeholder, please verify with your RRF config) ---\nM104 S[nozzle_temperature_initial_layer_0] T0 ; preheat T0 (no tool select)\nM104 S[nozzle_temperature_initial_layer_1] T1 ; preheat T1 (no tool select)\nM116 ; wait for all temps\nG1 Z10 F6000 ;Move the platform down 10mm\nG1 X60 Y10 F10000\nG1 Z0.25 F6000 ;Move the platform down 0,25mm\nG92 E0\nG1 X200 E20 F1000\nG1 X450 E40 F1000\nG92 E0",
"change_filament_gcode": "; --- TOOL CHANGE (placeholder) ---\nT[next_extruder]\nG92 E0",
"extruders_count": "2",
"parking_pos_retraction": "0",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"extra_loading_move": "0",
"enable_filament_ramming": "0",
"high_current_on_filament_swap": "0",
"purge_in_prime_tower": "0"
}
@@ -0,0 +1,108 @@
{
"type": "machine",
"name": "kinarb_machine_common",
"inherits": "fdm_machine_common",
"from": "system",
"instantiation": "false",
"thumbnails": "48x48/PNG, 300x300/PNG",
"thumbnails_format": "PNG",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_mesh_max": "99999,99999",
"bed_mesh_min": "-99999,-99999",
"bed_mesh_probe_distance": "50,50",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"cooling_tube_length": "5",
"cooling_tube_retraction": "91.5",
"default_bed_type": "",
"bed_exclude_area": [],
"disable_m73": "0",
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "1",
"enable_long_retraction_when_cut": "0",
"extra_loading_move": "-2",
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "duet",
"long_retractions_when_cut": [
"0"
],
"machine_load_filament_time": "0",
"machine_max_jerk_x": [
"10",
"9"
],
"machine_max_jerk_y": [
"10",
"9"
],
"machine_max_junction_deviation": [
"0",
"0"
],
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_resonance_avoidance_speed": "120",
"min_resonance_avoidance_speed": "70",
"nozzle_height": "2.5",
"nozzle_hrc": "0",
"nozzle_type": "undefine",
"nozzle_volume": "0",
"parking_pos_retraction": "92",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printable_area": [
"0x0",
"600x0",
"600x460",
"0x460"
],
"printer_notes": "",
"printer_structure": "undefine",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "1",
"resonance_avoidance": "0",
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"0"
],
"retract_lift_enforce": [
"All Surfaces"
],
"retraction_distances_when_cut": [
"18"
],
"scan_first_layer": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "0",
"template_custom_gcode": "",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"wipe_distance": [
"1"
],
"z_hop_types": [
"Spiral Lift"
],
"z_offset": "0"
}
@@ -0,0 +1,73 @@
{
"type": "process",
"name": "0.15mm PETG fine @Pragostroj 0.5",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "ajaxOz8Z7HrO03lA",
"instantiation": "true",
"layer_height": "0.15",
"initial_layer_print_height": "0.15",
"line_width": "0.5",
"outer_wall_line_width": "0.5",
"inner_wall_line_width": "0.5",
"internal_solid_infill_line_width": "0.5",
"top_surface_line_width": "0.5",
"sparse_infill_line_width": "0.55",
"support_line_width": "0.5",
"initial_layer_line_width": "0.9",
"brim_type": "outer_only",
"skirt_loops": "2",
"wall_loops": "4",
"wall_sequence": "outer wall/inner wall",
"sparse_infill_pattern": "cubic",
"gap_fill_target": "everywhere",
"enable_arc_fitting": "1",
"ooze_prevention": "1",
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "5",
"slow_down_layers": "3",
"default_acceleration": "2000",
"outer_wall_acceleration": "1000",
"inner_wall_acceleration": "2000",
"top_surface_acceleration": "1000",
"travel_acceleration": "1000",
"default_jerk": "5",
"initial_layer_jerk": "5",
"infill_jerk": "5",
"inner_wall_jerk": "5",
"outer_wall_jerk": "5",
"top_surface_jerk": "5",
"travel_jerk": "5",
"initial_layer_speed": "30",
"initial_layer_infill_speed": "30",
"outer_wall_speed": "50",
"inner_wall_speed": "150",
"internal_solid_infill_speed": "120",
"sparse_infill_speed": "150",
"top_surface_speed": "80",
"gap_infill_speed": "50",
"travel_speed": "300",
"enable_support": "1",
"support_type": "tree(auto)",
"support_threshold_angle": "45",
"support_speed": "120",
"support_interface_speed": "30",
"support_top_z_distance": "0.25",
"support_bottom_z_distance": "0.25",
"support_object_xy_distance": "0.6",
"support_filament": "1",
"support_interface_filament": "1",
"support_interface_pattern": "concentric",
"support_interface_spacing": "0",
"support_bottom_interface_spacing": "0",
"support_interface_top_layers": "3",
"support_interface_bottom_layers": "3",
"independent_support_layer_height": "0",
"raft_layers": "4",
"raft_contact_distance": "0.15",
"raft_first_layer_density": "100%",
"compatible_printers": [
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle"
]
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.25mm Draft @Pragostroj 0.5",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "rYXaH0o5vjuffPPn",
"instantiation": "true",
"layer_height": "0.25",
"initial_layer_print_height": "0.25",
"line_width": "0.5",
"outer_wall_line_width": "0.5",
"inner_wall_line_width": "0.5",
"internal_solid_infill_line_width": "0.5",
"top_surface_line_width": "0.5",
"sparse_infill_line_width": "0.6",
"support_line_width": "0.5",
"bottom_shell_thickness": "0.5",
"top_shell_thickness": "1.5",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1",
"compatible_printers": [
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle"
]
}
@@ -0,0 +1,70 @@
{
"type": "process",
"name": "0.25mm PP Draft @Pragostroj 0.5",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "uotzhmSKiQosuOpK",
"instantiation": "true",
"layer_height": "0.25",
"initial_layer_print_height": "0.25",
"line_width": "0.5",
"outer_wall_line_width": "0.5",
"inner_wall_line_width": "0.5",
"internal_solid_infill_line_width": "0.5",
"top_surface_line_width": "0.5",
"sparse_infill_line_width": "0.5",
"support_line_width": "0.5",
"initial_layer_line_width": "0.65",
"brim_type": "no_brim",
"skirt_loops": "2",
"wall_sequence": "outer wall/inner wall",
"sparse_infill_density": "5%",
"gap_fill_target": "everywhere",
"enable_arc_fitting": "1",
"ooze_prevention": "1",
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "5",
"slow_down_layers": "3",
"default_acceleration": "3000",
"outer_wall_acceleration": "1000",
"inner_wall_acceleration": "3000",
"top_surface_acceleration": "2000",
"travel_acceleration": "2000",
"default_jerk": "5",
"initial_layer_jerk": "5",
"infill_jerk": "5",
"inner_wall_jerk": "5",
"outer_wall_jerk": "5",
"top_surface_jerk": "5",
"travel_jerk": "5",
"initial_layer_speed": "30",
"initial_layer_infill_speed": "30",
"outer_wall_speed": "50",
"inner_wall_speed": "60",
"internal_solid_infill_speed": "50",
"sparse_infill_speed": "60",
"top_surface_speed": "50",
"gap_infill_speed": "50",
"travel_speed": "300",
"enable_support": "1",
"support_threshold_angle": "45",
"support_speed": "50",
"support_interface_speed": "30",
"support_top_z_distance": "0.25",
"support_bottom_z_distance": "0.25",
"support_object_xy_distance": "0.6",
"support_filament": "1",
"support_interface_filament": "1",
"support_interface_pattern": "concentric",
"support_interface_spacing": "0",
"support_bottom_interface_spacing": "0",
"support_interface_top_layers": "3",
"support_interface_bottom_layers": "3",
"independent_support_layer_height": "0",
"raft_layers": "4",
"raft_contact_distance": "0.25",
"compatible_printers": [
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle"
]
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.25mm quality @Pragostroj 0.5 - 100mms",
"inherits": "0.25mm quality @Pragostroj 0.5",
"from": "system",
"setting_id": "nyKu5sqYzWCtSZhD",
"instantiation": "true",
"brim_type": "outer_only",
"default_acceleration": "2000",
"default_jerk": "5",
"initial_layer_jerk": "5",
"infill_jerk": "5",
"inner_wall_jerk": "5",
"outer_wall_jerk": "5",
"top_surface_jerk": "5",
"travel_jerk": "5",
"gap_infill_speed": "100",
"initial_layer_infill_speed": "30",
"inner_wall_speed": "100",
"outer_wall_speed": "100",
"internal_solid_infill_speed": "100",
"sparse_infill_speed": "100",
"support_speed": "100",
"top_surface_speed": "100",
"independent_support_layer_height": "0",
"support_bottom_z_distance": "0.4",
"support_top_z_distance": "0.6",
"support_on_build_plate_only": "0",
"support_style": "default",
"tree_support_wall_count": "2",
"wall_loops": "3",
"compatible_printers": [
"KINARB 1HB 0.5 nozzle",
"KINARB 2HB 0.5 nozzle"
]
}
@@ -0,0 +1,30 @@
{
"type": "process",
"name": "0.25mm quality @Pragostroj 0.5",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "BHxfmm9Dw2Thb8Tq",
"instantiation": "true",
"bottom_shell_thickness": "0.5",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"internal_solid_infill_line_width": "0.5",
"layer_height": "0.25",
"line_width": "0.5",
"outer_wall_line_width": "0.5",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"sparse_infill_line_width": "0.6",
"support_line_width": "0.5",
"thick_bridges": "1",
"top_shell_thickness": "1.2",
"top_surface_line_width": "0.5",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1"
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.2mm Draft @Pragostroj 0.4",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "DnxEaeXfPHl4FCyQ",
"instantiation": "true",
"layer_height": "0.2",
"initial_layer_print_height": "0.2",
"line_width": "0.4",
"outer_wall_line_width": "0.4",
"inner_wall_line_width": "0.4",
"internal_solid_infill_line_width": "0.4",
"top_surface_line_width": "0.4",
"sparse_infill_line_width": "0.48",
"support_line_width": "0.4",
"bottom_shell_thickness": "0.4",
"top_shell_thickness": "1.2",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1",
"compatible_printers": [
"KINARB 1HB 0.4 nozzle",
"KINARB 2HB 0.4 nozzle"
]
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.3mm Draft @Pragostroj 0.6",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "7McRpzXpjKxZG5Bj",
"instantiation": "true",
"layer_height": "0.3",
"initial_layer_print_height": "0.3",
"line_width": "0.6",
"outer_wall_line_width": "0.6",
"inner_wall_line_width": "0.6",
"internal_solid_infill_line_width": "0.6",
"top_surface_line_width": "0.6",
"sparse_infill_line_width": "0.72",
"support_line_width": "0.6",
"bottom_shell_thickness": "0.6",
"top_shell_thickness": "1.8",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1",
"compatible_printers": [
"KINARB 1HB 0.6 nozzle",
"KINARB 2HB 0.6 nozzle"
]
}
@@ -0,0 +1,24 @@
{
"type": "process",
"name": "0.40mm quality @Pragostroj 0.8",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "XLoULnlavbviCcUZ",
"instantiation": "true",
"bottom_shell_thickness": "0.8",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"layer_height": "0.3",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"top_shell_thickness": "1.2",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1"
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.4mm Draft @Pragostroj 0.8",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "p9fnYWI05pAMip1O",
"instantiation": "true",
"layer_height": "0.4",
"initial_layer_print_height": "0.4",
"line_width": "0.8",
"outer_wall_line_width": "0.8",
"inner_wall_line_width": "0.8",
"internal_solid_infill_line_width": "0.8",
"top_surface_line_width": "0.8",
"sparse_infill_line_width": "0.96",
"support_line_width": "0.8",
"bottom_shell_thickness": "0.8",
"top_shell_thickness": "2.4",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1",
"compatible_printers": [
"KINARB 1HB 0.8 nozzle",
"KINARB 2HB 0.8 nozzle"
]
}
@@ -0,0 +1,68 @@
{
"type": "process",
"name": "0.4mm PP Draft @Pragostroj 0.8",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "ISlA6aEVcmZPI3dG",
"instantiation": "true",
"layer_height": "0.4",
"initial_layer_print_height": "0.4",
"line_width": "0.8",
"outer_wall_line_width": "0.8",
"inner_wall_line_width": "0.8",
"internal_solid_infill_line_width": "0.8",
"top_surface_line_width": "0.8",
"sparse_infill_line_width": "0.85",
"support_line_width": "0.8",
"initial_layer_line_width": "0.9",
"brim_type": "no_brim",
"skirt_distance": "4",
"wall_loops": "2",
"top_shell_layers": "5",
"bottom_shell_layers": "5",
"sparse_infill_pattern": "cubic",
"sparse_infill_density": "10%",
"gap_fill_target": "everywhere",
"bridge_no_support": "1",
"top_solid_infill_flow_ratio": "0.95",
"small_perimeter_speed": "30%",
"small_perimeter_threshold": "10",
"overhang_2_4_speed": "30",
"default_acceleration": "3000",
"outer_wall_acceleration": "1000",
"inner_wall_acceleration": "3000",
"top_surface_acceleration": "2000",
"travel_acceleration": "1000",
"default_jerk": "5",
"initial_layer_jerk": "5",
"infill_jerk": "5",
"inner_wall_jerk": "5",
"outer_wall_jerk": "5",
"top_surface_jerk": "5",
"travel_jerk": "5",
"initial_layer_speed": "30",
"initial_layer_infill_speed": "50",
"outer_wall_speed": "30",
"inner_wall_speed": "30",
"internal_solid_infill_speed": "30",
"sparse_infill_speed": "30",
"top_surface_speed": "30",
"gap_infill_speed": "30",
"enable_support": "1",
"support_threshold_angle": "40",
"support_speed": "80",
"support_interface_speed": "50",
"support_top_z_distance": "0.25",
"support_bottom_z_distance": "0.25",
"support_object_xy_distance": "1",
"support_base_pattern_spacing": "3",
"support_interface_spacing": "0",
"support_bottom_interface_spacing": "1",
"support_interface_top_layers": "3",
"support_interface_bottom_layers": "3",
"raft_layers": "3",
"compatible_printers": [
"KINARB 1HB 0.8 nozzle",
"KINARB 2HB 0.8 nozzle"
]
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.5mm Draft @Pragostroj 1.0",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "V4btYVHhZRsIttOy",
"instantiation": "true",
"layer_height": "0.5",
"initial_layer_print_height": "0.5",
"line_width": "1",
"outer_wall_line_width": "1",
"inner_wall_line_width": "1",
"internal_solid_infill_line_width": "1",
"top_surface_line_width": "1",
"sparse_infill_line_width": "1.2",
"support_line_width": "1",
"bottom_shell_thickness": "1",
"top_shell_thickness": "3",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1",
"compatible_printers": [
"KINARB 1HB 1.0 nozzle",
"KINARB 2HB 1.0 nozzle"
]
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.6mm Draft @Pragostroj 1.2",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "EWeIZrCxkPLs8m79",
"instantiation": "true",
"layer_height": "0.6",
"initial_layer_print_height": "0.6",
"line_width": "1.2",
"outer_wall_line_width": "1.2",
"inner_wall_line_width": "1.2",
"internal_solid_infill_line_width": "1.2",
"top_surface_line_width": "1.2",
"sparse_infill_line_width": "1.44",
"support_line_width": "1.2",
"bottom_shell_thickness": "1.2",
"top_shell_thickness": "3.6",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1",
"compatible_printers": [
"KINARB 1HB 1.2 nozzle",
"KINARB 2HB 1.2 nozzle"
]
}
@@ -0,0 +1,36 @@
{
"type": "process",
"name": "0.8mm Draft @Pragostroj 1.6",
"inherits": "process_common_kinarb",
"from": "system",
"setting_id": "seGh6lE18Y6Sx9mL",
"instantiation": "true",
"layer_height": "0.8",
"initial_layer_print_height": "0.8",
"line_width": "1.6",
"outer_wall_line_width": "1.6",
"inner_wall_line_width": "1.6",
"internal_solid_infill_line_width": "1.6",
"top_surface_line_width": "1.6",
"sparse_infill_line_width": "1.92",
"support_line_width": "1.6",
"bottom_shell_thickness": "1.6",
"top_shell_thickness": "4.8",
"bridge_acceleration": "1000",
"bridge_speed": "22",
"infill_anchor": "2.5",
"infill_anchor_max": "20",
"internal_solid_infill_acceleration": "3000",
"raft_contact_distance": "0.2",
"seam_position": "nearest",
"small_perimeter_speed": "30%",
"thick_bridges": "1",
"support_type": "tree(auto)",
"support_style": "tree_slim",
"support_on_build_plate_only": "1",
"tree_support_wall_count": "1",
"compatible_printers": [
"KINARB 1HB 1.6 nozzle",
"KINARB 2HB 1.6 nozzle"
]
}
@@ -0,0 +1,106 @@
{
"type": "process",
"name": "fdm_process_common",
"from": "system",
"instantiation": "false",
"reduce_crossing_wall": "0",
"max_travel_detour_distance": "0",
"bottom_surface_pattern": "monotonic",
"bottom_shell_thickness": "0",
"bridge_speed": "50",
"brim_width": "5",
"brim_object_gap": "0.1",
"compatible_printers": [],
"compatible_printers_condition": "",
"print_sequence": "by layer",
"default_acceleration": "3000",
"initial_layer_acceleration": "500",
"top_surface_acceleration": "2000",
"travel_acceleration": "1000",
"inner_wall_acceleration": "3000",
"outer_wall_acceleration": "1000",
"bridge_no_support": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "0",
"wall_infill_order": "inner wall/outer wall/infill",
"infill_direction": "45",
"sparse_infill_density": "10%",
"sparse_infill_pattern": "cubic",
"initial_layer_print_height": "0.2",
"infill_combination": "0",
"infill_wall_overlap": "25%",
"interface_shells": "0",
"ironing_flow": "10%",
"ironing_spacing": "0.15",
"ironing_speed": "30",
"ironing_type": "no ironing",
"reduce_infill_retraction": "1",
"filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
"detect_overhang_wall": "1",
"slowdown_for_curled_perimeters": "1",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"line_width": "0.8",
"inner_wall_line_width": "0.8",
"outer_wall_line_width": "0.8",
"top_surface_line_width": "0.8",
"sparse_infill_line_width": "0.85",
"initial_layer_line_width": "0.9",
"internal_solid_infill_line_width": "0.8",
"support_line_width": "0.8",
"wall_loops": "2",
"print_settings_id": "0.4mm Draft @Pragostroj 0.8",
"raft_layers": "0",
"seam_position": "aligned",
"skirt_distance": "4",
"skirt_height": "3",
"min_skirt_length": "4",
"skirt_loops": "0",
"minimum_sparse_infill_area": "15",
"spiral_mode": "0",
"standby_temperature_delta": "-5",
"enable_support": "1",
"resolution": "0.012",
"support_type": "normal(auto)",
"support_on_build_plate_only": "0",
"support_top_z_distance": "0.25",
"support_bottom_z_distance": "0.25",
"support_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_filament": "0",
"support_interface_top_layers": "3",
"support_interface_bottom_layers": "3",
"support_interface_spacing": "0",
"support_interface_speed": "50",
"support_base_pattern": "default",
"support_base_pattern_spacing": "3",
"support_speed": "80",
"support_threshold_angle": "30",
"support_object_xy_distance": "1",
"tree_support_branch_angle": "30",
"tree_support_wall_count": "0",
"detect_thin_wall": "0",
"top_surface_pattern": "monotonicline",
"top_shell_thickness": "0.8",
"enable_prime_tower": "0",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0",
"layer_height": "0.4",
"bottom_shell_layers": "5",
"top_shell_layers": "5",
"bridge_flow": "1",
"initial_layer_speed": "30",
"initial_layer_infill_speed": "45",
"outer_wall_speed": "50",
"inner_wall_speed": "80",
"sparse_infill_speed": "80",
"internal_solid_infill_speed": "80",
"top_surface_speed": "80",
"gap_infill_speed": "80",
"travel_speed": "250"
}
@@ -0,0 +1,16 @@
{
"type": "process",
"name": "process_common_kinarb",
"inherits": "fdm_process_common",
"from": "system",
"instantiation": "false",
"initial_layer_infill_speed": "80",
"bridge_speed": "25",
"travel_jerk": "9",
"outer_wall_jerk": "7",
"inner_wall_jerk": "7",
"default_jerk": "9",
"internal_bridge_speed": "50",
"initial_layer_acceleration": "700",
"exclude_object": "1"
}
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.
+507
View File
@@ -0,0 +1,507 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
id="svg3128"
width="705.80231"
height="582.33624"
viewBox="0 0 705.80233 582.33623"
version="1.1"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs119"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath121"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-422.26871,-18.997898)"
id="path121" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath123"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-415.25041,-14.8056)"
id="path123" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath125"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-262.33801,-23.423903)"
id="path125" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath127"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-276.75361,-23.730301)"
id="path127" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath129"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-303.22041,-20.880601)"
id="path129" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath131"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-308.00361,-20.103398)"
id="path131" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath133"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-324.03941,-21.021803)"
id="path133" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath135"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-350.61111,-25.685003)"
id="path135" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath137"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-358.75971,-22.858898)"
id="path137" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath139"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-376.88051,-23.730301)"
id="path139" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath141"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-389.25391,-31.337401)"
id="path141" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath6"><path
d="M 0,114.52 H 114.52 V 0 H 0 Z"
transform="translate(-35.267201,-32.161503)"
id="path6" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4"><path
d="M 0,114.52 H 114.52 V 0 H 0 Z"
transform="translate(-61.726601,-60.946602)"
id="path4" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath2"><path
d="M 0,114.52 H 114.52 V 0 H 0 Z"
transform="translate(-70.093402,-32.743901)"
id="path2" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath123-3"><path
d="M 0,683.556 H 720.393 V 0 H 0 Z"
transform="translate(-415.25041,-14.8056)"
id="path123-1" /></clipPath></defs><line
id="line2794"
x1="0.69158316"
y1="1.0052254"
x2="0.69158316"
y2="581.51392"
style="fill:none;stroke:#ffffff;stroke-width:1.38249;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none" /><line
id="line2796"
x1="142.39986"
y1="1.040447"
x2="142.39986"
y2="581.33643"
style="fill:none;stroke:#ffffff;stroke-width:1.38272px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2798"
x1="284.1944"
y1="0.97073263"
x2="284.1944"
y2="517.37079"
style="fill:none;stroke:#ffffff;stroke-width:1.30441px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2800"
x1="705.11115"
y1="581.51416"
x2="705.11115"
y2="1.1717546"
style="fill:none;stroke:#ffffff;stroke-width:1.38232px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2802"
x1="0.76483148"
y1="574.50464"
x2="254.98537"
y2="574.50464"
style="fill:none;stroke:#ffffff;stroke-width:1.48106;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /><line
id="line2802-8"
x1="454.69971"
y1="574.67969"
x2="704.44983"
y2="574.67969"
style="fill:none;stroke:#ffffff;stroke-width:1.47086;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /><line
id="line2806"
x1="1.1946371"
y1="432.83392"
x2="704.92871"
y2="432.83392"
style="fill:none;stroke:#ffffff;stroke-width:1.39558px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2808"
x1="1.1946371"
y1="291.13284"
x2="704.92871"
y2="291.13284"
style="fill:none;stroke:#ffffff;stroke-width:1.39558px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2810"
x1="1.1946371"
y1="149.33176"
x2="704.92871"
y2="149.33176"
style="fill:none;stroke:#ffffff;stroke-width:1.39558px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2812"
x1="1.1946371"
y1="7.6306887"
x2="704.92871"
y2="7.6306887"
style="fill:none;stroke:#ffffff;stroke-width:1.39558px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2814"
x1="704.92871"
y1="0.69779003"
x2="0.69779003"
y2="0.69779003"
style="fill:none;stroke:#ffffff;stroke-width:1.39558px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2816"
x1="425.92963"
y1="1.0813043"
x2="425.92963"
y2="517.22998"
style="fill:none;stroke:#ffffff;stroke-width:1.42464px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2820"
x1="567.64203"
y1="1.198333"
x2="567.64203"
y2="580.63434"
style="fill:none;stroke:#ffffff;stroke-width:1.50941px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2826"
x1="85.799797"
y1="1.040447"
x2="85.799797"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2828"
x1="114.09982"
y1="1.040447"
x2="114.09982"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2830"
x1="170.79985"
y1="1.040447"
x2="170.79985"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2832"
x1="199.0999"
y1="1.040447"
x2="199.0999"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2834"
x1="227.49991"
y1="1.040447"
x2="227.49991"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2836"
x1="255.80611"
y1="1.0191121"
x2="255.80611"
y2="581.64233"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2838"
x1="312.47324"
y1="0.98894"
x2="312.47324"
y2="517.65973"
style="fill:none;stroke:#ffffff;stroke-width:0.37277px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2840"
x1="340.88708"
y1="0.98894"
x2="340.88708"
y2="517.65973"
style="fill:none;stroke:#ffffff;stroke-width:0.37277px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2842"
x1="681.00024"
y1="1.040447"
x2="681.00024"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2844"
x1="29.099754"
y1="1.040447"
x2="29.099754"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2846"
x1="57.399776"
y1="1.040447"
x2="57.399776"
y2="581.62915"
style="fill:none;stroke:#ffffff;stroke-width:0.395059px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2848"
x1="1.4993596"
y1="461.13318"
x2="705.31616"
y2="461.13318"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2850"
x1="1.4993596"
y1="489.53323"
x2="705.31616"
y2="489.53323"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2852"
x1="1.4993596"
y1="517.83331"
x2="705.31616"
y2="517.83331"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2854"
x1="1.4994488"
y1="546.26221"
x2="255.71291"
y2="546.26221"
style="fill:none;stroke:#ffffff;stroke-width:0.239459px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2854-9"
x1="454.34674"
y1="546.2608"
x2="704.89508"
y2="546.2608"
style="fill:none;stroke:#ffffff;stroke-width:0.237745px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2854-7"
x1="1.241616"
y1="581.63831"
x2="704.92847"
y2="581.63831"
style="fill:none;stroke:#ffffff;stroke-width:1.39583;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none" /><line
id="line2856"
x1="1.4993596"
y1="404.43311"
x2="705.31616"
y2="404.43311"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2858"
x1="1.4993596"
y1="376.13303"
x2="705.31616"
y2="376.13303"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2860"
x1="1.4993596"
y1="347.73297"
x2="705.31616"
y2="347.73297"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2862"
x1="1.4993596"
y1="319.43292"
x2="705.31616"
y2="319.43292"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2864"
x1="1.4993596"
y1="262.73279"
x2="705.31616"
y2="262.73279"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2866"
x1="1.4993596"
y1="234.33272"
x2="705.31616"
y2="234.33272"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2868"
x1="1.4993596"
y1="206.03267"
x2="705.31616"
y2="206.03267"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2870"
x1="1.4993596"
y1="177.7326"
x2="705.31616"
y2="177.7326"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2872"
x1="1.4993596"
y1="121.03249"
x2="705.31616"
y2="121.03249"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2874"
x1="1.4993596"
y1="92.632431"
x2="705.31616"
y2="92.632431"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2876"
x1="1.4993596"
y1="64.332382"
x2="705.31616"
y2="64.332382"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2878"
x1="1.4993596"
y1="35.932327"
x2="705.31616"
y2="35.932327"
style="fill:none;stroke:#ffffff;stroke-width:0.398845px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2880"
x1="369.20102"
y1="1.0100164"
x2="369.20102"
y2="517.6618"
style="fill:none;stroke:#ffffff;stroke-width:0.398085px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2884"
x1="397.61444"
y1="1.0220113"
x2="397.61444"
y2="517.72723"
style="fill:none;stroke:#ffffff;stroke-width:0.407256px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2888"
x1="454.17535"
y1="1.0131878"
x2="454.17535"
y2="581.49396"
style="fill:none;stroke:#ffffff;stroke-width:0.431975;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none" /><line
id="line2892"
x1="482.61795"
y1="1.0739419"
x2="482.61795"
y2="581.26996"
style="fill:none;stroke:#ffffff;stroke-width:0.431491px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2896"
x1="510.92355"
y1="1.0739419"
x2="510.92355"
y2="581.26996"
style="fill:none;stroke:#ffffff;stroke-width:0.431491px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2900"
x1="539.32935"
y1="1.0739419"
x2="539.32935"
y2="581.26996"
style="fill:none;stroke:#ffffff;stroke-width:0.431491px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2904"
x1="595.96283"
y1="1.1090682"
x2="595.96283"
y2="581.19983"
style="fill:none;stroke:#ffffff;stroke-width:0.43153px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2906"
x1="624.27881"
y1="1.1090682"
x2="624.27881"
y2="581.19983"
style="fill:none;stroke:#ffffff;stroke-width:0.43153px;stroke-linecap:round;stroke-linejoin:round" /><line
id="line2908"
x1="652.7002"
y1="1.0677707"
x2="652.7002"
y2="581.34344"
style="fill:none;stroke:#ffffff;stroke-width:0.421819px;stroke-linecap:round;stroke-linejoin:round" /><path
id="path120"
d="M 0,0 C 0.361,0.533 0.624,1.134 0.789,1.802 0.954,2.469 1.036,3.156 1.036,3.862 1.036,4.6 0.954,5.314 0.789,6.005 0.624,6.696 0.361,7.313 0,7.854 -0.361,8.396 -0.832,8.828 -1.413,9.15 -1.994,9.471 -2.701,9.632 -3.533,9.632 -4.365,9.632 -5.071,9.471 -5.652,9.15 -6.233,8.828 -6.704,8.396 -7.065,7.854 -7.427,7.313 -7.689,6.696 -7.854,6.005 -8.019,5.314 -8.102,4.6 -8.102,3.862 c 0,-0.706 0.083,-1.393 0.248,-2.06 0.165,-0.668 0.427,-1.269 0.789,-1.802 0.361,-0.534 0.832,-0.962 1.413,-1.284 0.581,-0.322 1.287,-0.482 2.119,-0.482 0.832,0 1.539,0.16 2.12,0.482 C -0.832,-0.962 -0.361,-0.534 0,0"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,411.44812,536.34744)"
clip-path="url(#clipPath121)" /><path
id="path122"
d="m 0,0 c -1.021,0.455 -1.884,1.075 -2.591,1.86 -0.706,0.786 -1.248,1.712 -1.625,2.78 -0.377,1.067 -0.565,2.205 -0.565,3.415 0,1.24 0.188,2.402 0.565,3.485 0.377,1.084 0.919,2.026 1.625,2.826 0.707,0.801 1.57,1.429 2.591,1.884 1.021,0.456 2.182,0.683 3.486,0.683 1.303,0 2.465,-0.227 3.485,-0.683 1.021,-0.455 1.884,-1.083 2.591,-1.884 0.707,-0.8 1.248,-1.742 1.625,-2.826 0.377,-1.083 0.565,-2.245 0.565,-3.485 0,-1.21 -0.188,-2.348 -0.565,-3.415 C 10.81,3.572 10.269,2.646 9.562,1.86 8.855,1.075 7.992,0.455 6.971,0 5.951,-0.455 4.789,-0.683 3.486,-0.683 2.182,-0.683 1.021,-0.455 0,0 M 17.014,16.533 24.032,5.252 h 0.047 v 11.281 h 3.462 V -0.283 H 23.844 L 16.849,10.975 H 16.802 V -0.283 H 13.34 v 16.816 z m 25.501,0 V 13.424 H 33.637 V 9.821 h 8.148 V 6.948 H 33.637 V 2.826 h 9.067 V -0.283 H 29.939 V 16.533 Z M 46.901,-0.89 v 18.028 c 0,1.869 -1.515,3.385 -3.385,3.385 H -5.593 c -1.87,0 -3.385,-1.516 -3.385,-3.385 V -0.89 c 0,-1.87 1.515,-3.386 3.385,-3.386 h 49.109 c 1.87,0 3.385,1.516 3.385,3.386"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,405.00359,540.197)"
clip-path="url(#clipPath123)" /><path
id="path124"
d="M 0,0 H 2.873 C 3.297,0 3.705,0.031 4.098,0.094 4.49,0.157 4.836,0.279 5.134,0.459 5.432,0.64 5.672,0.895 5.852,1.225 6.033,1.554 6.123,1.986 6.123,2.52 6.123,3.054 6.033,3.486 5.852,3.815 5.672,4.145 5.432,4.4 5.134,4.581 4.836,4.761 4.49,4.883 4.098,4.946 3.705,5.008 3.297,5.04 2.873,5.04 H 0 Z M -3.698,7.913 H 3.886 C 4.938,7.913 5.833,7.76 6.571,7.454 7.308,7.148 7.909,6.744 8.372,6.241 8.835,5.739 9.173,5.161 9.385,4.51 9.597,3.859 9.703,3.195 9.703,2.52 9.703,1.829 9.597,1.162 9.385,0.518 9.173,-0.126 8.835,-0.699 8.372,-1.201 7.909,-1.704 7.308,-2.108 6.571,-2.414 5.833,-2.72 4.938,-2.873 3.886,-2.873 H 0 v -6.029 h -3.698 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,264.59237,532.28327)"
clip-path="url(#clipPath125)" /><path
id="path126"
d="M 0,0 H 4.051 C 4.883,0 5.514,0.188 5.947,0.565 6.378,0.942 6.594,1.554 6.594,2.402 6.594,3.218 6.378,3.811 5.947,4.18 5.514,4.549 4.883,4.734 4.051,4.734 H 0 Z M -3.698,7.607 H 5.37 C 6.123,7.607 6.802,7.485 7.407,7.242 8.011,6.999 8.529,6.665 8.961,6.241 9.393,5.817 9.723,5.322 9.951,4.757 10.178,4.192 10.292,3.595 10.292,2.968 10.292,1.978 10.084,1.122 9.668,0.4 9.252,-0.322 8.573,-0.871 7.63,-1.248 v -0.047 c 0.456,-0.126 0.833,-0.318 1.131,-0.577 0.298,-0.259 0.542,-0.57 0.73,-0.931 0.189,-0.361 0.326,-0.75 0.412,-1.165 0.086,-0.417 0.145,-0.837 0.177,-1.261 0.015,-0.267 0.031,-0.581 0.047,-0.942 0.015,-0.361 0.043,-0.726 0.083,-1.095 0.039,-0.369 0.101,-0.726 0.188,-1.071 0.086,-0.346 0.216,-0.636 0.388,-0.872 H 7.089 C 6.979,-8.942 6.896,-8.648 6.842,-8.326 6.786,-8.004 6.739,-7.666 6.7,-7.313 6.661,-6.96 6.63,-6.599 6.606,-6.229 6.583,-5.861 6.547,-5.511 6.5,-5.181 6.374,-4.302 6.107,-3.659 5.699,-3.25 5.291,-2.842 4.624,-2.638 3.698,-2.638 H 0 v -6.571 h -3.698 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,277.82944,532.00192)"
clip-path="url(#clipPath127)" /><path
id="path128"
d="m 0,0 c 0,-2.277 -0.636,-3.973 -1.908,-5.087 -1.271,-1.115 -3.03,-1.672 -5.275,-1.672 -2.277,0 -4.039,0.553 -5.288,1.66 -1.248,1.107 -1.872,2.806 -1.872,5.099 v 10.457 h 3.698 V 0 c 0,-0.456 0.039,-0.903 0.118,-1.343 0.078,-0.439 0.243,-0.832 0.494,-1.177 0.251,-0.346 0.601,-0.62 1.048,-0.825 0.448,-0.204 1.048,-0.306 1.802,-0.306 1.319,0 2.229,0.295 2.732,0.884 0.502,0.588 0.753,1.511 0.753,2.767 V 10.457 H 0 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,302.13247,534.61865)"
clip-path="url(#clipPath129)" /><path
id="path130"
d="m 0,0 c 0,-0.565 0.102,-1.045 0.306,-1.437 0.204,-0.392 0.475,-0.71 0.813,-0.954 0.337,-0.243 0.73,-0.424 1.177,-0.541 0.448,-0.118 0.923,-0.177 1.425,-0.177 0.33,0 0.683,0.027 1.06,0.083 0.377,0.054 0.73,0.16 1.06,0.317 0.33,0.157 0.604,0.373 0.824,0.648 0.22,0.275 0.33,0.624 0.33,1.048 0,0.456 -0.146,0.825 -0.436,1.107 C 6.268,0.377 5.888,0.616 5.417,0.812 4.946,1.008 4.412,1.174 3.815,1.307 3.219,1.44 2.614,1.593 2.002,1.766 1.374,1.923 0.762,2.116 0.165,2.343 -0.432,2.571 -0.966,2.865 -1.437,3.227 -1.908,3.588 -2.288,4.035 -2.579,4.569 -2.87,5.102 -3.015,5.762 -3.015,6.547 c 0,0.864 0.185,1.614 0.554,2.249 0.369,0.636 0.851,1.166 1.448,1.59 0.597,0.424 1.272,0.738 2.026,0.942 0.753,0.204 1.507,0.306 2.261,0.306 0.879,0 1.723,-0.098 2.531,-0.294 C 6.614,11.144 7.332,10.825 7.96,10.386 8.588,9.946 9.087,9.385 9.456,8.702 9.825,8.019 10.01,7.191 10.01,6.218 H 6.43 C 6.398,6.72 6.292,7.136 6.112,7.466 5.931,7.796 5.691,8.055 5.393,8.243 5.095,8.431 4.749,8.564 4.357,8.643 3.965,8.722 3.548,8.761 3.109,8.761 2.81,8.761 2.512,8.73 2.214,8.667 1.915,8.604 1.644,8.494 1.401,8.337 1.158,8.18 0.958,7.98 0.801,7.736 0.644,7.493 0.565,7.199 0.565,6.854 0.565,6.524 0.628,6.257 0.754,6.053 0.879,5.849 1.126,5.664 1.496,5.499 1.864,5.334 2.375,5.161 3.026,4.981 3.678,4.801 4.53,4.577 5.582,4.31 5.786,4.263 6.053,4.196 6.382,4.11 6.712,4.023 7.061,3.905 7.43,3.756 7.799,3.607 8.168,3.415 8.538,3.179 8.906,2.944 9.244,2.653 9.55,2.308 9.856,1.962 10.103,1.55 10.292,1.071 c 0.188,-0.478 0.283,-1.032 0.283,-1.66 0,-0.769 -0.15,-1.484 -0.448,-2.143 C 9.829,-3.391 9.385,-3.961 8.797,-4.44 8.208,-4.919 7.478,-5.295 6.606,-5.57 5.735,-5.844 4.726,-5.982 3.58,-5.982 c -0.927,0 -1.825,0.118 -2.697,0.353 -0.871,0.236 -1.637,0.597 -2.296,1.083 -0.66,0.487 -1.189,1.107 -1.59,1.861 -0.4,0.754 -0.593,1.649 -0.577,2.685 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,306.52462,535.33231)"
clip-path="url(#clipPath131)" /><path
id="path132"
d="M 0,0 H 4.357 L 2.237,6.171 H 2.19 Z M 0.353,10.316 H 4.145 L 10.434,-6.5 H 6.594 L 5.323,-2.755 H -0.966 L -2.284,-6.5 h -3.745 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,321.24944,534.489)"
clip-path="url(#clipPath133)" /><path
id="path134"
d="m 0,0 c -0.063,0.424 -0.204,0.813 -0.424,1.166 -0.22,0.353 -0.495,0.663 -0.824,0.93 -0.33,0.267 -0.703,0.475 -1.119,0.624 -0.416,0.149 -0.852,0.224 -1.307,0.224 -0.833,0 -1.539,-0.161 -2.12,-0.483 C -6.375,2.139 -6.846,1.708 -7.207,1.166 -7.568,0.624 -7.831,0.008 -7.996,-0.683 c -0.165,-0.691 -0.247,-1.405 -0.247,-2.143 0,-0.707 0.082,-1.394 0.247,-2.061 0.165,-0.667 0.428,-1.268 0.789,-1.801 0.361,-0.535 0.832,-0.963 1.413,-1.284 0.581,-0.322 1.287,-0.483 2.12,-0.483 1.13,0 2.014,0.349 2.65,1.048 0.635,0.698 1.024,1.605 1.165,2.72 h 3.58 C 3.627,-5.739 3.383,-6.688 2.991,-7.537 2.598,-8.384 2.08,-9.107 1.437,-9.703 0.793,-10.3 0.039,-10.759 -0.824,-11.081 c -0.864,-0.322 -1.814,-0.483 -2.85,-0.483 -1.303,0 -2.465,0.228 -3.486,0.683 -1.02,0.455 -1.884,1.076 -2.591,1.861 -0.706,0.785 -1.248,1.711 -1.624,2.779 -0.377,1.067 -0.566,2.206 -0.566,3.415 0,1.24 0.189,2.402 0.566,3.486 0.376,1.083 0.918,2.025 1.624,2.826 0.707,0.801 1.571,1.428 2.591,1.884 1.021,0.455 2.183,0.683 3.486,0.683 0.926,0 1.801,-0.134 2.626,-0.401 C -0.224,5.385 0.514,4.997 1.166,4.487 1.817,3.976 2.355,3.345 2.779,2.591 3.203,1.837 3.47,0.973 3.58,0 Z"
style="fill:#ed6c21;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,345.6488,530.20702)"
clip-path="url(#clipPath135)" /><path
id="path136"
d="m 0,0 c 0,-0.707 0.082,-1.394 0.247,-2.061 0.165,-0.667 0.428,-1.268 0.789,-1.801 0.361,-0.534 0.832,-0.962 1.413,-1.284 0.581,-0.322 1.287,-0.483 2.12,-0.483 0.832,0 1.539,0.161 2.12,0.483 0.58,0.322 1.051,0.75 1.413,1.284 0.361,0.533 0.624,1.134 0.789,1.801 C 9.055,-1.394 9.138,-0.707 9.138,0 9.138,0.738 9.055,1.452 8.891,2.143 8.726,2.834 8.463,3.45 8.102,3.992 7.74,4.534 7.269,4.965 6.689,5.287 6.108,5.609 5.401,5.77 4.569,5.77 3.736,5.77 3.03,5.609 2.449,5.287 1.868,4.965 1.397,4.534 1.036,3.992 0.675,3.45 0.412,2.834 0.247,2.143 0.082,1.452 0,0.738 0,0 m -3.697,0 c 0,1.24 0.188,2.402 0.565,3.486 0.377,1.083 0.918,2.025 1.625,2.826 0.706,0.801 1.57,1.428 2.59,1.884 1.021,0.455 2.183,0.683 3.486,0.683 1.303,0 2.465,-0.228 3.486,-0.683 C 9.075,7.74 9.939,7.113 10.645,6.312 11.352,5.511 11.894,4.569 12.27,3.486 12.647,2.402 12.836,1.24 12.836,0 12.836,-1.209 12.647,-2.348 12.27,-3.415 11.894,-4.483 11.352,-5.409 10.645,-6.194 9.939,-6.979 9.075,-7.599 8.055,-8.055 7.034,-8.51 5.872,-8.738 4.569,-8.738 c -1.303,0 -2.465,0.228 -3.486,0.683 -1.02,0.456 -1.884,1.076 -2.59,1.861 -0.707,0.785 -1.248,1.711 -1.625,2.779 -0.377,1.067 -0.565,2.206 -0.565,3.415"
style="fill:#ed6c21;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,353.13122,532.80209)"
clip-path="url(#clipPath137)" /><path
id="path138"
d="M 0,0 H 4.051 C 4.883,0 5.514,0.188 5.947,0.565 6.378,0.942 6.594,1.554 6.594,2.402 6.594,3.218 6.378,3.811 5.947,4.18 5.514,4.549 4.883,4.734 4.051,4.734 H 0 Z M -3.698,7.607 H 5.37 C 6.123,7.607 6.802,7.485 7.407,7.242 8.011,6.999 8.529,6.665 8.961,6.241 9.393,5.817 9.723,5.322 9.951,4.757 10.178,4.192 10.292,3.595 10.292,2.968 10.292,1.978 10.084,1.122 9.668,0.4 9.252,-0.322 8.573,-0.871 7.63,-1.248 v -0.047 c 0.456,-0.126 0.833,-0.318 1.131,-0.577 0.298,-0.259 0.542,-0.57 0.73,-0.931 0.189,-0.361 0.326,-0.75 0.412,-1.165 0.086,-0.417 0.145,-0.837 0.177,-1.261 0.015,-0.267 0.031,-0.581 0.047,-0.942 0.015,-0.361 0.043,-0.726 0.083,-1.095 0.039,-0.369 0.101,-0.726 0.188,-1.071 0.086,-0.346 0.216,-0.636 0.388,-0.872 H 7.089 C 6.979,-8.942 6.896,-8.648 6.842,-8.326 6.786,-8.004 6.739,-7.666 6.7,-7.313 6.661,-6.96 6.63,-6.599 6.606,-6.229 6.583,-5.861 6.547,-5.511 6.5,-5.181 6.374,-4.302 6.107,-3.659 5.699,-3.25 5.291,-2.842 4.624,-2.638 3.698,-2.638 H 0 v -6.571 h -3.698 z"
style="fill:#ed6c21;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,369.77058,532.00192)"
clip-path="url(#clipPath139)" /><path
id="path140"
d="M 0,0 H 12.577 V -3.109 H 3.698 v -3.603 h 8.148 V -9.585 H 3.698 v -4.122 h 9.067 v -3.109 H 0 Z"
style="fill:#ed6c21;fill-opacity:1;fill-rule:nonzero;stroke:none"
transform="matrix(0.91824614,0,0,-0.91824614,381.13241,525.01674)"
clip-path="url(#clipPath141)" /><g
transform="matrix(1.9175717,0,0,1.9175717,389.21896,579.63082)"
id="g2"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,-16.736 -16.012,16.012 c -0.322,0.322 -0.094,0.874 0.362,0.874 h 2.927 c 0.281,0 0.521,-0.139 0.617,-0.235 L 4.719,-16.012 c 0.323,-0.322 0.094,-0.874 -0.362,-0.874 H 0.362 c -0.136,0 -0.266,0.054 -0.362,0.15"
style="fill:#cb1a23;fill-opacity:1;fill-rule:nonzero"
id="path1" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,385.91882,573.08615)"
id="g3"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="M 0,-2.597 -2.743,0 h 1.245 c 0.236,0 0.464,-0.091 0.636,-0.254 l 1.675,-1.585 z"
style="fill:#3d7a3d;fill-opacity:1;fill-rule:nonzero"
id="path2-4" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,408.63207,565.2126)"
id="g4"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,-9.367 h -1.648 c 0.258,0.539 0.097,1.11 -0.309,1.517 L -9.421,-0.785 -8.636,0 0.362,-8.518 C 0.685,-8.841 0.456,-9.367 0,-9.367"
style="fill:#3d7a3d;fill-opacity:1;fill-rule:nonzero"
id="path3" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,403.11157,576.486)"
id="g5"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,-15.246 h -1.572 c 0.227,0.525 0.092,1.112 -0.312,1.517 L -16.388,0 h 1.181 c 0.236,0 0.464,-0.091 0.636,-0.254 l 4.972,-4.706 -0.78,-0.728 2.473,-2.34 0.753,0.753 7.515,-7.114 C 0.685,-14.712 0.456,-15.246 0,-15.246"
style="fill:#f19e0e;fill-opacity:1;fill-rule:nonzero"
id="path4-4" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,308.28477,572.42881)"
id="g6"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,-10.766 v 10.597 c 0,0.282 -0.229,0.512 -0.512,0.512 h -2.825 c -0.283,0 -0.512,-0.23 -0.512,-0.512 v -7.159 c 0,-0.136 0.054,-0.267 0.15,-0.363 l 3.261,-3.257 C -0.276,-11.109 0,-10.995 0,-10.766"
style="fill:#fffffc;fill-rule:nonzero"
id="path5" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,308.09302,553.90219)"
id="g7"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="M 0,-2.898 -3.312,0.41 C -3.474,0.571 -3.749,0.457 -3.749,0.229 v -3.438 c 0,-0.143 0.116,-0.26 0.26,-0.26 h 3.253 c 0.298,0 0.447,0.361 0.236,0.571"
style="fill:#fffffc;fill-rule:nonzero"
id="path6-9" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,337.81039,560.16843)"
id="g8"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,0 v 6.224 c 0,0.283 -0.229,0.513 -0.512,0.513 h -2.825 c -0.283,0 -0.512,-0.23 -0.512,-0.513 V 0 c 0,-0.337 -0.058,-0.661 -0.165,-0.962 -0.29,-0.821 -0.94,-1.471 -1.76,-1.76 -0.301,-0.107 -0.625,-0.165 -0.962,-0.165 -0.337,0 -0.661,0.058 -0.962,0.165 -0.821,0.289 -1.471,0.939 -1.761,1.76 -0.106,0.301 -0.164,0.625 -0.164,0.962 v 6.224 c 0,0.283 -0.23,0.513 -0.512,0.513 h -2.825 c -0.283,0 -0.513,-0.23 -0.513,-0.513 V 0 c 0,-0.327 0.024,-0.648 0.069,-0.962 0.097,-0.68 0.296,-1.327 0.58,-1.925 0.322,-0.679 0.756,-1.296 1.276,-1.827 0.032,-0.033 0.065,-0.066 0.097,-0.098 0.531,-0.52 1.148,-0.953 1.828,-1.276 0.598,-0.284 1.245,-0.483 1.925,-0.58 0.314,-0.045 0.635,-0.069 0.962,-0.069 0.326,0 0.648,0.024 0.962,0.069 0.68,0.097 1.327,0.296 1.925,0.58 0.679,0.323 1.296,0.756 1.827,1.276 0.033,0.032 0.066,0.065 0.098,0.098 0.52,0.531 0.953,1.148 1.276,1.827 0.284,0.598 0.483,1.245 0.58,1.925 C -0.023,-0.648 0,-0.327 0,0"
style="fill:#fffffc;fill-rule:nonzero"
id="path7" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,353.8459,547.25032)"
id="g9"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,13.473 h -6.224 c -0.283,0 -0.513,-0.229 -0.513,-0.512 v -2.825 c 0,-0.283 0.23,-0.512 0.513,-0.512 H 0 c 0.337,0 0.661,-0.058 0.962,-0.165 0.821,-0.29 1.471,-0.94 1.76,-1.76 C 2.829,7.398 2.887,7.074 2.887,6.737 2.887,6.4 2.829,6.076 2.722,5.775 2.433,4.954 1.783,4.304 0.962,4.014 0.661,3.908 0.337,3.85 0,3.85 h -6.224 c -0.283,0 -0.513,-0.23 -0.513,-0.513 V 0.513 C -6.737,0.23 -6.507,0 -6.224,0 H 0 C 0.327,0 0.648,0.024 0.962,0.069 1.642,0.166 2.289,0.365 2.887,0.649 3.566,0.971 4.183,1.405 4.714,1.925 4.747,1.957 4.78,1.99 4.812,2.022 5.332,2.553 5.765,3.17 6.088,3.85 6.372,4.448 6.571,5.095 6.668,5.775 6.713,6.089 6.737,6.41 6.737,6.737 6.737,7.063 6.713,7.385 6.668,7.699 6.571,8.379 6.372,9.026 6.088,9.624 5.765,10.303 5.332,10.92 4.812,11.451 4.78,11.484 4.747,11.517 4.714,11.549 4.183,12.069 3.566,12.502 2.887,12.825 2.289,13.109 1.642,13.308 0.962,13.405 0.648,13.45 0.327,13.473 0,13.473"
style="fill:#fffffc;fill-rule:nonzero"
id="path8" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,387.95048,573.08577)"
id="g10"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,-6.255 -2.473,2.341 4.038,3.764 C 1.661,-0.054 1.791,0 1.927,0 h 3.092 c 0.456,0 0.684,-0.552 0.362,-0.874 z"
style="fill:#fffffc;fill-rule:nonzero"
id="path9" />&#10; </g><g
transform="matrix(1.9175717,0,0,1.9175717,380.58221,552.11616)"
id="g11"
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">&#10; <path
d="m 0,0.838 -3.225,-3.225 c -0.096,-0.096 -0.227,-0.15 -0.362,-0.15 h -3.995 c -0.457,0 -0.685,0.551 -0.362,0.874 l 5.404,5.038 z"
style="fill:#fffffc;fill-rule:nonzero"
id="path10" />&#10; </g></svg>

After

Width:  |  Height:  |  Size: 31 KiB

@@ -1,13 +0,0 @@
{
"type": "filament",
"name": "Generic ABS @Prusa CORE One 0.6",
"renamed_from": "Prusa Generic ABS @CORE One 0.6;Prusa Generic ABS CORE One 0.6",
"inherits": "Generic ABS @Prusa CORE One",
"from": "system",
"setting_id": "PYQhstNvKFJ7qsxe",
"filament_id": "OFY9muEs",
"instantiation": "true",
"compatible_printers": [
"Prusa CORE One 0.6 nozzle"
]
}
@@ -0,0 +1,73 @@
{
"type": "filament",
"name": "Generic ABS @Prusa CORE One INDX",
"inherits": "Generic ABS @Prusa base",
"from": "system",
"setting_id": "JEatvybG9xIkrPk3",
"instantiation": "true",
"filament_cost": [
"34.65"
],
"filament_notes": [
"\nPrusa INDX 2.5.10 tuning."
],
"slow_down_min_speed": [
"15"
],
"slow_down_layer_time": [
"20"
],
"hot_plate_temp": [
"110"
],
"overhang_fan_speed": [
"25"
],
"close_fan_the_first_x_layers": [
"4"
],
"default_filament_colour": [
"#FFF2EC"
],
"filament_max_volumetric_speed": [
"25"
],
"hot_plate_temp_initial_layer": [
"110"
],
"fan_max_speed": [
"20"
],
"fan_min_speed": [
"15"
],
"chamber_temperature": [
"55"
],
"chamber_minimal_temperature": [
"40"
],
"filament_shrinkage_compensation_z": [
"0.22%"
],
"compatible_printers": [
"Prusa CORE One INDX 4T HF 0.4 nozzle",
"Prusa CORE One INDX 8T HF 0.4 nozzle"
],
"compatible_printers_condition": "",
"textured_plate_temp": [
"110"
],
"textured_plate_temp_initial_layer": [
"110"
],
"activate_chamber_temp_control": [
"1"
],
"filament_shrink": [
"99.78%"
],
"filament_extruder_variant": [
"Direct Drive High Flow"
]
}
@@ -1,53 +0,0 @@
{
"type": "filament",
"name": "Generic ABS @Prusa CORE One MMU3",
"inherits": "Generic ABS @Prusa CORE One",
"from": "system",
"setting_id": "TM5fcvhbo1lgzsU6",
"instantiation": "true",
"compatible_printers": [
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle"
],
"filament_cooling_final_speed": [
"2.5"
],
"filament_cooling_initial_speed": [
"5"
],
"filament_cooling_moves": [
"3"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_loading_speed": [
"10"
],
"filament_loading_speed_start": [
"50"
],
"filament_ramming_parameters": [
"250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387"
],
"filament_stamping_distance": [
"45"
],
"filament_stamping_loading_speed": [
"26.5"
],
"filament_start_gcode": [
"M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n\nM142 S40 ; set heatbreak target temp"
],
"filament_unloading_speed": [
"60"
],
"filament_unloading_speed_start": [
"60"
],
"idle_temperature": [
"130"
]
}
@@ -1,11 +1,10 @@
{
"type": "filament",
"name": "Generic ABS @Prusa CORE One",
"renamed_from": "Prusa Generic ABS @CORE One;Prusa Generic ABS CORE One",
"inherits": "fdm_filament_abs",
"renamed_from": "Prusa Generic ABS @CORE One;Prusa Generic ABS CORE One;Generic ABS @Prusa CORE One MMU3;Generic ABS @MMU3;Generic ABS @Prusa CORE One 0.6;Prusa Generic ABS @CORE One 0.6;Prusa Generic ABS CORE One 0.6",
"inherits": "Generic ABS @Prusa base",
"from": "system",
"setting_id": "0k31oXq1pLQsHvrj",
"filament_id": "OFY9muEs",
"instantiation": "true",
"chamber_temperature": [
"40"
@@ -17,10 +16,12 @@
"Prusa CORE One 0.25 nozzle",
"Prusa CORE One 0.3 nozzle",
"Prusa CORE One 0.4 nozzle",
"Prusa CORE One 0.5 nozzle"
],
"fan_cooling_layer_time": [
"30"
"Prusa CORE One 0.5 nozzle",
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle",
"Prusa CORE One 0.6 nozzle"
],
"fan_max_speed": [
"20"
@@ -31,39 +32,18 @@
"filament_cost": [
"27.82"
],
"filament_density": [
"1.04"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; Filament-specific end gcode"
],
"filament_flow_ratio": [
"1"
],
"filament_max_volumetric_speed": [
"15"
],
"filament_minimal_purge_on_wipe_tower": [
"35"
],
"filament_notes": [
""
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
],
"filament_type": [
"ABS"
],
"filament_vendor": [
"Generic"
],
"hot_plate_temp": [
"110"
],
@@ -73,12 +53,6 @@
"idle_temperature": [
"130"
],
"nozzle_temperature": [
"260"
],
"nozzle_temperature_initial_layer": [
"260"
],
"overhang_fan_speed": [
"25"
],
@@ -1,13 +0,0 @@
{
"type": "filament",
"name": "Generic ABS @Prusa MK4S 0.6",
"renamed_from": "Prusa Generic ABS @MK4S 0.6;Prusa Generic ABS MK4S 0.6",
"inherits": "Generic ABS @Prusa MK4S",
"from": "system",
"setting_id": "aNRfxkoYTEG3NPV1",
"filament_id": "OFY9muEs",
"instantiation": "true",
"compatible_printers": [
"Prusa MK4S 0.6 nozzle"
]
}
@@ -1,13 +0,0 @@
{
"type": "filament",
"name": "Generic ABS @Prusa MK4S 0.8",
"renamed_from": "Prusa Generic ABS @MK4S 0.8;Prusa Generic ABS MK4S 0.8",
"inherits": "Generic ABS @Prusa MK4S",
"from": "system",
"setting_id": "sL7NL7GOf52fzxnj",
"filament_id": "OFY9muEs",
"instantiation": "true",
"compatible_printers": [
"Prusa MK4S 0.8 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"name": "Generic ABS @Prusa MK4S",
"renamed_from": "Prusa Generic ABS @MK4S;Prusa Generic ABS MK4S",
"renamed_from": "Prusa Generic ABS @MK4S;Prusa Generic ABS MK4S;Generic ABS @Prusa MK4S 0.6;Prusa Generic ABS @MK4S 0.6;Prusa Generic ABS MK4S 0.6;Generic ABS @Prusa MK4S 0.8;Prusa Generic ABS @MK4S 0.8;Prusa Generic ABS MK4S 0.8",
"inherits": "fdm_filament_abs",
"from": "system",
"setting_id": "6xkFvOyWtTQNXYAm",
@@ -12,7 +12,9 @@
"Prusa MK4S 0.25 nozzle",
"Prusa MK4S 0.3 nozzle",
"Prusa MK4S 0.4 nozzle",
"Prusa MK4S 0.5 nozzle"
"Prusa MK4S 0.5 nozzle",
"Prusa MK4S 0.6 nozzle",
"Prusa MK4S 0.8 nozzle"
],
"default_filament_colour": "#FFF2EC",
"fan_max_speed": "10",
@@ -1,69 +0,0 @@
{
"type": "filament",
"name": "Generic ABS @Prusa XL 5T",
"renamed_from": "Prusa Generic ABS @XL 5T;Prusa Generic ABS XL 5T",
"inherits": "Generic ABS @Prusa base",
"from": "system",
"setting_id": "XfavDzEzzrXDQVUC",
"instantiation": "true",
"nozzle_temperature_intial_layer": "255",
"nozzle_temperature": "255",
"hot_plate_temp_initial_layer": "100",
"hot_plate_temp": "105",
"slow_down_min_speed": "15",
"filament_flow_ratio": [
"1"
],
"filament_max_volumetric_speed": [
"12"
],
"slow_down_layer_time": [
"20"
],
"fan_max_speed": [
"15"
],
"fan_min_speed": [
"15"
],
"overhang_fan_speed": [
"25"
],
"close_fan_the_first_x_layers": [
"4"
],
"filament_loading_speed_start": "19",
"filament_loading_speed": "14",
"filament_unloading_speed_start": "100",
"filament_unloading_speed": "20",
"filament_cooling_moves": "5",
"filament_cooling_initial_speed": "10",
"filament_cooling_final_speed": "50",
"filament_retract_lift_below": "1.5",
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_volume": [
"5"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [
"45"
],
"filament_stamping_loading_speed": [
"29"
],
"filament_start_gcode": [
"; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.04{elsif nozzle_diameter[0]==0.25}0.1{elsif nozzle_diameter[0]==0.3}0.06{elsif nozzle_diameter[0]==0.35}0.05{elsif nozzle_diameter[0]==0.5}0.03{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.02{elsif nozzle_diameter[0]==0.5}0.018{elsif nozzle_diameter[0]==0.6}0.012{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.25}0.09{elsif nozzle_diameter[0]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
],
"compatible_printers": [
"Prusa XL 5T 0.25 nozzle",
"Prusa XL 5T 0.3 nozzle",
"Prusa XL 5T 0.4 nozzle",
"Prusa XL 5T 0.5 nozzle",
"Prusa XL 5T 0.6 nozzle",
"Prusa XL 5T 0.8 nozzle"
]
}
@@ -1,12 +1,11 @@
{
"type": "filament",
"name": "Generic ABS @Prusa XL",
"renamed_from": "Prusa Generic ABS @XL;Prusa Generic ABS XL",
"renamed_from": "Prusa Generic ABS @XL;Prusa Generic ABS XL;Generic ABS @Prusa XL 5T;Prusa Generic ABS @XL 5T;Prusa Generic ABS XL 5T",
"inherits": "Generic ABS @Prusa base",
"from": "system",
"setting_id": "HYHkGEjr6Kid2Xg2",
"instantiation": "true",
"nozzle_temperature_intial_layer": "255",
"nozzle_temperature": "255",
"hot_plate_temp_initial_layer": "100",
"hot_plate_temp": "105",
@@ -49,6 +48,30 @@
"Prusa XL 0.4 nozzle",
"Prusa XL 0.5 nozzle",
"Prusa XL 0.6 nozzle",
"Prusa XL 0.8 nozzle"
"Prusa XL 0.8 nozzle",
"Prusa XL 5T 0.25 nozzle",
"Prusa XL 5T 0.3 nozzle",
"Prusa XL 5T 0.4 nozzle",
"Prusa XL 5T 0.5 nozzle",
"Prusa XL 5T 0.6 nozzle",
"Prusa XL 5T 0.8 nozzle"
],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_multitool_ramming_volume": [
"5"
],
"filament_stamping_distance": [
"45"
],
"filament_stamping_loading_speed": [
"29"
],
"nozzle_temperature_initial_layer": [
"255"
]
}
@@ -2,9 +2,10 @@
"type": "filament",
"name": "Generic ABS HF @Prusa MINIIS 0.6",
"renamed_from": "Prusa Generic ABS HF @MINIIS 0.6;Prusa Generic ABS HF MINIIS 0.6",
"inherits": "Generic ABS HF @Prusa base",
"inherits": "Generic ABS @Prusa base",
"from": "system",
"setting_id": "L6copDR26trR0D8B",
"filament_id": "OF55jHAJ",
"instantiation": "true",
"filament_flow_ratio": [
"1"
@@ -2,9 +2,10 @@
"type": "filament",
"name": "Generic ABS HF @Prusa MINIIS 0.8",
"renamed_from": "Prusa Generic ABS HF @MINIIS 0.8;Prusa Generic ABS HF MINIIS 0.8",
"inherits": "Generic ABS HF @Prusa base",
"inherits": "Generic ABS @Prusa base",
"from": "system",
"setting_id": "oxiwspATW960u3eZ",
"filament_id": "OF55jHAJ",
"instantiation": "true",
"filament_flow_ratio": [
"1"
@@ -2,9 +2,10 @@
"type": "filament",
"name": "Generic ABS HF @Prusa MINIIS",
"renamed_from": "Prusa Generic ABS HF @MINIIS;Prusa Generic ABS HF MINIIS",
"inherits": "Generic ABS HF @Prusa base",
"inherits": "Generic ABS @Prusa base",
"from": "system",
"setting_id": "KcRRWqB7hrovzBng",
"filament_id": "OF55jHAJ",
"instantiation": "true",
"filament_flow_ratio": [
"1"
@@ -1,8 +0,0 @@
{
"type": "filament",
"name": "Generic ABS HF @Prusa base",
"inherits": "fdm_filament_abs",
"from": "system",
"filament_id": "OF55jHAJ",
"instantiation": "false"
}
@@ -11,6 +11,11 @@
"Prusa CORE One 0.6 nozzle"
],
"nozzle_temperature": [
"255",
"255",
"255",
"255",
"255",
"255"
],
"slow_down_layer_time": [
@@ -11,6 +11,11 @@
"Prusa CORE One 0.8 nozzle"
],
"fan_max_speed": [
"30",
"30",
"30",
"30",
"30",
"30"
],
"overhang_fan_speed": [
@@ -11,15 +11,30 @@
"Prusa CORE One HF 0.4 nozzle"
],
"filament_max_volumetric_speed": [
"26",
"26",
"26",
"26",
"26",
"26"
],
"filament_start_gcode": [
"M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp"
],
"nozzle_temperature": [
"265",
"265",
"265",
"265",
"265",
"265"
],
"nozzle_temperature_initial_layer": [
"265",
"265",
"265",
"265",
"265",
"265"
]
}
@@ -11,15 +11,30 @@
"Prusa CORE One HF 0.5 nozzle"
],
"filament_max_volumetric_speed": [
"27",
"27",
"27",
"27",
"27",
"27"
],
"filament_start_gcode": [
"M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp"
],
"nozzle_temperature": [
"265",
"265",
"265",
"265",
"265",
"265"
],
"nozzle_temperature_initial_layer": [
"265",
"265",
"265",
"265",
"265",
"265"
]
}
@@ -11,15 +11,30 @@
"Prusa CORE One HF 0.6 nozzle"
],
"filament_max_volumetric_speed": [
"34",
"34",
"34",
"34",
"34",
"34"
],
"filament_start_gcode": [
"M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp"
],
"nozzle_temperature": [
"265",
"265",
"265",
"265",
"265",
"265"
],
"nozzle_temperature_initial_layer": [
"265",
"265",
"265",
"265",
"265",
"265"
],
"slow_down_layer_time": [
@@ -11,18 +11,38 @@
"Prusa CORE One HF 0.8 nozzle"
],
"fan_max_speed": [
"30",
"30",
"30",
"30",
"30",
"30"
],
"filament_max_volumetric_speed": [
"36",
"36",
"36",
"36",
"36",
"36"
],
"filament_start_gcode": [
"M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp"
],
"nozzle_temperature": [
"270",
"270",
"270",
"270",
"270",
"270"
],
"nozzle_temperature_initial_layer": [
"270",
"270",
"270",
"270",
"270",
"270"
],
"overhang_fan_speed": [
@@ -1,53 +0,0 @@
{
"type": "filament",
"name": "Generic ASA @Prusa CORE One MMU3",
"inherits": "Generic ASA @Prusa CORE One",
"from": "system",
"setting_id": "0uAHoCupgHmVYVEx",
"instantiation": "true",
"compatible_printers": [
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle"
],
"filament_cooling_final_speed": [
"2.5"
],
"filament_cooling_initial_speed": [
"5"
],
"filament_cooling_moves": [
"3"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_loading_speed": [
"10"
],
"filament_loading_speed_start": [
"50"
],
"filament_ramming_parameters": [
"250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387"
],
"filament_stamping_distance": [
"45"
],
"filament_stamping_loading_speed": [
"26.5"
],
"filament_start_gcode": [
"M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n\nM142 S40 ; set heatbreak target temp"
],
"filament_unloading_speed": [
"60"
],
"filament_unloading_speed_start": [
"60"
],
"idle_temperature": [
"130"
]
}
@@ -1,11 +1,10 @@
{
"type": "filament",
"name": "Generic ASA @Prusa CORE One",
"renamed_from": "Prusa Generic ASA @CORE One;Prusa Generic ASA CORE One",
"inherits": "fdm_filament_asa",
"renamed_from": "Prusa Generic ASA @CORE One;Prusa Generic ASA CORE One;Generic ASA @Prusa CORE One MMU3;Generic ASA @MMU3",
"inherits": "Generic ASA @System",
"from": "system",
"setting_id": "Q7fgojkHRZI0floy",
"filament_id": "OFLPAxz3",
"instantiation": "true",
"chamber_temperature": [
"40"
@@ -17,15 +16,29 @@
"Prusa CORE One 0.25 nozzle",
"Prusa CORE One 0.3 nozzle",
"Prusa CORE One 0.4 nozzle",
"Prusa CORE One 0.5 nozzle"
"Prusa CORE One 0.5 nozzle",
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle"
],
"fan_cooling_layer_time": [
"20"
],
"fan_max_speed": [
"25",
"25",
"25",
"25",
"25",
"25"
],
"fan_min_speed": [
"20",
"20",
"20",
"20",
"20",
"20"
],
"filament_cost": [
@@ -34,36 +47,36 @@
"filament_density": [
"1.07"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; Filament-specific end gcode"
],
"filament_flow_ratio": [
"1",
"1",
"1",
"1",
"1",
"1"
],
"filament_max_volumetric_speed": [
"15",
"15",
"15",
"15",
"15",
"15"
],
"filament_minimal_purge_on_wipe_tower": [
"35",
"35",
"35",
"35",
"35",
"35"
],
"filament_notes": [
""
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
],
"filament_type": [
"ASA"
],
"filament_vendor": [
"Generic"
],
"hot_plate_temp": [
"110"
],
@@ -73,22 +86,101 @@
"idle_temperature": [
"130"
],
"nozzle_temperature": [
"260"
],
"nozzle_temperature_initial_layer": [
"260"
],
"overhang_fan_speed": [
"25"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_layer_time": [
"10"
],
"slow_down_min_speed": [
"15"
],
"supertack_plate_temp": [
"35"
],
"eng_plate_temp": [
"105"
],
"textured_plate_temp": [
"45"
],
"filament_multitool_ramming_flow": [
"10",
"10",
"10",
"10",
"10",
"10"
],
"filament_retraction_distances_when_cut": [
"18",
"18",
"18",
"18",
"18",
"18"
],
"textured_plate_temp_initial_layer": [
"45"
],
"cool_plate_temp": [
"105"
],
"filament_long_retractions_when_cut": [
"0",
"0",
"0",
"0",
"0",
"0"
],
"required_nozzle_HRC": [
"0"
],
"cool_plate_temp_initial_layer": [
"105"
],
"nozzle_temperature_range_high": [
"270",
"270",
"270",
"270",
"270",
"270"
],
"during_print_exhaust_fan_speed": [
"60",
"60",
"60",
"60",
"60",
"60"
],
"supertack_plate_temp_initial_layer": [
"35"
],
"filament_z_hop_types": [
"nil",
"nil",
"nil",
"nil",
"nil",
"nil"
],
"filament_multitool_ramming": [
"0",
"0",
"0",
"0",
"0",
"0"
],
"complete_print_exhaust_fan_speed": [
"80",
"80",
"80",
"80",
"80",
"80"
]
}
@@ -1,35 +0,0 @@
{
"type": "filament",
"name": "Generic FLEX @Prusa XL 5T",
"renamed_from": "Prusa Generic FLEX @XL 5T;Prusa Generic FLEX XL 5T",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "ef8fSryRYselyr4G",
"filament_id": "OFbPuPKY",
"instantiation": "true",
"filament_loading_speed_start": "3",
"filament_loading_speed": "28",
"filament_unloading_speed_start": "100",
"filament_unloading_speed": "90",
"filament_cooling_moves": "4",
"filament_cooling_initial_speed": "2.2",
"filament_cooling_final_speed": "3.4",
"filament_retract_lift_below": "0.6",
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_volume": [
"40"
],
"filament_multitool_ramming_flow": [
"2.5"
],
"compatible_printers": [
"Prusa XL 5T 0.25 nozzle",
"Prusa XL 5T 0.3 nozzle",
"Prusa XL 5T 0.4 nozzle",
"Prusa XL 5T 0.5 nozzle",
"Prusa XL 5T 0.6 nozzle",
"Prusa XL 5T 0.8 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"name": "Generic FLEX @Prusa XL",
"renamed_from": "Prusa Generic FLEX @XL;Prusa Generic FLEX XL",
"renamed_from": "Prusa Generic FLEX @XL;Prusa Generic FLEX XL;Generic FLEX @Prusa XL 5T;Prusa Generic FLEX @XL 5T;Prusa Generic FLEX XL 5T",
"inherits": "fdm_filament_flex",
"from": "system",
"setting_id": "qrFWrwgQSXgU7oCb",
@@ -30,6 +30,12 @@
"Prusa XL 0.4 nozzle",
"Prusa XL 0.5 nozzle",
"Prusa XL 0.6 nozzle",
"Prusa XL 0.8 nozzle"
"Prusa XL 0.8 nozzle",
"Prusa XL 5T 0.25 nozzle",
"Prusa XL 5T 0.3 nozzle",
"Prusa XL 5T 0.4 nozzle",
"Prusa XL 5T 0.5 nozzle",
"Prusa XL 5T 0.6 nozzle",
"Prusa XL 5T 0.8 nozzle"
]
}
@@ -1,7 +1,7 @@
{
"type": "filament",
"name": "Generic PA @Prusa",
"renamed_from": "Prusa Generic PA",
"renamed_from": "Prusa Generic PA;Generic PA @Prusa CORE One MMU3;Generic PA @MMU3",
"inherits": "Generic PA @Prusa base",
"from": "system",
"setting_id": "zTnz1NYXoXxIHhRv",
@@ -27,6 +27,10 @@
"Prusa MK4 0.25 nozzle",
"Prusa MK4 0.4 nozzle",
"Prusa MK4 0.6 nozzle",
"Prusa MK4 0.8 nozzle"
"Prusa MK4 0.8 nozzle",
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle"
]
}
@@ -1,27 +1,17 @@
{
"type": "filament",
"name": "Generic PC @Prusa",
"renamed_from": "Prusa Generic PC",
"inherits": "fdm_filament_pc",
"renamed_from": "Prusa Generic PC;Generic PC @Prusa CORE One MMU3;Generic PC @MMU3",
"inherits": "Generic PC @System",
"from": "system",
"setting_id": "UJ5KpqIb5mpcNXzl",
"filament_id": "OFLakOUI",
"instantiation": "true",
"filament_max_volumetric_speed": [
"12"
],
"filament_flow_ratio": [
"0.94"
],
"eng_plate_temp": [
"100"
],
"hot_plate_temp": [
"100"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp_initial_layer": [
"100"
],
@@ -40,6 +30,106 @@
"Prusa MINI 0.25 nozzle",
"Prusa MINI 0.4 nozzle",
"Prusa MINI 0.6 nozzle",
"Prusa MINI 0.8 nozzle"
"Prusa MINI 0.8 nozzle",
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle"
],
"supertack_plate_temp": [
"35"
],
"idle_temperature": [
"0"
],
"textured_plate_temp": [
"45"
],
"filament_multitool_ramming_flow": [
"10",
"10",
"10",
"10",
"10",
"10"
],
"filament_retraction_distances_when_cut": [
"18",
"18",
"18",
"18",
"18",
"18"
],
"textured_plate_temp_initial_layer": [
"45"
],
"filament_multitool_ramming_volume": [
"10",
"10",
"10",
"10",
"10",
"10"
],
"temperature_vitrification": [
"140"
],
"filament_long_retractions_when_cut": [
"0",
"0",
"0",
"0",
"0",
"0"
],
"required_nozzle_HRC": [
"0"
],
"nozzle_temperature_range_high": [
"280",
"280",
"280",
"280",
"280",
"280"
],
"during_print_exhaust_fan_speed": [
"60",
"60",
"60",
"60",
"60",
"60"
],
"supertack_plate_temp_initial_layer": [
"35"
],
"filament_z_hop_types": [
"nil",
"nil",
"nil",
"nil",
"nil",
"nil"
],
"filament_end_gcode": [
"; filament end gcode \n"
],
"filament_multitool_ramming": [
"0",
"0",
"0",
"0",
"0",
"0"
],
"complete_print_exhaust_fan_speed": [
"80",
"80",
"80",
"80",
"80",
"80"
]
}
@@ -0,0 +1,91 @@
{
"type": "filament",
"name": "Generic PETG @Prusa CORE One INDX",
"inherits": "Generic PETG @Prusa base",
"from": "system",
"setting_id": "HbevqxqvYHuvRc3v",
"instantiation": "true",
"filament_cost": [
"27.82"
],
"filament_notes": [
"\nPrusa INDX 2.5.10 tuning."
],
"slow_down_min_speed": [
"20"
],
"slow_down_layer_time": [
"9"
],
"hot_plate_temp": [
"85"
],
"overhang_fan_speed": [
"60"
],
"full_fan_speed_layer": [
"5"
],
"fan_cooling_layer_time": [
"25"
],
"default_filament_colour": [
"#FF8000"
],
"filament_max_volumetric_speed": [
"17"
],
"hot_plate_temp_initial_layer": [
"85"
],
"nozzle_temperature_initial_layer": [
"245"
],
"fan_max_speed": [
"65"
],
"fan_min_speed": [
"30"
],
"nozzle_temperature": [
"240"
],
"filament_retraction_length": [
"1.6"
],
"filament_wipe": [
"1"
],
"filament_retract_before_wipe": [
"20"
],
"filament_z_hop": [
"1"
],
"chamber_temperature": [
"35"
],
"filament_retract_length_toolchange": [
"1.6"
],
"compatible_printers": [
"Prusa CORE One INDX 4T HF 0.4 nozzle",
"Prusa CORE One INDX 8T HF 0.4 nozzle"
],
"compatible_printers_condition": "",
"textured_plate_temp": [
"85"
],
"textured_plate_temp_initial_layer": [
"85"
],
"activate_chamber_temp_control": [
"1"
],
"pressure_advance": [
"0.052"
],
"filament_extruder_variant": [
"Direct Drive High Flow"
]
}
@@ -1,53 +0,0 @@
{
"type": "filament",
"name": "Generic PETG @Prusa CORE One MMU3",
"inherits": "Generic PETG @Prusa CORE One",
"from": "system",
"setting_id": "JutuB6ct5A1l2Biz",
"instantiation": "true",
"compatible_printers": [
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle"
],
"filament_cooling_final_speed": [
"2.5"
],
"filament_cooling_initial_speed": [
"5"
],
"filament_cooling_moves": [
"3"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_loading_speed": [
"10"
],
"filament_loading_speed_start": [
"50"
],
"filament_ramming_parameters": [
"250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387"
],
"filament_stamping_distance": [
"45"
],
"filament_stamping_loading_speed": [
"26.5"
],
"filament_start_gcode": [
"M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp"
],
"filament_unloading_speed": [
"60"
],
"filament_unloading_speed_start": [
"60"
],
"idle_temperature": [
"130"
]
}
@@ -1,23 +1,23 @@
{
"type": "filament",
"name": "Generic PETG @Prusa CORE One",
"renamed_from": "Prusa Generic PETG @CORE One;Prusa Generic PETG CORE One",
"inherits": "fdm_filament_pet",
"renamed_from": "Prusa Generic PETG @CORE One;Prusa Generic PETG CORE One;Generic PETG @Prusa CORE One MMU3;Generic PETG @MMU3",
"inherits": "Generic PETG @Prusa base",
"from": "system",
"setting_id": "W71PW5bpf7CV16D4",
"filament_id": "OFYPdQJh",
"instantiation": "true",
"chamber_temperature": [
"35"
],
"close_fan_the_first_x_layers": [
"3"
],
"compatible_printers": [
"Prusa CORE One 0.25 nozzle",
"Prusa CORE One 0.3 nozzle",
"Prusa CORE One 0.4 nozzle",
"Prusa CORE One 0.5 nozzle"
"Prusa CORE One 0.5 nozzle",
"Prusa CORE One MMU3 0.4 nozzle",
"Prusa CORE One MMU3 0.25 nozzle",
"Prusa CORE One MMU3 0.3 nozzle",
"Prusa CORE One MMU3 0.6 nozzle"
],
"fan_cooling_layer_time": [
"25"
@@ -31,45 +31,24 @@
"filament_cost": [
"27.82"
],
"filament_density": [
"1.27"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; Filament-specific end gcode"
],
"filament_flow_ratio": [
"1"
],
"filament_max_volumetric_speed": [
"12"
],
"filament_minimal_purge_on_wipe_tower": [
"35"
],
"filament_notes": [
""
],
"filament_retract_before_wipe": [
"20"
],
"filament_retraction_length": [
"0.8"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_type": [
"PETG"
],
"filament_vendor": [
"Generic"
],
"filament_wipe": [
"1"
],
@@ -100,9 +79,6 @@
"overhang_fan_speed": [
"60"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_layer_time": [
"9"
],
@@ -1,72 +0,0 @@
{
"type": "filament",
"name": "Generic PETG @Prusa XL 5T",
"renamed_from": "Prusa Generic PETG @XL 5T;Prusa Generic PETG XL 5T",
"inherits": "Generic PETG @Prusa base",
"from": "system",
"setting_id": "DNJECSjW6zKYALxE",
"instantiation": "true",
"nozzle_temperature_intial_layer": "230",
"nozzle_temperature": "240",
"hot_plate_temp_initial_layer": "80",
"hot_plate_temp": "80",
"full_fan_speed_layer": "5",
"slow_down_min_speed": "15",
"filament_flow_ratio": [
"1"
],
"filament_max_volumetric_speed": [
"9"
],
"slow_down_layer_time": [
"9"
],
"fan_max_speed": [
"50"
],
"fan_min_speed": [
"30"
],
"overhang_fan_speed": [
"50"
],
"close_fan_the_first_x_layers": [
"3"
],
"filament_loading_speed_start": "50",
"filament_loading_speed": "10",
"filament_unloading_speed_start": "100",
"filament_unloading_speed": "100",
"filament_cooling_moves": "3",
"filament_cooling_initial_speed": "5",
"filament_cooling_final_speed": "2.5",
"filament_retract_lift_below": "1.5",
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_volume": [
"5"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_stamping_distance": [
"45"
],
"filament_stamping_loading_speed": [
"29"
],
"filament_wipe": "1",
"filament_retract_before_wipe": "20%",
"filament_start_gcode": [
"; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.053{elsif nozzle_diameter[0]==0.5}0.042{elsif nozzle_diameter[0]==0.6}0.032{elsif nozzle_diameter[0]==0.8}0.018{elsif nozzle_diameter[0]==0.25}0.18{elsif nozzle_diameter[0]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"compatible_printers": [
"Prusa XL 5T 0.25 nozzle",
"Prusa XL 5T 0.3 nozzle",
"Prusa XL 5T 0.4 nozzle",
"Prusa XL 5T 0.5 nozzle",
"Prusa XL 5T 0.6 nozzle",
"Prusa XL 5T 0.8 nozzle"
]
}
@@ -1,12 +1,11 @@
{
"type": "filament",
"name": "Generic PETG @Prusa XL",
"renamed_from": "Prusa Generic PETG @XL;Prusa Generic PETG XL",
"renamed_from": "Prusa Generic PETG @XL;Prusa Generic PETG XL;Generic PETG @Prusa XL 5T;Prusa Generic PETG @XL 5T;Prusa Generic PETG XL 5T",
"inherits": "Generic PETG @Prusa base",
"from": "system",
"setting_id": "8vcNv4b4H7aYA01G",
"instantiation": "true",
"nozzle_temperature_intial_layer": "230",
"nozzle_temperature": "240",
"hot_plate_temp_initial_layer": "80",
"hot_plate_temp": "80",
@@ -52,6 +51,30 @@
"Prusa XL 0.4 nozzle",
"Prusa XL 0.5 nozzle",
"Prusa XL 0.6 nozzle",
"Prusa XL 0.8 nozzle"
"Prusa XL 0.8 nozzle",
"Prusa XL 5T 0.25 nozzle",
"Prusa XL 5T 0.3 nozzle",
"Prusa XL 5T 0.4 nozzle",
"Prusa XL 5T 0.5 nozzle",
"Prusa XL 5T 0.6 nozzle",
"Prusa XL 5T 0.8 nozzle"
],
"filament_multitool_ramming": [
"1"
],
"filament_multitool_ramming_flow": [
"40"
],
"filament_multitool_ramming_volume": [
"5"
],
"filament_stamping_distance": [
"45"
],
"filament_stamping_loading_speed": [
"29"
],
"nozzle_temperature_initial_layer": [
"230"
]
}
@@ -2,9 +2,10 @@
"type": "filament",
"name": "Generic PETG HF @Prusa MINIIS 0.6",
"renamed_from": "Prusa Generic PETG HF @MINIIS 0.6;Prusa Generic PETG HF MINIIS 0.6",
"inherits": "Generic PETG HF @Prusa base",
"inherits": "Generic PETG @Prusa base",
"from": "system",
"setting_id": "nF8YzRMvaT4D8LBD",
"filament_id": "OF7lOgYF",
"instantiation": "true",
"reduce_fan_stop_start_freq": [
"1"

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