mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-24 17:26:47 +00:00
Compare commits
231
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
87eb8de001 | ||
|
|
220508534a | ||
|
|
5a0810365b | ||
|
|
fa98ec5afe | ||
|
|
3c1d8ac8b4 | ||
|
|
936b0bbc17 | ||
|
|
5222a37eff | ||
|
|
6da938b660 | ||
|
|
2dcdf49185 | ||
|
|
52e845a821 | ||
|
|
ffb4813510 | ||
|
|
7436f68e09 | ||
|
|
ad956591ce | ||
|
|
8da8e9bee1 | ||
|
|
0acc8608b1 | ||
|
|
a2a9b2ce94 | ||
|
|
07bee6c7a4 | ||
|
|
1615390182 | ||
|
|
cf20994b58 | ||
|
|
309bb3c6e2 | ||
|
|
79f20c3996 | ||
|
|
33179c1902 | ||
|
|
ccaafb3003 | ||
|
|
7d4d8276a2 | ||
|
|
c492436228 | ||
|
|
99a1cd1b74 | ||
|
|
4b41bf7f4f | ||
|
|
d5962052ca | ||
|
|
f1410c8cac | ||
|
|
7283a05040 | ||
|
|
c32c87863b | ||
|
|
06f7016d6a | ||
|
|
be9ae6ffbf | ||
|
|
cda25c3715 | ||
|
|
2dcdfe2d32 | ||
|
|
9e34ca536b | ||
|
|
201617a6c0 | ||
|
|
2dcbee3d76 | ||
|
|
6c353d9596 | ||
|
|
ce0c759ded | ||
|
|
9a7e925790 | ||
|
|
f27b0a1f9d | ||
|
|
cf1c164546 | ||
|
|
d9f1f8b207 | ||
|
|
a096e1ab8c | ||
|
|
bca8dd00dd | ||
|
|
8b7f8cac82 | ||
|
|
aae03257ed | ||
|
|
3fba237c9a | ||
|
|
cfb6349695 | ||
|
|
f53ad6993a | ||
|
|
91c6d1d3d5 | ||
|
|
b91f48141d | ||
|
|
e168d900f2 | ||
|
|
467e249b3d | ||
|
|
bc03e3be2f | ||
|
|
5287fd0160 | ||
|
|
c441fd2fa4 | ||
|
|
f224b8e4a6 | ||
|
|
8b479c9af3 | ||
|
|
d8299c388e | ||
|
|
771d455d12 | ||
|
|
a7ab01b815 | ||
|
|
4d85b6627e | ||
|
|
38e35dbff4 | ||
|
|
dcddb9283c | ||
|
|
ba9cf6e897 | ||
|
|
d1f2ecb903 | ||
|
|
ee2b4ccf70 | ||
|
|
753c793ea0 | ||
|
|
9c5494b19f | ||
|
|
93a119427a | ||
|
|
d264fcaef4 | ||
|
|
b4ab6dedfd | ||
|
|
ed59f93456 | ||
|
|
cf52c81dcd | ||
|
|
803a2a3239 | ||
|
|
985092bb46 | ||
|
|
cb16a2e547 | ||
|
|
2c2e91b629 | ||
|
|
c3faf903ca | ||
|
|
5f3c957597 | ||
|
|
8557285389 | ||
|
|
a9edab78a8 | ||
|
|
79dede7d59 | ||
|
|
2ac45b2f78 | ||
|
|
b4f33e71e9 | ||
|
|
8c91cab971 | ||
|
|
79077518e9 | ||
|
|
56aa348c89 | ||
|
|
ae1752fbf2 | ||
|
|
cf3f36a1c6 | ||
|
|
cca7d8adb1 | ||
|
|
396d9ff51a | ||
|
|
81540c81e0 | ||
|
|
e7ace6cc99 | ||
|
|
79c20a1fad | ||
|
|
e48f9f47d2 | ||
|
|
2f566e3779 | ||
|
|
37d1edf69a | ||
|
|
f1cf9c69b1 | ||
|
|
1df362888e | ||
|
|
4b2466b179 | ||
|
|
3adcb3e953 | ||
|
|
104dbb2140 | ||
|
|
e482cbbdd7 | ||
|
|
2a5ddd9edb | ||
|
|
c10f83cf61 | ||
|
|
8eeec6935e | ||
|
|
131a2abf99 | ||
|
|
9daecc59b4 | ||
|
|
58e000d842 | ||
|
|
af6be5858e | ||
|
|
3fc7fd99d6 | ||
|
|
3fe043651b | ||
|
|
b0b78c296c | ||
|
|
62791fabfa | ||
|
|
b0ada2dee5 | ||
|
|
8f4df1aa8c | ||
|
|
5fec9b8d19 | ||
|
|
75ed5afbac | ||
|
|
01c553bad9 | ||
|
|
a4376c77c3 | ||
|
|
c459994290 | ||
|
|
3a0fda7d18 | ||
|
|
eb8733f0f4 | ||
|
|
55acb940a8 | ||
|
|
0d691403de | ||
|
|
9b2b75a51d | ||
|
|
25da273ea0 | ||
|
|
dbcb82075f | ||
|
|
2f82cfe40f | ||
|
|
972031cf06 | ||
|
|
2a4792e762 | ||
|
|
dd15ac6146 | ||
|
|
b0469254bc | ||
|
|
2228589e16 | ||
|
|
4d8480e1a1 | ||
|
|
4320cc78d9 | ||
|
|
d9d9678a7e | ||
|
|
d55a0bfec6 | ||
|
|
3b1017df51 | ||
|
|
f5b81d2ffc | ||
|
|
eb9cfe0ecb | ||
|
|
1e8805d43d | ||
|
|
e8f089dfa4 | ||
|
|
84e929ea24 | ||
|
|
abec603e73 | ||
|
|
0ed19d4826 | ||
|
|
b747c13ef4 | ||
|
|
6a12aca495 | ||
|
|
d486db6459 | ||
|
|
fe777b8801 | ||
|
|
1b3e206f34 | ||
|
|
4df1607ec4 | ||
|
|
a0ec8bec8a | ||
|
|
36c362cbd2 | ||
|
|
84fde32616 | ||
|
|
34e349e323 | ||
|
|
44941e571f | ||
|
|
876d6e2499 | ||
|
|
858b3024ff | ||
|
|
6595557c34 | ||
|
|
c729849843 | ||
|
|
c0563be36e | ||
|
|
462f8dce30 | ||
|
|
b2a0485139 | ||
|
|
f16071f083 | ||
|
|
a1505e9bed | ||
|
|
8e48312b1f | ||
|
|
ba7fdb8ceb | ||
|
|
8be9800567 | ||
|
|
c4eabc3c52 | ||
|
|
0d0d281d0c | ||
|
|
c4bbcd322b | ||
|
|
7aea1b1235 | ||
|
|
41c16436bf | ||
|
|
2bbb229c91 | ||
|
|
c2a43157d2 | ||
|
|
738b30a743 | ||
|
|
6e6ffe13f8 | ||
|
|
eb96d127b0 | ||
|
|
60421c33f4 | ||
|
|
300c4b8afb | ||
|
|
96092ef2d3 | ||
|
|
d9002ad87d | ||
|
|
4c1ea0a602 | ||
|
|
9415812d85 | ||
|
|
d3c728557e | ||
|
|
6558c52849 | ||
|
|
a34d056de2 | ||
|
|
7ba5718be6 | ||
|
|
c1163ce7e5 | ||
|
|
da187eaaf9 | ||
|
|
de0268ce86 | ||
|
|
108923bdaa | ||
|
|
44793f7a21 | ||
|
|
7cb1805272 | ||
|
|
d5c528b7c7 | ||
|
|
742cb712d8 | ||
|
|
fd1c5d826c | ||
|
|
58be7f4861 | ||
|
|
4031b00915 | ||
|
|
07c62112b8 | ||
|
|
f23e4963bf | ||
|
|
95279f7084 | ||
|
|
1014558c91 | ||
|
|
6515062a3a | ||
|
|
8153e26b6d | ||
|
|
79fd33d49a | ||
|
|
cdb662d4b2 | ||
|
|
a27fa7b5df | ||
|
|
cdeed107c5 | ||
|
|
be92f7e78c | ||
|
|
76f9de4cfb | ||
|
|
cd6d2cbf5e | ||
|
|
deaca0189f | ||
|
|
7d54ee286d | ||
|
|
dddfc7a8ad | ||
|
|
673bfb0dee | ||
|
|
b9e8c5a38c | ||
|
|
a2a4ca20e4 | ||
|
|
12075459d2 | ||
|
|
f3770f3106 | ||
|
|
90fbf1770f | ||
|
|
bde94ab37f | ||
|
|
6d25e1777e | ||
|
|
7ce26ca8e5 | ||
|
|
367fcce634 | ||
|
|
9b3a44b339 | ||
|
|
6384191102 |
+42
-4
@@ -70,9 +70,6 @@ if (POLICY CMP0092)
|
|||||||
cmake_policy(SET CMP0092 NEW)
|
cmake_policy(SET CMP0092 NEW)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# project() reads this, so set it first.
|
|
||||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_LIST_DIR}/cmake/modules/ClangClShowIncludes.cmake")
|
|
||||||
|
|
||||||
project(OrcaSlicer)
|
project(OrcaSlicer)
|
||||||
|
|
||||||
# Backward compatibility for old CMake versions
|
# Backward compatibility for old CMake versions
|
||||||
@@ -829,6 +826,37 @@ find_package(OpenSSL REQUIRED)
|
|||||||
find_package(CURL REQUIRED)
|
find_package(CURL REQUIRED)
|
||||||
find_package(Freetype REQUIRED)
|
find_package(Freetype REQUIRED)
|
||||||
|
|
||||||
|
if (SLIC3R_GUI)
|
||||||
|
# LibDataChannel's installed export references its bundled dependencies,
|
||||||
|
# but does not install their CMake targets. Recreate those targets from
|
||||||
|
# the same dependency prefix before loading the LibDataChannel config.
|
||||||
|
if (NOT TARGET Usrsctp::usrsctp)
|
||||||
|
find_library(_ORCA_USRSCTP_LIBRARY NAMES usrsctp
|
||||||
|
PATHS "${CMAKE_PREFIX_PATH}/lib" NO_DEFAULT_PATH)
|
||||||
|
if (_ORCA_USRSCTP_LIBRARY)
|
||||||
|
add_library(Usrsctp::usrsctp UNKNOWN IMPORTED GLOBAL)
|
||||||
|
set_target_properties(Usrsctp::usrsctp PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${_ORCA_USRSCTP_LIBRARY}"
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES C
|
||||||
|
INTERFACE_LINK_LIBRARIES "Threads::Threads")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT TARGET LibJuice::LibJuice)
|
||||||
|
find_library(_ORCA_LIBJUICE_LIBRARY NAMES juice
|
||||||
|
PATHS "${CMAKE_PREFIX_PATH}/lib" NO_DEFAULT_PATH)
|
||||||
|
if (_ORCA_LIBJUICE_LIBRARY)
|
||||||
|
add_library(LibJuice::LibJuice UNKNOWN IMPORTED GLOBAL)
|
||||||
|
set_target_properties(LibJuice::LibJuice PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${_ORCA_LIBJUICE_LIBRARY}"
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES C
|
||||||
|
INTERFACE_LINK_LIBRARIES "Threads::Threads")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(LibDataChannel CONFIG REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_library(libcurl INTERFACE)
|
add_library(libcurl INTERFACE)
|
||||||
target_link_libraries(libcurl INTERFACE CURL::libcurl)
|
target_link_libraries(libcurl INTERFACE CURL::libcurl)
|
||||||
@@ -1109,6 +1137,7 @@ function(orcaslicer_copy_dlls target config postfix output_dlls)
|
|||||||
endif ()
|
endif ()
|
||||||
file(COPY ${_occt_dlls}
|
file(COPY ${_occt_dlls}
|
||||||
${CMAKE_PREFIX_PATH}/bin/freetype.dll
|
${CMAKE_PREFIX_PATH}/bin/freetype.dll
|
||||||
|
${CMAKE_PREFIX_PATH}/bin/avformat-61.dll
|
||||||
${CMAKE_PREFIX_PATH}/bin/avcodec-61.dll
|
${CMAKE_PREFIX_PATH}/bin/avcodec-61.dll
|
||||||
${CMAKE_PREFIX_PATH}/bin/swresample-5.dll
|
${CMAKE_PREFIX_PATH}/bin/swresample-5.dll
|
||||||
${CMAKE_PREFIX_PATH}/bin/swscale-8.dll
|
${CMAKE_PREFIX_PATH}/bin/swscale-8.dll
|
||||||
@@ -1121,6 +1150,7 @@ function(orcaslicer_copy_dlls target config postfix output_dlls)
|
|||||||
${_out_dir}/WebView2Loader.dll
|
${_out_dir}/WebView2Loader.dll
|
||||||
|
|
||||||
${_out_dir}/freetype.dll
|
${_out_dir}/freetype.dll
|
||||||
|
${_out_dir}/avformat-61.dll
|
||||||
${_out_dir}/avcodec-61.dll
|
${_out_dir}/avcodec-61.dll
|
||||||
${_out_dir}/swresample-5.dll
|
${_out_dir}/swresample-5.dll
|
||||||
${_out_dir}/swscale-8.dll
|
${_out_dir}/swscale-8.dll
|
||||||
@@ -1144,7 +1174,10 @@ function(orcaslicer_copy_sos target config postfix output_sos)
|
|||||||
set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}")
|
set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so
|
file(COPY ${CMAKE_PREFIX_PATH}/lib/libavformat.so
|
||||||
|
${CMAKE_PREFIX_PATH}/lib/libavformat.so.61
|
||||||
|
${CMAKE_PREFIX_PATH}/lib/libavformat.so.61.1.100
|
||||||
|
${CMAKE_PREFIX_PATH}/lib/libavcodec.so
|
||||||
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61
|
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61
|
||||||
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100
|
${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100
|
||||||
${CMAKE_PREFIX_PATH}/lib/libavutil.so
|
${CMAKE_PREFIX_PATH}/lib/libavutil.so
|
||||||
@@ -1159,6 +1192,9 @@ function(orcaslicer_copy_sos target config postfix output_sos)
|
|||||||
DESTINATION ${_out_dir})
|
DESTINATION ${_out_dir})
|
||||||
|
|
||||||
set(${output_sos}
|
set(${output_sos}
|
||||||
|
${_out_dir}/libavformat.so
|
||||||
|
${_out_dir}/libavformat.so.61
|
||||||
|
${_out_dir}/libavformat.so.61.1.100
|
||||||
${_out_dir}/libavcodec.so
|
${_out_dir}/libavcodec.so
|
||||||
${_out_dir}/libavcodec.so.61
|
${_out_dir}/libavcodec.so.61
|
||||||
${_out_dir}/libavcodec.so.61.3.100
|
${_out_dir}/libavcodec.so.61.3.100
|
||||||
@@ -1288,6 +1324,8 @@ endif ()
|
|||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
set(LIBRARY_FILES
|
set(LIBRARY_FILES
|
||||||
|
${LIBDIR_BIN}/libavformat.so.61
|
||||||
|
${LIBDIR_BIN}/libavformat.so.61.1.100
|
||||||
${LIBDIR_BIN}/libavcodec.so.61
|
${LIBDIR_BIN}/libavcodec.so.61
|
||||||
${LIBDIR_BIN}/libavcodec.so.61.3.100
|
${LIBDIR_BIN}/libavcodec.so.61.3.100
|
||||||
${LIBDIR_BIN}/libavutil.so.59
|
${LIBDIR_BIN}/libavutil.so.59
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
# ccache does not parse the -clang: arguments CMake uses for clang-cl's gcc-style
|
|
||||||
# depfile, so a cache hit writes the object and no depfile, and Ninja then records
|
|
||||||
# no headers for that object. ccache reproduces /showIncludes output on a hit.
|
|
||||||
foreach (_lang C CXX)
|
|
||||||
if (CMAKE_${_lang}_COMPILER_ID STREQUAL "Clang" AND
|
|
||||||
CMAKE_${_lang}_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
|
||||||
set(CMAKE_DEPFILE_FLAGS_${_lang} "/showIncludes")
|
|
||||||
set(CMAKE_${_lang}_DEPFILE_FORMAT msvc)
|
|
||||||
endif ()
|
|
||||||
endforeach ()
|
|
||||||
Vendored
+18
-16
@@ -38,14 +38,6 @@ if(POLICY CMP0135) # DOWNLOAD_EXTRACT_TIMESTAMP
|
|||||||
cmake_policy(SET CMP0135 NEW)
|
cmake_policy(SET CMP0135 NEW)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# project() reads this, so set it first. scripts/flatpak/make_deps_tar.sh packs deps/
|
|
||||||
# without cmake/, so the file is missing in a Flatpak build.
|
|
||||||
set(_rules_override "${CMAKE_CURRENT_LIST_DIR}/../cmake/modules/ClangClShowIncludes.cmake")
|
|
||||||
if (EXISTS "${_rules_override}")
|
|
||||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_rules_override}")
|
|
||||||
endif ()
|
|
||||||
unset(_rules_override)
|
|
||||||
|
|
||||||
project(OrcaSlicer-deps)
|
project(OrcaSlicer-deps)
|
||||||
|
|
||||||
# Backward compatibility for old CMake versions
|
# Backward compatibility for old CMake versions
|
||||||
@@ -164,7 +156,7 @@ if (NOT _is_multi AND NOT CMAKE_BUILD_TYPE)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
function(orcaslicer_add_cmake_project projectname)
|
function(orcaslicer_add_cmake_project projectname)
|
||||||
cmake_parse_arguments(P_ARGS "FORWARD_CONFIG" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
|
cmake_parse_arguments(P_ARGS "FORWARD_CONFIG" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND;SOURCE_DIR" "CMAKE_ARGS" ${ARGN})
|
||||||
|
|
||||||
# MSVC is true for clang-cl as well, so the sub-build toolchain has to key on the
|
# MSVC is true for clang-cl as well, so the sub-build toolchain has to key on the
|
||||||
# generator. A non-Visual-Studio superbuild passes its own generator down, and with
|
# generator. A non-Visual-Studio superbuild passes its own generator down, and with
|
||||||
@@ -210,12 +202,18 @@ function(orcaslicer_add_cmake_project projectname)
|
|||||||
set(_build_j "-j${NPROC}")
|
set(_build_j "-j${NPROC}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
set(_source_dir_arg "")
|
||||||
|
if (P_ARGS_SOURCE_DIR)
|
||||||
|
set(_source_dir_arg SOURCE_DIR ${P_ARGS_SOURCE_DIR})
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (NOT IS_CROSS_COMPILE OR NOT APPLE)
|
if (NOT IS_CROSS_COMPILE OR NOT APPLE)
|
||||||
ExternalProject_Add(
|
ExternalProject_Add(
|
||||||
dep_${projectname}
|
dep_${projectname}
|
||||||
EXCLUDE_FROM_ALL ON
|
EXCLUDE_FROM_ALL ON
|
||||||
INSTALL_DIR ${DESTDIR}
|
INSTALL_DIR ${DESTDIR}
|
||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
|
||||||
|
${_source_dir_arg}
|
||||||
${_gen}
|
${_gen}
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||||
@@ -228,7 +226,6 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
|
|||||||
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
||||||
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
|
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
|
||||||
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
|
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
|
||||||
-DCMAKE_USER_MAKE_RULES_OVERRIDE:STRING=${CMAKE_USER_MAKE_RULES_OVERRIDE}
|
|
||||||
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
|
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
|
||||||
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
|
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
|
||||||
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}
|
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}
|
||||||
@@ -249,12 +246,14 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
|
|||||||
# note for future devs: shared libs may actually create a size reduction
|
# note for future devs: shared libs may actually create a size reduction
|
||||||
# but orcaslicer_deps tends to get really funny regarding linking after that (notably boost)
|
# but orcaslicer_deps tends to get really funny regarding linking after that (notably boost)
|
||||||
# so, as much as I would like to use that, it's not happening
|
# so, as much as I would like to use that, it's not happening
|
||||||
|
if (NOT P_ARGS_SOURCE_DIR)
|
||||||
ExternalProject_Add_Step(dep_${projectname} free_download_space
|
ExternalProject_Add_Step(dep_${projectname} free_download_space
|
||||||
DEPENDEES download # do after download
|
DEPENDEES download # do after download
|
||||||
COMMENT "Freeing Space: Removing source archive"
|
COMMENT "Freeing Space: Removing source archive"
|
||||||
WORKING_DIRECTORY ${DEP_DOWNLOAD_DIR}
|
WORKING_DIRECTORY ${DEP_DOWNLOAD_DIR}
|
||||||
COMMAND ${CMAKE_COMMAND} -E rm -r ${projectname}
|
COMMAND ${CMAKE_COMMAND} -E rm -rf ${projectname}
|
||||||
)
|
)
|
||||||
|
endif ()
|
||||||
ExternalProject_Add_Step(dep_${projectname} free_build_space
|
ExternalProject_Add_Step(dep_${projectname} free_build_space
|
||||||
DEPENDEES install # do after install
|
DEPENDEES install # do after install
|
||||||
COMMENT "Freeing Space: Removing source and build files"
|
COMMENT "Freeing Space: Removing source and build files"
|
||||||
@@ -268,6 +267,7 @@ else()
|
|||||||
EXCLUDE_FROM_ALL ON
|
EXCLUDE_FROM_ALL ON
|
||||||
INSTALL_DIR ${DESTDIR}
|
INSTALL_DIR ${DESTDIR}
|
||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
|
||||||
|
${_source_dir_arg}
|
||||||
${_gen}
|
${_gen}
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||||
@@ -276,7 +276,6 @@ else()
|
|||||||
-DCMAKE_IGNORE_PREFIX_PATH:STRING=${CMAKE_IGNORE_PREFIX_PATH}
|
-DCMAKE_IGNORE_PREFIX_PATH:STRING=${CMAKE_IGNORE_PREFIX_PATH}
|
||||||
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
|
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
|
||||||
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
|
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
|
||||||
-DCMAKE_USER_MAKE_RULES_OVERRIDE:STRING=${CMAKE_USER_MAKE_RULES_OVERRIDE}
|
|
||||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||||
${_cmake_osx_arch}
|
${_cmake_osx_arch}
|
||||||
"${_configs_line}"
|
"${_configs_line}"
|
||||||
@@ -396,10 +395,6 @@ include(libnoise/libnoise.cmake)
|
|||||||
|
|
||||||
include(Draco/Draco.cmake)
|
include(Draco/Draco.cmake)
|
||||||
|
|
||||||
include(FFMPEG/FFMPEG.cmake)
|
|
||||||
include(Assimp/Assimp.cmake)
|
|
||||||
|
|
||||||
|
|
||||||
# I *think* 1.1 is used for *just* md5 hashing?
|
# I *think* 1.1 is used for *just* md5 hashing?
|
||||||
# 3.1 has everything in the right place, but the md5 funcs used are deprecated
|
# 3.1 has everything in the right place, but the md5 funcs used are deprecated
|
||||||
# a grep across the repo shows it is used for other things
|
# a grep across the repo shows it is used for other things
|
||||||
@@ -410,6 +405,12 @@ if(NOT OPENSSL_FOUND)
|
|||||||
set(OPENSSL_PKG dep_OpenSSL)
|
set(OPENSSL_PKG dep_OpenSSL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include(FFMPEG/FFMPEG.cmake)
|
||||||
|
include(Assimp/Assimp.cmake)
|
||||||
|
|
||||||
|
include(DataChannel/DataChannel.cmake)
|
||||||
|
set(DATACHANNEL_PKG dep_DataChannel)
|
||||||
|
|
||||||
# we don't want to load a "wrong" openssl when loading curl
|
# we don't want to load a "wrong" openssl when loading curl
|
||||||
# so, just don't even bother
|
# so, just don't even bother
|
||||||
# ...i think this is how it works? change if wrong
|
# ...i think this is how it works? change if wrong
|
||||||
@@ -483,6 +484,7 @@ set(_dep_list
|
|||||||
dep_wxInspector
|
dep_wxInspector
|
||||||
dep_FFMPEG
|
dep_FFMPEG
|
||||||
dep_Assimp
|
dep_Assimp
|
||||||
|
${DATACHANNEL_PKG}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
|
|||||||
Vendored
+37
@@ -0,0 +1,37 @@
|
|||||||
|
# libdatachannel is the native ICE/DTLS/SCTP implementation used by the
|
||||||
|
# GUI WebRTC camera controller. Keep the source revision fixed: the signaling
|
||||||
|
# protocol is evolving independently of this transport dependency.
|
||||||
|
#
|
||||||
|
# It vendors plog, usrsctp and libjuice as git submodules, which a plain
|
||||||
|
# GitHub tag tarball does not include. The flatpak sandbox has no network
|
||||||
|
# access during the build, so there the manifest itself clones the repo
|
||||||
|
# (submodules and all) into the dependency download directory before the
|
||||||
|
# sandbox closes. ExternalProject_Add is pointed at that existing checkout
|
||||||
|
# instead of being given its own network-dependent download method.
|
||||||
|
if (FLATPAK)
|
||||||
|
set(_datachannel_source
|
||||||
|
SOURCE_DIR ${DEP_DOWNLOAD_DIR}/DataChannel
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
set(_datachannel_source
|
||||||
|
GIT_REPOSITORY https://github.com/paullouisageneau/libdatachannel.git
|
||||||
|
GIT_TAG v0.24.5
|
||||||
|
GIT_SHALLOW ON
|
||||||
|
GIT_SUBMODULES_RECURSE ON
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
orcaslicer_add_cmake_project(DataChannel
|
||||||
|
DEPENDS ${OPENSSL_PKG}
|
||||||
|
CMAKE_ARGS
|
||||||
|
-DNO_EXAMPLES=ON
|
||||||
|
-DNO_TESTS=ON
|
||||||
|
-DNO_WEBSOCKET=ON
|
||||||
|
-DNO_MEDIA=ON
|
||||||
|
-DUSE_NICE=OFF
|
||||||
|
-DUSE_SYSTEM_JUICE=OFF
|
||||||
|
-DUSE_SYSTEM_USRSCTP=OFF
|
||||||
|
-DOPENSSL_ROOT_DIR:PATH=${DESTDIR}
|
||||||
|
-DOPENSSL_USE_STATIC_LIBS=ON
|
||||||
|
${_datachannel_source}
|
||||||
|
)
|
||||||
Vendored
+23
-7
@@ -1,14 +1,26 @@
|
|||||||
set(_conf_cmd ./configure)
|
set(_conf_cmd ./configure)
|
||||||
|
|
||||||
|
set(_ffmpeg_depends)
|
||||||
|
set(_ffmpeg_configure_command ${_conf_cmd})
|
||||||
|
if (TARGET dep_OpenSSL)
|
||||||
|
set(_ffmpeg_depends DEPENDS dep_OpenSSL)
|
||||||
|
set(_ffmpeg_configure_command
|
||||||
|
${CMAKE_COMMAND} -E env
|
||||||
|
"PKG_CONFIG_PATH=${DESTDIR}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}"
|
||||||
|
${_conf_cmd}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set(_source_dir "${CMAKE_BINARY_DIR}/dep_FFMPEG-prefix/src/dep_FFMPEG")
|
set(_source_dir "${CMAKE_BINARY_DIR}/dep_FFMPEG-prefix/src/dep_FFMPEG")
|
||||||
|
|
||||||
set(PREBUILD_URL_arm64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-07-17-14-28/ffmpeg-n7.0.3-31-g9b6ffd74b5-winarm64-orca-shared-7.0.zip")
|
set(PREBUILD_URL_arm64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-09-18-16-50/ffmpeg-n7.0.3-33-g887d4b4919-winarm64-orca-shared-7.0.zip")
|
||||||
set(PREBUILD_HASH_arm64 "12f4140279f2f8469885e1b5b2e8be9d788882914c21523cacd56989f3548054")
|
set(PREBUILD_HASH_arm64 "da480cbb39680056de824c57ec4dc3bd577b479ebbc310ff1f9dc55cf014b4c1")
|
||||||
set(PREBUILD_URL_x64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-07-17-14-28/ffmpeg-n7.0.3-31-g9b6ffd74b5-win64-orca-shared-7.0.zip")
|
set(PREBUILD_URL_x64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-09-18-16-50/ffmpeg-n7.0.3-33-g887d4b4919-win64-orca-shared-7.0.zip")
|
||||||
set(PREBUILD_HASH_x64 "e65916020ddb9ef84b2666dfbcbfc9b1d67f69d15b4a66db53754637bf2d498c")
|
set(PREBUILD_HASH_x64 "85da19daf198f5548259d8aabb349db84997a3f6e6886d8d7764114add9c6dae")
|
||||||
|
|
||||||
ExternalProject_Add(dep_FFMPEG
|
ExternalProject_Add(dep_FFMPEG
|
||||||
|
${_ffmpeg_depends}
|
||||||
URL ${PREBUILD_URL_${DEPS_ARCH}}
|
URL ${PREBUILD_URL_${DEPS_ARCH}}
|
||||||
URL_HASH SHA256=${PREBUILD_HASH_${DEPS_ARCH}}
|
URL_HASH SHA256=${PREBUILD_HASH_${DEPS_ARCH}}
|
||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
|
||||||
@@ -21,6 +33,8 @@ if (MSVC)
|
|||||||
)
|
)
|
||||||
|
|
||||||
else ()
|
else ()
|
||||||
|
set(_openssl_cmd --enable-openssl)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(_minos_cmd
|
set(_minos_cmd
|
||||||
"--extra-cflags=-mmacosx-version-min=${DEP_OSX_TARGET}"
|
"--extra-cflags=-mmacosx-version-min=${DEP_OSX_TARGET}"
|
||||||
@@ -52,10 +66,11 @@ else ()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(dep_FFMPEG
|
ExternalProject_Add(dep_FFMPEG
|
||||||
|
${_ffmpeg_depends}
|
||||||
URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.3.tar.gz
|
URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.3.tar.gz
|
||||||
URL_HASH SHA256=DEEDCABE339165214A3637DF4C86A507AEF0D793CF8774FF68735F4737E8DDBC
|
URL_HASH SHA256=DEEDCABE339165214A3637DF4C86A507AEF0D793CF8774FF68735F4737E8DDBC
|
||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
|
||||||
CONFIGURE_COMMAND ${_conf_cmd}
|
CONFIGURE_COMMAND ${_ffmpeg_configure_command}
|
||||||
${_cross_cmd}
|
${_cross_cmd}
|
||||||
${_pic_cmd}
|
${_pic_cmd}
|
||||||
${_arch_cmd}
|
${_arch_cmd}
|
||||||
@@ -63,20 +78,21 @@ else ()
|
|||||||
"--prefix=${DESTDIR}"
|
"--prefix=${DESTDIR}"
|
||||||
${_link_cmd}
|
${_link_cmd}
|
||||||
${_minos_cmd}
|
${_minos_cmd}
|
||||||
|
${_openssl_cmd}
|
||||||
--disable-doc
|
--disable-doc
|
||||||
--enable-small
|
--enable-small
|
||||||
--disable-outdevs
|
--disable-outdevs
|
||||||
--disable-filters
|
--disable-filters
|
||||||
--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*
|
--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*
|
||||||
--disable-protocols
|
--disable-protocols
|
||||||
--enable-protocol=file,fd,pipe,rtp,udp
|
--enable-protocol=file,fd,pipe,http,https,rtp,tcp,udp
|
||||||
--disable-muxers
|
--disable-muxers
|
||||||
--enable-muxer=rtp
|
--enable-muxer=rtp
|
||||||
--disable-encoders
|
--disable-encoders
|
||||||
--disable-decoders
|
--disable-decoders
|
||||||
--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*
|
--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*
|
||||||
--disable-demuxers
|
--disable-demuxers
|
||||||
--enable-demuxer=h264,mp3,mov
|
--enable-demuxer=h264,mp3,mov,mpjpeg,rtsp,sdp
|
||||||
--disable-zlib
|
--disable-zlib
|
||||||
--disable-avdevice
|
--disable-avdevice
|
||||||
BUILD_IN_SOURCE ON
|
BUILD_IN_SOURCE ON
|
||||||
|
|||||||
@@ -1,220 +0,0 @@
|
|||||||
# Deferred Page Construction: High Level Design
|
|
||||||
|
|
||||||
## Why it exists
|
|
||||||
|
|
||||||
The main window is a notebook of tabs. When the first frame appears, one tab is on
|
|
||||||
screen and the others are not; some of them are opened later in the session, some
|
|
||||||
never, and some only exist for certain printers. Building a tab before the first frame
|
|
||||||
adds its cost to every startup, whether or not the tab is used.
|
|
||||||
|
|
||||||
This subsystem builds a tab's panel the first time the tab is shown. It also builds the
|
|
||||||
remaining tabs while the user is idle after startup, in units of tens of milliseconds,
|
|
||||||
so a click that lands in the middle of one waits for that unit and no longer. Startup
|
|
||||||
pays only for what the first frame shows, and the other tabs are usually built before
|
|
||||||
anyone opens them.
|
|
||||||
|
|
||||||
## The parts
|
|
||||||
|
|
||||||
`src/slic3r/GUI/Lazy.hpp`, `LazyPage.hpp`, `StagedBuild.hpp` and `IdleScheduler.hpp/.cpp`
|
|
||||||
(with its wx-free `PrebuildQueue.hpp`) are independent. A holder can hold anything a
|
|
||||||
factory makes, a page is a holder with a placeholder widget, a staged object can live
|
|
||||||
outside a holder, and the scheduler knows none of them; it runs tasks, which `MainFrame`
|
|
||||||
makes from the holders.
|
|
||||||
|
|
||||||
### Lazy<T>: the holder
|
|
||||||
|
|
||||||
Holds an object that a factory makes on first use, under a name for the log and a place
|
|
||||||
in the idle queue, both given by the owner. The header has no wx dependency; the busy
|
|
||||||
cursor for an on-demand build lives in `Lazy.cpp` and is skipped when there is no app,
|
|
||||||
so the holder is unit-tested.
|
|
||||||
|
|
||||||
- `get()` is null until the object is completely built; `built()` says the same.
|
|
||||||
- `ensure()` builds whatever is left now, under a busy cursor, and returns the object, or
|
|
||||||
null in the two cases below. A click on an unbuilt tab or a first open of a dialog goes
|
|
||||||
through this, and it logs the units and time it took.
|
|
||||||
- `build_step()` runs one unit of construction and returns true while more remain. The
|
|
||||||
first unit is the factory call, and each later unit is one `StagedBuild` step if the
|
|
||||||
type has them.
|
|
||||||
- `when_built(fn)` runs `fn(object)` now if it exists, otherwise once it is built.
|
|
||||||
- `pending()` says whether the idle prebuild has work here: not built, and the factory
|
|
||||||
has not returned null. A null factory result is logged and the holder stays unbuilt.
|
|
||||||
- A unit that pumps the event loop cannot re-enter the holder; a nested `build_step()`
|
|
||||||
does nothing and a nested `ensure()` returns null.
|
|
||||||
- After a unit throws, the holder and the scheduler still run the next one.
|
|
||||||
|
|
||||||
The holder does not own the object; its wx parent does, as for any window. A type with
|
|
||||||
one instance in the app derives from `LazyInstance<T>`, which points at that instance's
|
|
||||||
holder (the holder registers itself, and a recreated `MainFrame`'s holder replaces the
|
|
||||||
old frame's) and gives the type the static entry points the rest of the app uses,
|
|
||||||
`T::if_built()`, `T::ensure()` and `T::when_built(fn)`. They return null, or do
|
|
||||||
nothing, while no holder exists, so a caller needs no `mainframe` check.
|
|
||||||
|
|
||||||
`built()` is an atomic flag, since a job worker reads it through the statics
|
|
||||||
(`MainFrame::get_calibration_curr_tab()`); it is set after the object is complete.
|
|
||||||
|
|
||||||
`LazyBase` is the holder's type-free interface (`name()`, `built()`, `pending()`,
|
|
||||||
`build_step()`, `prebuild_order()`) and is what the scheduler side sees.
|
|
||||||
|
|
||||||
### LazyPage<Panel>: the placeholder
|
|
||||||
|
|
||||||
A `wxPanel` placed in the parent in place of the real panel, and a `Lazy<Panel>` whose
|
|
||||||
factory makes the panel inside it (by default `new Panel(parent)`). The notebook needs a
|
|
||||||
page object for the tab to exist and for `show_device()` to insert and remove tabs by
|
|
||||||
pointer, and the placeholder is that object. `MainFrame` creates every page once, named
|
|
||||||
after its `TAB_ID_*`, and keeps it for the frame's life; `show_device()` only moves
|
|
||||||
pages in and out of the book.
|
|
||||||
|
|
||||||
- `Show()` is forwarded to the panel, so a panel's own `Show()` override stays its
|
|
||||||
activation hook (refresh timers, machine sync) and `SelectPageByName()` works
|
|
||||||
unchanged. A show builds the panel unless the frame itself is still hidden, because
|
|
||||||
the book selects its first page as it is inserted; `MainFrame::Show()` shows the
|
|
||||||
current page again when the frame becomes visible, which builds it.
|
|
||||||
- `in_book()` says whether the parent notebook currently lists the page, and
|
|
||||||
`pending()` is that and not built, so a tab `show_device()` has taken out of the book
|
|
||||||
is not prebuilt.
|
|
||||||
- A panel built while its page is hidden stays hidden, and a completed panel gets the
|
|
||||||
dark-mode pass the frame ran before it existed.
|
|
||||||
|
|
||||||
The Compare presets dialog is a holder without a page. `MainFrame` keeps a
|
|
||||||
`Lazy<DiffPresetDialog>` whose factory constructs the dialog and binds its events, the
|
|
||||||
dialog derives from `LazyInstance`, and its callers use
|
|
||||||
`DiffPresetDialog::ensure()->show()` and `DiffPresetDialog::if_built()` like a tab's
|
|
||||||
callers do. Saving a preset refreshes the dialog only while it is shown, since `show()`
|
|
||||||
reloads the presets.
|
|
||||||
|
|
||||||
### StagedBuild: construction in units
|
|
||||||
|
|
||||||
A mixin for a panel whose constructor is too big to be one unit. The constructor builds
|
|
||||||
the skeleton (sizers, and the parts other code may touch) and queues the rest with
|
|
||||||
`add_build_step()`. `build_step()` runs one step, and `add_build_steps_of(child)`
|
|
||||||
forwards a child's steps so a nested panel is spread the same way; the parent is built
|
|
||||||
only once the child is, including steps the child queues later. Steps run in order, on
|
|
||||||
the main thread. A `Lazy<T>` recognises a staged type at compile time and runs its steps
|
|
||||||
one per unit.
|
|
||||||
|
|
||||||
Nothing may touch what a step builds before the last step has run. In practice:
|
|
||||||
|
|
||||||
- nothing paints the panel before it is complete, since a panel built at idle is hidden
|
|
||||||
with its page and one built on demand finishes inside `ensure()` before the event loop
|
|
||||||
runs again;
|
|
||||||
- members created in steps are initialised to null in the header, so a partially built
|
|
||||||
panel can be destroyed;
|
|
||||||
- timers and event handlers that use step content check `built()` first
|
|
||||||
(`MonitorPanel::update_all()`, `CalibrationPanel::update_all()`), and a child's steps
|
|
||||||
are queued before anything in the constructor can fire such a handler;
|
|
||||||
- a destructor that disconnects from step content checks `built()` first;
|
|
||||||
- a constructor or step does not take focus while the panel is off screen
|
|
||||||
(`IsShownOnScreen()` before `SetFocus()`), since it may run while the user is typing
|
|
||||||
elsewhere;
|
|
||||||
- where a step's widgets must keep their place in a sizer that later steps also fill, the
|
|
||||||
constructor adds an empty slot sizer in that position and the step fills the slot
|
|
||||||
(`StatusBasePanel`).
|
|
||||||
|
|
||||||
### IdleScheduler: when to build
|
|
||||||
|
|
||||||
A task is any `LazyBase`: a name for the log, `pending()`, `build_step()` and
|
|
||||||
`prebuild_order()`. `PrebuildQueue` holds the tasks by order (equal order in the order
|
|
||||||
added) and runs a slice, the units of the first pending task until it completes, the
|
|
||||||
budget is spent on the clock it is given, or the interrupt predicate says input arrived.
|
|
||||||
It has no wx dependency and is unit-tested with a fake clock. A task whose work is gone
|
|
||||||
is passed over and stays in the queue, so a tab that `show_device()` removes and later
|
|
||||||
re-inserts is pending again.
|
|
||||||
|
|
||||||
`IdleScheduler` drives the queue with the real clock, the app's input timestamp and the
|
|
||||||
Windows queue check, and logs each unit and slice. Each slice is a timer message: a
|
|
||||||
period of 250 ms while waiting for the user to go quiet, and a one-shot of zero after a
|
|
||||||
slice that left work, so the event loop dispatches whatever it has queued (paint,
|
|
||||||
timers, input) before the next slice runs. Chaining slices with `CallAfter` would not do
|
|
||||||
this: wx drains pending events fully before the next native message, on every platform.
|
|
||||||
On GTK the one-shot is 5 ms, because a due GLib timeout runs ahead of the redraw and
|
|
||||||
idle sources that paint and deliver posted events.
|
|
||||||
A slice runs only once the user has been idle for the quiet time, and the timer stops
|
|
||||||
itself once no task is pending. The tick period, quiet time and slice length are
|
|
||||||
constants in `IdleScheduler.cpp`. A unit cannot be interrupted once started, so the
|
|
||||||
largest unit bounds click latency on Windows; on the other platforms a click also waits
|
|
||||||
for the rest of the slice. A unit that pumps the event loop lets the timer fire inside
|
|
||||||
its own slice, and that tick does nothing.
|
|
||||||
|
|
||||||
The tasks are made by their owners. `MainFrame::prebuild_pages_when_idle()` registers
|
|
||||||
every `LazyPage` the frame created, in or out of the book (`pending()` is false for a
|
|
||||||
page out of the book), the Compare presets holder, and the Prepare sidebar's settings
|
|
||||||
page from `ParamsPanel::settings_page_prebuild()`, whose first unit selects the default
|
|
||||||
tab if none is selected yet and whose later units build one option group each.
|
|
||||||
`show_device()` only restarts the timer. `MainFrame` owns the scheduler because it owns
|
|
||||||
everything the tasks build, and clearing the queue with the frame is what keeps a task
|
|
||||||
from outliving its object.
|
|
||||||
|
|
||||||
Idle time comes from `GUI_App::FilterEvent`, which timestamps mouse and keyboard events
|
|
||||||
(`wxEVT_CATEGORY_USER_INPUT` minus command events, which all claim that category), and
|
|
||||||
`GUI_App::input_idle_ms()` reports it. On Windows a slice additionally refuses to start
|
|
||||||
when the message queue holds keyboard, button, touch or pen input. Mouse moves are
|
|
||||||
excluded because Windows synthesises one whenever a window appears under the cursor,
|
|
||||||
which every unit does. Other platforms use the timestamp alone.
|
|
||||||
|
|
||||||
Once every registered page is built the timer is stopped and the subsystem costs
|
|
||||||
nothing.
|
|
||||||
|
|
||||||
## Rules
|
|
||||||
|
|
||||||
**What builds before the first frame.** The Prepare tab's plater, because `post_init()`
|
|
||||||
needs its GL canvas on screen to initialise OpenGL in every startup state, and the start
|
|
||||||
page the user configured. Home is built by the first `MainFrame::Show()`, Prepare's
|
|
||||||
settings page by selecting the tab. `post_init()` passes through the Prepare tab for GL
|
|
||||||
init under `Freeze()` with `MainFrame::select_prepare_for_gl_init()`, which changes the
|
|
||||||
selection without the page-changed event, so nothing else is built for that pass.
|
|
||||||
|
|
||||||
**Reaching a lazy object.** A caller uses the type's own statics. `T::if_built()` may
|
|
||||||
return null and is for telling the object something it can live without (a rescale, a
|
|
||||||
colour change, a status update). `T::ensure()` builds the object and is for navigating
|
|
||||||
to it or for a caller that is about to show it. A caller that tells the object something
|
|
||||||
it would not fetch for itself on construction uses `T::when_built()`, which keeps the
|
|
||||||
message until the object exists. A panel that pulls its state when constructed (the Home
|
|
||||||
page requests the recent list on load, the Device tab reads the device manager on show)
|
|
||||||
is reached with `if_built()`; one that cannot pull gets `when_built()`.
|
|
||||||
|
|
||||||
**Unit size.** A unit cannot be interrupted, so it should stay within the slice length on
|
|
||||||
a fast machine. A constructor above that is staged. A single widget above it is the
|
|
||||||
floor unless the widget itself is split.
|
|
||||||
|
|
||||||
**Order.** Cheapest and most likely to be opened first, given where `MainFrame` creates
|
|
||||||
each holder. The settings page is 0 (the Prepare tab's own content), Home 10, Device 20
|
|
||||||
(a Bambu user's usual second stop), Calibration 30, Multi-device 40, the web Device
|
|
||||||
view 50, Project 60 (a second WebView2 instance) and the Compare presets dialog 100;
|
|
||||||
steps of ten so a new tab takes a value between its neighbours without renumbering
|
|
||||||
them. `MainFrame::prebuild_pages_when_idle()` registers the tasks once, from
|
|
||||||
`post_init()`.
|
|
||||||
|
|
||||||
**Never prebuilt.** A holder with a negative order, for a tab that few sessions open
|
|
||||||
and that costs more to build unasked than it saves (the Design tab), and plugin-provided
|
|
||||||
tabs, which are Python-side and not lazy pages.
|
|
||||||
|
|
||||||
## Adopting it
|
|
||||||
|
|
||||||
A lazy tab needs:
|
|
||||||
|
|
||||||
1. The panel derived from `LazyInstance<Panel>`, since a tab's panel has one instance.
|
|
||||||
2. A `LazyPage<Panel>*` member in `MainFrame`, created once in `init_tabpanel()` with
|
|
||||||
its `TAB_ID_*` as the name, its place by the order rule (and a factory if
|
|
||||||
`new Panel(parent)` is not enough), added to `m_lazy_pages`, and used wherever the
|
|
||||||
tab is added to or looked up in the notebook.
|
|
||||||
3. Every use of the panel outside `MainFrame` going through one of the panel's statics,
|
|
||||||
chosen by the rule above. When converting an existing member, `grep` for it; the
|
|
||||||
compiler finds the rest.
|
|
||||||
4. A constructor that copes with the frame already existing and the user being busy
|
|
||||||
elsewhere, since `wxGetApp().mainframe` is set, the frame may be shown, and the user
|
|
||||||
may be typing when a lazy panel is built: no `SetFocus()` while off screen, and
|
|
||||||
whatever the constructor did through a `MainFrame` accessor before (a mode update, a
|
|
||||||
deferred URL) done in the constructor itself.
|
|
||||||
|
|
||||||
To stage a heavy constructor, inherit `StagedBuild`, keep the skeleton in the constructor,
|
|
||||||
move the rest into `add_build_step()` lambdas in the original order, and follow the
|
|
||||||
staged-panel rules above. Measure the units. A step that is still one big widget has to
|
|
||||||
be split inside that widget or accepted as the floor.
|
|
||||||
|
|
||||||
Verification is by log. `MainFrame::prebuild_pages_when_idle` lists the queue it
|
|
||||||
registered, `IdleScheduler::tick` reports each completed task by name at info level and
|
|
||||||
each slice and unit at debug level, and `Lazy::ensure` reports an object a user built
|
|
||||||
on demand with the units and time it took. A run from the configured start
|
|
||||||
page shows every registered page complete, in order, with no unit longer than intended.
|
|
||||||
A click on a tab mid-prebuild shows the finished panel with an `ensure` line for what was
|
|
||||||
left, and the slices resume for the remaining tasks once the user is idle again.
|
|
||||||
@@ -0,0 +1,240 @@
|
|||||||
|
# Printer agents
|
||||||
|
|
||||||
|
Printer agents isolate printer-specific communication from the rest of OrcaSlicer. The GUI and
|
||||||
|
`DeviceManager` operate on a shared set of printer operations and device state; a selected printer
|
||||||
|
agent implements those operations for a particular printer ecosystem. The agent boundary allows
|
||||||
|
Bambu, Moonraker-based printers, built-in integrations, and Python-provided integrations to use the
|
||||||
|
same application workflow without making the GUI understand every printer protocol.
|
||||||
|
|
||||||
|
The current boundary is an adapter boundary around the existing application contract. In particular,
|
||||||
|
some request fields and message payloads still use the Bambu-shaped representation that existing
|
||||||
|
`MachineObject` and `DeviceManager` code consumes. The printer agent is responsible for translating
|
||||||
|
that representation into the protocol spoken by its printer. This is an intentional compatibility
|
||||||
|
constraint of the current design; the interface is not yet a neutral printer protocol.
|
||||||
|
|
||||||
|
The v1 dialect migration path is deliberately narrow. `DeviceManager` currently speaks the Bambu JSON
|
||||||
|
dialect because that is the payload shape already used throughout the command and state workflow. The
|
||||||
|
v1 `OrcaPrinterAgent` also accepts that Bambu dialect. Its transport path places the small translation
|
||||||
|
needed for the target printer at `deliver_to_sink`, keeping the compatibility code at the edge rather
|
||||||
|
than spreading it through `DeviceManager` or the agent interface.
|
||||||
|
|
||||||
|
The eventual direction is for `DeviceManager` to produce an Orca JSON dialect. The Bambu agent will then
|
||||||
|
own the translation from Orca JSON to Bambu's protocol, while `OrcaPrinterAgent` can forward the Orca
|
||||||
|
payload directly to its sink. The v1 translation at `deliver_to_sink` can then be removed without
|
||||||
|
changing `DeviceManager`, the command callers, or the rest of the agent workflow.
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
The system has four relevant layers:
|
||||||
|
|
||||||
|
```text
|
||||||
|
GUI / DeviceManager / MachineObject
|
||||||
|
|
|
||||||
|
NetworkAgent
|
||||||
|
/ \
|
||||||
|
IPrinterAgent ICloudServiceAgent
|
||||||
|
| |
|
||||||
|
printer protocol authentication and cloud services
|
||||||
|
```
|
||||||
|
|
||||||
|
### `DeviceManager` and `MachineObject`
|
||||||
|
|
||||||
|
`DeviceManager` owns the application-facing printer workflow. It maintains `MachineObject` instances,
|
||||||
|
updates their state, filters devices for the active printer agent, and initiates operations such as
|
||||||
|
homing, temperature changes, printing, subscriptions, and camera playback.
|
||||||
|
|
||||||
|
`MachineObject` remains the shared state model used by the GUI. It does not contain the implementation
|
||||||
|
of a printer protocol. When a device is discovered or returned by a cloud query, the device is tagged
|
||||||
|
with the active `printer_agent_id`. Device lists and selected-machine operations use that tag to avoid
|
||||||
|
sending an operation through an agent that does not own the device.
|
||||||
|
|
||||||
|
### `NetworkAgent`
|
||||||
|
|
||||||
|
`NetworkAgent` is the façade used by the GUI and `DeviceManager`. It owns:
|
||||||
|
|
||||||
|
- the currently selected `IPrinterAgent`;
|
||||||
|
- the registered cloud-service instances, indexed by provider;
|
||||||
|
- callbacks shared by the active printer agent and the application;
|
||||||
|
- the forwarding methods for printer commands and cloud operations.
|
||||||
|
|
||||||
|
There is one active printer agent for the currently selected printer preset. Switching the preset
|
||||||
|
increments the machine-list generation, disconnects the old printer agent, removes its callbacks, and
|
||||||
|
installs the newly selected agent. The façade then forwards printer operations to that agent.
|
||||||
|
|
||||||
|
Cloud operations are selected separately using a provider key. `NetworkAgent` forwards a cloud request
|
||||||
|
to the matching `ICloudServiceAgent`, and forwards cloud camera operations with a device ID. The
|
||||||
|
printer agent receives a cloud-agent pointer through `set_cloud_agent()` when it is created, allowing
|
||||||
|
printer communication to obtain cloud tokens without depending on a concrete cloud implementation.
|
||||||
|
|
||||||
|
### `IPrinterAgent`
|
||||||
|
|
||||||
|
`IPrinterAgent` is the printer-facing contract. It covers:
|
||||||
|
|
||||||
|
- cloud-relay and direct-LAN message delivery;
|
||||||
|
- LAN connection, discovery, binding, and certificates;
|
||||||
|
- printer subscriptions and callbacks;
|
||||||
|
- print operations;
|
||||||
|
- filament synchronization;
|
||||||
|
- camera capability and local camera URL reporting;
|
||||||
|
- printer command methods.
|
||||||
|
|
||||||
|
Concrete built-in implementations include the Bambu wrapper, the native Orca/Moonraker path, and
|
||||||
|
other printer-agent implementations registered by the application. A printer agent may use either
|
||||||
|
the cloud agent, a direct LAN connection, or both.
|
||||||
|
|
||||||
|
### `ICloudServiceAgent`
|
||||||
|
|
||||||
|
`ICloudServiceAgent` owns authentication and services provided by a cloud backend. It covers login
|
||||||
|
state, tokens, user and printer lists, settings synchronization, model services, cloud messages, and
|
||||||
|
cloud camera operations.
|
||||||
|
|
||||||
|
Cloud camera operations are device-scoped:
|
||||||
|
|
||||||
|
- `get_camera_url(dev_id, callback)` obtains a stream URL for one device;
|
||||||
|
- `create_camera_signaling_channel(dev_id)` creates signaling for one device where the provider
|
||||||
|
supports it.
|
||||||
|
|
||||||
|
This is separate from the local camera URL exposed by `IPrinterAgent`, which is currently scoped to
|
||||||
|
the active printer agent because a normal LAN agent represents one physical printer connection.
|
||||||
|
|
||||||
|
## Agent registration and selection
|
||||||
|
|
||||||
|
`NetworkAgentFactory` maintains the printer-agent registry. Each registry entry contains an agent ID,
|
||||||
|
a display name, and a factory function. Built-in agents register during application initialization.
|
||||||
|
Python printer-agent capabilities register dynamically and contribute an agent ID and factory entry.
|
||||||
|
|
||||||
|
The selected printer preset contains the printer-agent choice. If no explicit choice is stored, the
|
||||||
|
application preserves the existing default behavior: Bambu presets select the Bambu agent and other
|
||||||
|
presets select the native Orca agent. When a preset is changed, `GUI_App` resolves the effective agent
|
||||||
|
ID, obtains the corresponding cloud agent, creates the printer agent through the registry, and installs
|
||||||
|
it in `NetworkAgent`.
|
||||||
|
|
||||||
|
The registry rejects conflicting agent IDs. This matters for Python plugins because an agent ID is the
|
||||||
|
stable identity used by presets and device ownership; two enabled plugin capabilities must not claim
|
||||||
|
the same ID.
|
||||||
|
|
||||||
|
## Message and command flow
|
||||||
|
|
||||||
|
There are two low-level message paths:
|
||||||
|
|
||||||
|
- `send_message()` publishes a command through the printer's cloud relay;
|
||||||
|
- `send_message_to_printer()` sends a command directly to the printer over the LAN path.
|
||||||
|
|
||||||
|
Both paths accept a JSON string, quality-of-service and flag values, and return the existing network
|
||||||
|
status code domain. The agent owns the conversion from that JSON contract to its native transport.
|
||||||
|
|
||||||
|
The typed `command_*` methods are the application-facing convenience layer. The five generic defaults
|
||||||
|
currently implemented by `IPrinterAgent` construct the existing JSON dialect and route through the
|
||||||
|
same message path:
|
||||||
|
|
||||||
|
| Method | Default operation |
|
||||||
|
| --- | --- |
|
||||||
|
| `command_xyz_abs()` | Send `G90` for absolute positioning |
|
||||||
|
| `command_auto_leveling()` | Send `G29` for bed leveling |
|
||||||
|
| `command_go_home()` | Use the supported homing operation or send `G28` |
|
||||||
|
| `command_set_bed()` | Use the supported bed control or send `M140` |
|
||||||
|
| `command_set_nozzle()` | Send `M104` for nozzle temperature |
|
||||||
|
|
||||||
|
These are compatibility defaults for common printer workflows, not a guarantee that every firmware
|
||||||
|
implements every command identically. An agent can override a method when its protocol needs another
|
||||||
|
operation. For example, a Klipper configuration may use `BED_MESH_CALIBRATE` instead of `G29`.
|
||||||
|
|
||||||
|
The remaining common command methods default to `ORCA_NETWORK_ERR_CMD_NOT_SUPPORTED` because their
|
||||||
|
existing behavior is vendor-specific or has no portable implementation:
|
||||||
|
|
||||||
|
- AMS RFID refresh;
|
||||||
|
- AMS calibration;
|
||||||
|
- AMS tray selection;
|
||||||
|
- camera start;
|
||||||
|
- axis control.
|
||||||
|
|
||||||
|
The methods remain on the common interface so an agent that supports them can override them explicitly.
|
||||||
|
`sequence_id` remains part of the command contract because `DeviceManager` creates and tracks it as
|
||||||
|
the command ID.
|
||||||
|
|
||||||
|
## Device ownership and stale responses
|
||||||
|
|
||||||
|
Printer-agent ownership is represented by `printer_agent_id` on device records and `MachineObject`
|
||||||
|
instances. The active agent ID is attached when a device is discovered, returned by a cloud list, or
|
||||||
|
reused after a preset switch. Local-machine configuration also persists the agent ID so a saved LAN
|
||||||
|
device is not silently reused by an unrelated agent.
|
||||||
|
|
||||||
|
Cloud printer-list responses carry three pieces of request context added by `NetworkAgent`:
|
||||||
|
|
||||||
|
```text
|
||||||
|
provider cloud provider used for the request
|
||||||
|
agent_id active printer agent when the request was made
|
||||||
|
generation machine-list generation when the request was made
|
||||||
|
```
|
||||||
|
|
||||||
|
`DeviceManager` accepts the response only when those values still match the current provider, active
|
||||||
|
agent, and generation. This prevents a slow response from the previous preset or provider from
|
||||||
|
repopulating the current device list.
|
||||||
|
|
||||||
|
The provider mapping is currently selected by `GUI_App`: the Bambu agent maps to the Bambu cloud
|
||||||
|
provider and other agents map to the Orca cloud provider. The generation check protects that existing
|
||||||
|
selection from races; it does not make cloud-provider ownership intrinsic to an agent. Cloud-printer
|
||||||
|
ownership and the broader Orca cloud services are therefore still separate architectural concerns.
|
||||||
|
|
||||||
|
## Python printer agents
|
||||||
|
|
||||||
|
`PrinterAgentPluginCapability` implements `IPrinterAgent` directly. The live capability object is
|
||||||
|
registered with `NetworkAgentFactory` and handed out as the printer agent when its agent ID is selected.
|
||||||
|
The plugin receives the selected `ICloudServiceAgent` through `set_cloud_agent()` just like a built-in
|
||||||
|
printer agent.
|
||||||
|
|
||||||
|
Python plugins must implement the core communication and lifecycle methods required by the interface,
|
||||||
|
including agent metadata, printer connection, discovery callbacks, and the two message-send methods.
|
||||||
|
Methods that are meaningful only to a particular printer are optional overrides where the C++ base
|
||||||
|
class provides a default.
|
||||||
|
|
||||||
|
All ten `command_*` methods are available in the Python binding and in the trampoline. Their override
|
||||||
|
status is intentionally optional:
|
||||||
|
|
||||||
|
- the five generic commands use the C++ default when Python does not override them;
|
||||||
|
- the five vendor-specific commands return `NOT_SUPPORTED` unless Python supplies an implementation;
|
||||||
|
- a Python implementation can replace either behavior for its own protocol.
|
||||||
|
|
||||||
|
The Python camera binding exposes HTTP, HTTPS, RTSP, and HTTP-snapshot modes. WebRTC remains a
|
||||||
|
built-in C++ camera mode, but is not exposed as a Python mode because the current Python capability
|
||||||
|
does not provide the corresponding cloud signaling-channel contract.
|
||||||
|
|
||||||
|
## Camera playback boundary
|
||||||
|
|
||||||
|
The camera stream mode describes how a stream is obtained; it does not by itself define ownership of
|
||||||
|
the wxWidgets view that renders it. `MediaPlayCtrl` selects and tears down the active backend, while
|
||||||
|
the wx parent owns the child window or renderer. This is important because a web view, native media
|
||||||
|
control, and frame-based/WebRTC renderer have different wx window-lifetime requirements.
|
||||||
|
|
||||||
|
Cloud URL and signaling requests are routed through `NetworkAgent` to the cloud provider selected for
|
||||||
|
the device. Local URL requests are routed to the active printer agent. The distinction keeps cloud
|
||||||
|
account services device-scoped while preserving the current one-LAN-agent/one-printer model.
|
||||||
|
|
||||||
|
## Compatibility constraints
|
||||||
|
|
||||||
|
The printer-agent boundary intentionally preserves several existing application contracts:
|
||||||
|
|
||||||
|
- Bambu-shaped JSON is still the shared command representation;
|
||||||
|
- existing network status codes are reused, with Orca-specific unsupported/capability errors added
|
||||||
|
in the Orca-reserved range;
|
||||||
|
- `MachineObject` remains the shared device-state model;
|
||||||
|
- preset and local-machine data retain compatibility with the existing agent-selection behavior;
|
||||||
|
- Python plugins use the existing capability and pybind11 registration system.
|
||||||
|
|
||||||
|
The agent abstraction is therefore responsible for containing vendor differences, not for pretending
|
||||||
|
that all vendor protocols are identical. The planned Orca JSON dialect is the protocol-neutral command
|
||||||
|
model for the `DeviceManager`/agent boundary. Once it is introduced, Bambu-specific translation remains
|
||||||
|
inside the Bambu agent and the Orca agent's v1 sink adapter can be removed as a self-contained cleanup.
|
||||||
|
|
||||||
|
## Main implementation locations
|
||||||
|
|
||||||
|
- [`IPrinterAgent`](../../src/slic3r/Utils/IPrinterAgent.hpp) — printer-agent contract and generic command defaults
|
||||||
|
- [`ICloudServiceAgent`](../../src/slic3r/Utils/ICloudServiceAgent.hpp) — cloud service and per-device
|
||||||
|
cloud camera contract
|
||||||
|
- [`NetworkAgent`](../../src/slic3r/Utils/NetworkAgent.hpp) — façade and dispatch between active agents
|
||||||
|
- [`NetworkAgentFactory`](../../src/slic3r/Utils/NetworkAgentFactory.hpp) — built-in and Python agent registry
|
||||||
|
- [`DeviceManager`](../../src/slic3r/GUI/DeviceCore/DevManager.cpp) — device ownership, filtering, and
|
||||||
|
stale-response checks
|
||||||
|
- [`PrinterAgentPluginCapability`](../../src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapability.cpp)
|
||||||
|
— Python bindings
|
||||||
|
- [`MediaPlayCtrl`](../../src/slic3r/GUI/MediaPlayCtrl.cpp) — camera backend selection and playback lifecycle
|
||||||
+17
-121
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Sovol",
|
"name": "Sovol",
|
||||||
"url": "",
|
"url": "",
|
||||||
"version": "02.04.00.07",
|
"version": "02.04.00.04",
|
||||||
"force_update": "0",
|
"force_update": "0",
|
||||||
"description": "Sovol configurations",
|
"description": "Sovol configurations",
|
||||||
"machine_model_list": [
|
"machine_model_list": [
|
||||||
@@ -167,6 +167,10 @@
|
|||||||
"name": "0.20mm Standard @Sovol SV08 MAX 0.4 nozzle",
|
"name": "0.20mm Standard @Sovol SV08 MAX 0.4 nozzle",
|
||||||
"sub_path": "process/0.20mm Standard @Sovol SV08 MAX 0.4 nozzle.json"
|
"sub_path": "process/0.20mm Standard @Sovol SV08 MAX 0.4 nozzle.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm Standard @Sovol Zero 0.4 nozzle",
|
||||||
|
"sub_path": "process/0.20mm Standard @Sovol Zero 0.4 nozzle.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "0.28mm Fast @Sovol SV06 ACE",
|
"name": "0.28mm Fast @Sovol SV06 ACE",
|
||||||
"sub_path": "process/0.28mm Fast @Sovol SV06 ACE 0.4 nozzle.json"
|
"sub_path": "process/0.28mm Fast @Sovol SV06 ACE 0.4 nozzle.json"
|
||||||
@@ -194,74 +198,6 @@
|
|||||||
{
|
{
|
||||||
"name": "0.40mm Standard @Sovol SV08 MAX 0.8 nozzle",
|
"name": "0.40mm Standard @Sovol SV08 MAX 0.8 nozzle",
|
||||||
"sub_path": "process/0.40mm Standard @Sovol SV08 MAX 0.8 nozzle.json"
|
"sub_path": "process/0.40mm Standard @Sovol SV08 MAX 0.8 nozzle.json"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fdm_process_zero",
|
|
||||||
"sub_path": "process/fdm_process_zero.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.06mm Quality @Sovol Zero 0.2 nozzle",
|
|
||||||
"sub_path": "process/0.06mm Quality @Sovol Zero 0.2 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.10mm Standard @Sovol Zero 0.2 nozzle",
|
|
||||||
"sub_path": "process/0.10mm Standard @Sovol Zero 0.2 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.12mm Quality @Sovol Zero 0.4 nozzle",
|
|
||||||
"sub_path": "process/0.12mm Quality @Sovol Zero 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.14mm Fast @Sovol Zero 0.2 nozzle",
|
|
||||||
"sub_path": "process/0.14mm Fast @Sovol Zero 0.2 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.15mm Quality @Sovol Zero 0.6 nozzle",
|
|
||||||
"sub_path": "process/0.15mm Quality @Sovol Zero 0.6 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.20mm Quality @Sovol Zero 0.8 nozzle",
|
|
||||||
"sub_path": "process/0.20mm Quality @Sovol Zero 0.8 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.20mm Standard @Sovol Zero 0.4 nozzle",
|
|
||||||
"sub_path": "process/0.20mm Standard @Sovol Zero 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.25mm Quality @Sovol Zero 1.0 nozzle",
|
|
||||||
"sub_path": "process/0.25mm Quality @Sovol Zero 1.0 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.25mm SPEEDBENCHY @Sovol Zero 0.4 nozzle",
|
|
||||||
"sub_path": "process/0.25mm SPEEDBENCHY @Sovol Zero 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.28mm Fast @Sovol Zero 0.4 nozzle",
|
|
||||||
"sub_path": "process/0.28mm Fast @Sovol Zero 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.30mm Standard @Sovol Zero 0.6 nozzle",
|
|
||||||
"sub_path": "process/0.30mm Standard @Sovol Zero 0.6 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.40mm Standard @Sovol Zero 0.8 nozzle",
|
|
||||||
"sub_path": "process/0.40mm Standard @Sovol Zero 0.8 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.42mm Fast @Sovol Zero 0.6 nozzle",
|
|
||||||
"sub_path": "process/0.42mm Fast @Sovol Zero 0.6 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.50mm Standard @Sovol Zero 1.0 nozzle",
|
|
||||||
"sub_path": "process/0.50mm Standard @Sovol Zero 1.0 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.56mm Fast @Sovol Zero 0.8 nozzle",
|
|
||||||
"sub_path": "process/0.56mm Fast @Sovol Zero 0.8 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.70mm Fast @Sovol Zero 1.0 nozzle",
|
|
||||||
"sub_path": "process/0.70mm Fast @Sovol Zero 1.0 nozzle.json"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filament_list": [
|
"filament_list": [
|
||||||
@@ -313,10 +249,6 @@
|
|||||||
"name": "Generic PETG @Sovol Zero",
|
"name": "Generic PETG @Sovol Zero",
|
||||||
"sub_path": "filament/Generic PETG @Sovol Zero.json"
|
"sub_path": "filament/Generic PETG @Sovol Zero.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Generic PETG @Sovol Zero Hardened Steel nozzle",
|
|
||||||
"sub_path": "filament/Generic PETG @Sovol Zero Hardened Steel nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Generic PLA @Sovol SV06 ACE",
|
"name": "Generic PLA @Sovol SV06 ACE",
|
||||||
"sub_path": "filament/Generic PLA @Sovol SV06 ACE.json"
|
"sub_path": "filament/Generic PLA @Sovol SV06 ACE.json"
|
||||||
@@ -345,14 +277,6 @@
|
|||||||
"name": "Generic PLA @Sovol Zero",
|
"name": "Generic PLA @Sovol Zero",
|
||||||
"sub_path": "filament/Generic PLA @Sovol Zero.json"
|
"sub_path": "filament/Generic PLA @Sovol Zero.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Generic PLA @Sovol Zero Hardened Steel nozzle",
|
|
||||||
"sub_path": "filament/Generic PLA @Sovol Zero Hardened Steel nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Generic PLA SPEEDBENCHY @Sovol Zero",
|
|
||||||
"sub_path": "filament/Generic PLA SPEEDBENCHY @Sovol Zero.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Generic PLA Silk @Sovol SV08 MAX",
|
"name": "Generic PLA Silk @Sovol SV08 MAX",
|
||||||
"sub_path": "filament/Generic PLA Silk @Sovol SV08 MAX.json"
|
"sub_path": "filament/Generic PLA Silk @Sovol SV08 MAX.json"
|
||||||
@@ -361,10 +285,6 @@
|
|||||||
"name": "Generic PLA Silk @Sovol Zero",
|
"name": "Generic PLA Silk @Sovol Zero",
|
||||||
"sub_path": "filament/Generic PLA Silk @Sovol Zero.json"
|
"sub_path": "filament/Generic PLA Silk @Sovol Zero.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Generic PLA Silk @Sovol Zero Hardened Steel nozzle",
|
|
||||||
"sub_path": "filament/Generic PLA Silk @Sovol Zero Hardened Steel nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Generic TPU @Sovol SV06 ACE",
|
"name": "Generic TPU @Sovol SV06 ACE",
|
||||||
"sub_path": "filament/Generic TPU @Sovol SV06 ACE.json"
|
"sub_path": "filament/Generic TPU @Sovol SV06 ACE.json"
|
||||||
@@ -392,6 +312,18 @@
|
|||||||
{
|
{
|
||||||
"name": "SUNLU PETG @Sovol SV08 MAX",
|
"name": "SUNLU PETG @Sovol SV08 MAX",
|
||||||
"sub_path": "filament/SUNLU PETG @Sovol SV08 MAX.json"
|
"sub_path": "filament/SUNLU PETG @Sovol SV08 MAX.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sovol Zero PETG HS Nozzle",
|
||||||
|
"sub_path": "filament/Sovol Zero PETG HS Nozzle.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sovol Zero PLA Basic HS Nozzle",
|
||||||
|
"sub_path": "filament/Sovol Zero PLA Basic HS Nozzle.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sovol Zero PLA Silk HS Nozzle",
|
||||||
|
"sub_path": "filament/Sovol Zero PLA Silk HS Nozzle.json"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"machine_list": [
|
"machine_list": [
|
||||||
@@ -483,45 +415,9 @@
|
|||||||
"name": "Sovol SV08 MAX 0.8 nozzle",
|
"name": "Sovol SV08 MAX 0.8 nozzle",
|
||||||
"sub_path": "machine/Sovol SV08 MAX 0.8 nozzle.json"
|
"sub_path": "machine/Sovol SV08 MAX 0.8 nozzle.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Sovol Zero 0.2 nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 0.2 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Sovol Zero 0.4 nozzle",
|
"name": "Sovol Zero 0.4 nozzle",
|
||||||
"sub_path": "machine/Sovol Zero 0.4 nozzle.json"
|
"sub_path": "machine/Sovol Zero 0.4 nozzle.json"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 0.6 nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 0.6 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 0.8 nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 0.8 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 1.0 nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 1.0 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 0.2 Hardened Steel nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 0.4 Hardened Steel nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 0.6 Hardened Steel nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 0.8 Hardened Steel nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sovol Zero 1.0 Hardened Steel nozzle",
|
|
||||||
"sub_path": "machine/Sovol Zero 1.0 Hardened Steel nozzle.json"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
{
|
{
|
||||||
"type": "filament",
|
"type": "filament",
|
||||||
"name": "Generic ABS @Sovol Zero",
|
"name": "Generic ABS @Sovol Zero",
|
||||||
|
"inherits": "Generic ABS @System",
|
||||||
"renamed_from": "Sovol Zero ABS",
|
"renamed_from": "Sovol Zero ABS",
|
||||||
"inherits": "fdm_filament_abs",
|
|
||||||
"from": "system",
|
"from": "system",
|
||||||
"setting_id": "g6sSyyIFYJUzlXsp",
|
"setting_id": "g6sSyyIFYJUzlXsp",
|
||||||
"filament_id": "OFY9muEs",
|
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
"filament_flow_ratio": [
|
"filament_flow_ratio": [
|
||||||
"0.98"
|
"0.98"
|
||||||
@@ -74,39 +73,6 @@
|
|||||||
"0"
|
"0"
|
||||||
],
|
],
|
||||||
"compatible_printers": [
|
"compatible_printers": [
|
||||||
"Sovol Zero 0.2 nozzle",
|
"Sovol Zero 0.4 nozzle"
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 1.0 nozzle",
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"textured_plate_temp_initial_layer": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_density": [
|
|
||||||
"1.10"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
{
|
{
|
||||||
"type": "filament",
|
"type": "filament",
|
||||||
"filament_id": "OFLakOUI",
|
|
||||||
"setting_id": "yRKCiPMN6fxibcyg",
|
|
||||||
"name": "Generic PC @Sovol Zero",
|
"name": "Generic PC @Sovol Zero",
|
||||||
|
"inherits": "Generic PC @System",
|
||||||
"renamed_from": "Sovol Zero PC",
|
"renamed_from": "Sovol Zero PC",
|
||||||
"from": "system",
|
"from": "system",
|
||||||
|
"setting_id": "yRKCiPMN6fxibcyg",
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
"inherits": "fdm_filament_pc",
|
|
||||||
"filament_flow_ratio": [
|
"filament_flow_ratio": [
|
||||||
"0.98"
|
"0.98"
|
||||||
],
|
],
|
||||||
@@ -14,16 +13,7 @@
|
|||||||
"21"
|
"21"
|
||||||
],
|
],
|
||||||
"compatible_printers": [
|
"compatible_printers": [
|
||||||
"Sovol Zero 0.2 nozzle",
|
"Sovol Zero 0.4 nozzle"
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 1.0 nozzle",
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
],
|
],
|
||||||
"nozzle_temperature_initial_layer": [
|
"nozzle_temperature_initial_layer": [
|
||||||
"290"
|
"290"
|
||||||
@@ -61,9 +51,7 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"10"
|
"10"
|
||||||
],
|
],
|
||||||
"dont_slow_down_outer_wall": [
|
"dont_slow_down_outer_wall": "0",
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"overhang_fan_speed": [
|
"overhang_fan_speed": [
|
||||||
"20"
|
"20"
|
||||||
],
|
],
|
||||||
@@ -73,19 +61,8 @@
|
|||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"60"
|
"60"
|
||||||
],
|
],
|
||||||
"additional_cooling_fan_speed": [
|
"additional_cooling_fan_speed": "0",
|
||||||
"0"
|
"activate_air_filtration": "1",
|
||||||
],
|
"during_print_exhaust_fan_speed": "50",
|
||||||
"activate_air_filtration": [
|
"complete_print_exhaust_fan_speed": "50"
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"complete_print_exhaust_fan_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
-116
@@ -1,116 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "filament",
|
|
||||||
"filament_id": "OFYPdQJh",
|
|
||||||
"setting_id": "d9QbCESNz3ZLU6eu",
|
|
||||||
"name": "Generic PETG @Sovol Zero Hardened Steel nozzle",
|
|
||||||
"renamed_from": "Sovol Zero PETG HS Nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "true",
|
|
||||||
"inherits": "fdm_filament_pet",
|
|
||||||
"filament_flow_ratio": [
|
|
||||||
"0.98"
|
|
||||||
],
|
|
||||||
"enable_pressure_advance": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"pressure_advance": [
|
|
||||||
"0.048"
|
|
||||||
],
|
|
||||||
"filament_max_volumetric_speed": [
|
|
||||||
"15"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_initial_layer": [
|
|
||||||
"265"
|
|
||||||
],
|
|
||||||
"nozzle_temperature": [
|
|
||||||
"250"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_low": [
|
|
||||||
"230"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_high": [
|
|
||||||
"280"
|
|
||||||
],
|
|
||||||
"hot_plate_temp": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"hot_plate_temp_initial_layer": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"fan_min_speed": [
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"fan_max_speed": [
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"fan_cooling_layer_time": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"full_fan_speed_layer": [
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"slow_down_layer_time": [
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"slow_down_min_speed": [
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"overhang_fan_speed": [
|
|
||||||
"70"
|
|
||||||
],
|
|
||||||
"overhang_fan_threshold": [
|
|
||||||
"10%"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"close_fan_the_first_x_layers": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"filament_retraction_length": [
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"filament_z_hop": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"activate_air_filtration": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"complete_print_exhaust_fan_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"textured_plate_temp_initial_layer": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,21 +1,16 @@
|
|||||||
{
|
{
|
||||||
"type": "filament",
|
"type": "filament",
|
||||||
"filament_id": "OFYPdQJh",
|
|
||||||
"setting_id": "i4OW2eAtXOKdtVNj",
|
|
||||||
"name": "Generic PETG @Sovol Zero",
|
"name": "Generic PETG @Sovol Zero",
|
||||||
|
"inherits": "Generic PETG @System",
|
||||||
"renamed_from": "Sovol Zero PETG",
|
"renamed_from": "Sovol Zero PETG",
|
||||||
"from": "system",
|
"from": "system",
|
||||||
|
"setting_id": "i4OW2eAtXOKdtVNj",
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
"inherits": "fdm_filament_pet",
|
|
||||||
"filament_flow_ratio": [
|
"filament_flow_ratio": [
|
||||||
"1.0348"
|
"1.0348"
|
||||||
],
|
],
|
||||||
"enable_pressure_advance": [
|
"enable_pressure_advance": "1",
|
||||||
"1"
|
"pressure_advance": "0.046",
|
||||||
],
|
|
||||||
"pressure_advance": [
|
|
||||||
"0.046"
|
|
||||||
],
|
|
||||||
"filament_max_volumetric_speed": [
|
"filament_max_volumetric_speed": [
|
||||||
"15"
|
"15"
|
||||||
],
|
],
|
||||||
@@ -73,44 +68,10 @@
|
|||||||
"filament_z_hop": [
|
"filament_z_hop": [
|
||||||
"0.4"
|
"0.4"
|
||||||
],
|
],
|
||||||
"activate_air_filtration": [
|
"activate_air_filtration": "1",
|
||||||
"1"
|
"during_print_exhaust_fan_speed": "50",
|
||||||
],
|
"complete_print_exhaust_fan_speed": "50",
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"complete_print_exhaust_fan_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"compatible_printers": [
|
"compatible_printers": [
|
||||||
"Sovol Zero 0.2 nozzle",
|
"Sovol Zero 0.4 nozzle"
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 1.0 nozzle"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"textured_plate_temp_initial_layer": [
|
|
||||||
"85"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,110 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "filament",
|
|
||||||
"filament_id": "OFDSrzZ8",
|
|
||||||
"setting_id": "nZgETe4CTpicEjQX",
|
|
||||||
"name": "Generic PLA @Sovol Zero Hardened Steel nozzle",
|
|
||||||
"renamed_from": "Sovol Zero PLA Basic HS Nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "true",
|
|
||||||
"inherits": "fdm_filament_pla",
|
|
||||||
"filament_flow_ratio": [
|
|
||||||
"1.0348"
|
|
||||||
],
|
|
||||||
"filament_max_volumetric_speed": [
|
|
||||||
"21"
|
|
||||||
],
|
|
||||||
"enable_pressure_advance": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"pressure_advance": [
|
|
||||||
"0.03"
|
|
||||||
],
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_initial_layer": [
|
|
||||||
"245"
|
|
||||||
],
|
|
||||||
"nozzle_temperature": [
|
|
||||||
"230"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_low": [
|
|
||||||
"190"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_high": [
|
|
||||||
"250"
|
|
||||||
],
|
|
||||||
"hot_plate_temp": [
|
|
||||||
"65"
|
|
||||||
],
|
|
||||||
"hot_plate_temp_initial_layer": [
|
|
||||||
"65"
|
|
||||||
],
|
|
||||||
"fan_min_speed": [
|
|
||||||
"70"
|
|
||||||
],
|
|
||||||
"fan_max_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"fan_cooling_layer_time": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"full_fan_speed_layer": [
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"slow_down_layer_time": [
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"slow_down_min_speed": [
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"dont_slow_down_outer_wall": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"overhang_fan_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"overhang_fan_threshold": [
|
|
||||||
"50%"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"additional_cooling_fan_speed": [
|
|
||||||
"75%"
|
|
||||||
],
|
|
||||||
"activate_air_filtration": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"80%"
|
|
||||||
],
|
|
||||||
"complete_print_exhaust_fan_speed": [
|
|
||||||
"80%"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,24 +1,21 @@
|
|||||||
{
|
{
|
||||||
"type": "filament",
|
"type": "filament",
|
||||||
"filament_id": "OFDSrzZ8",
|
|
||||||
"setting_id": "NNDerIjh7qtuh1I3",
|
|
||||||
"name": "Generic PLA @Sovol Zero",
|
"name": "Generic PLA @Sovol Zero",
|
||||||
|
"inherits": "Generic PLA @System",
|
||||||
"renamed_from": "Sovol Zero PLA Basic",
|
"renamed_from": "Sovol Zero PLA Basic",
|
||||||
"from": "system",
|
"from": "system",
|
||||||
|
"setting_id": "NNDerIjh7qtuh1I3",
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
"inherits": "fdm_filament_pla",
|
|
||||||
"filament_flow_ratio": [
|
"filament_flow_ratio": [
|
||||||
"0.98"
|
"0.98"
|
||||||
],
|
],
|
||||||
"filament_max_volumetric_speed": [
|
"filament_max_volumetric_speed": [
|
||||||
"25"
|
"21"
|
||||||
],
|
],
|
||||||
|
"enable_pressure_advance": "1",
|
||||||
|
"pressure_advance": "0.032",
|
||||||
"compatible_printers": [
|
"compatible_printers": [
|
||||||
"Sovol Zero 0.2 nozzle",
|
"Sovol Zero 0.4 nozzle"
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 1.0 nozzle"
|
|
||||||
],
|
],
|
||||||
"nozzle_temperature_initial_layer": [
|
"nozzle_temperature_initial_layer": [
|
||||||
"230"
|
"230"
|
||||||
@@ -27,28 +24,28 @@
|
|||||||
"210"
|
"210"
|
||||||
],
|
],
|
||||||
"nozzle_temperature_range_low": [
|
"nozzle_temperature_range_low": [
|
||||||
"180"
|
"190"
|
||||||
],
|
],
|
||||||
"nozzle_temperature_range_high": [
|
"nozzle_temperature_range_high": [
|
||||||
"240"
|
"250"
|
||||||
],
|
],
|
||||||
"hot_plate_temp": [
|
"hot_plate_temp": [
|
||||||
"60"
|
"65"
|
||||||
],
|
],
|
||||||
"hot_plate_temp_initial_layer": [
|
"hot_plate_temp_initial_layer": [
|
||||||
"60"
|
"65"
|
||||||
],
|
],
|
||||||
"fan_min_speed": [
|
"fan_min_speed": [
|
||||||
"100"
|
"70"
|
||||||
],
|
],
|
||||||
"fan_max_speed": [
|
"fan_max_speed": [
|
||||||
"100"
|
"100"
|
||||||
],
|
],
|
||||||
"fan_cooling_layer_time": [
|
"fan_cooling_layer_time": [
|
||||||
"60"
|
"80"
|
||||||
],
|
],
|
||||||
"full_fan_speed_layer": [
|
"full_fan_speed_layer": [
|
||||||
"2"
|
"3"
|
||||||
],
|
],
|
||||||
"slow_down_layer_time": [
|
"slow_down_layer_time": [
|
||||||
"5"
|
"5"
|
||||||
@@ -56,43 +53,18 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"10"
|
"10"
|
||||||
],
|
],
|
||||||
|
"dont_slow_down_outer_wall": "0",
|
||||||
"overhang_fan_speed": [
|
"overhang_fan_speed": [
|
||||||
"100"
|
"100"
|
||||||
],
|
],
|
||||||
"overhang_fan_threshold": [
|
"overhang_fan_threshold": [
|
||||||
"10%"
|
"50%"
|
||||||
],
|
],
|
||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"filament_z_hop": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"filament_retraction_length": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"filament_diameter": [
|
|
||||||
"1.75"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"60"
|
"60"
|
||||||
],
|
],
|
||||||
"eng_plate_temp": [
|
"additional_cooling_fan_speed": "75%",
|
||||||
"60"
|
"activate_air_filtration": "1",
|
||||||
],
|
"during_print_exhaust_fan_speed": "80%",
|
||||||
"textured_plate_temp": [
|
"complete_print_exhaust_fan_speed": "80%"
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,118 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "filament",
|
|
||||||
"filament_id": "OFIUkWYN",
|
|
||||||
"setting_id": "MC2InZ7iKDjIGike",
|
|
||||||
"name": "Generic PLA SPEEDBENCHY @Sovol Zero",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "true",
|
|
||||||
"inherits": "fdm_filament_pla",
|
|
||||||
"filament_flow_ratio": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"filament_max_volumetric_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_initial_layer": [
|
|
||||||
"245"
|
|
||||||
],
|
|
||||||
"nozzle_temperature": [
|
|
||||||
"225"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_low": [
|
|
||||||
"190"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_high": [
|
|
||||||
"250"
|
|
||||||
],
|
|
||||||
"hot_plate_temp": [
|
|
||||||
"65"
|
|
||||||
],
|
|
||||||
"hot_plate_temp_initial_layer": [
|
|
||||||
"65"
|
|
||||||
],
|
|
||||||
"enable_pressure_advance": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"pressure_advance": [
|
|
||||||
"0.032"
|
|
||||||
],
|
|
||||||
"fan_min_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"fan_max_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"fan_cooling_layer_time": [
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"full_fan_speed_layer": [
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"slow_down_layer_time": [
|
|
||||||
"1.7"
|
|
||||||
],
|
|
||||||
"slow_down_min_speed": [
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"overhang_fan_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"overhang_fan_threshold": [
|
|
||||||
"75%"
|
|
||||||
],
|
|
||||||
"additional_cooling_fan_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"filament_z_hop": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"filament_retraction_length": [
|
|
||||||
"0.35"
|
|
||||||
],
|
|
||||||
"filament_retraction_speed": [
|
|
||||||
"90"
|
|
||||||
],
|
|
||||||
"filament_deretraction_speed": [
|
|
||||||
"90"
|
|
||||||
],
|
|
||||||
"filament_retract_before_wipe": [
|
|
||||||
"0%"
|
|
||||||
],
|
|
||||||
"filament_wipe_distance": [
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"filament_retract_when_changing_layer": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"filament_diameter": [
|
|
||||||
"1.75"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
|
||||||
"100"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
-110
@@ -1,110 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "filament",
|
|
||||||
"filament_id": "OFesA6rF",
|
|
||||||
"setting_id": "LA8X1RsMdV2xNT1o",
|
|
||||||
"name": "Generic PLA Silk @Sovol Zero Hardened Steel nozzle",
|
|
||||||
"renamed_from": "Sovol Zero PLA Silk HS Nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "true",
|
|
||||||
"inherits": "fdm_filament_pla",
|
|
||||||
"filament_flow_ratio": [
|
|
||||||
"0.98"
|
|
||||||
],
|
|
||||||
"filament_max_volumetric_speed": [
|
|
||||||
"15"
|
|
||||||
],
|
|
||||||
"enable_pressure_advance": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"pressure_advance": [
|
|
||||||
"0.027"
|
|
||||||
],
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_initial_layer": [
|
|
||||||
"245"
|
|
||||||
],
|
|
||||||
"nozzle_temperature": [
|
|
||||||
"230"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_low": [
|
|
||||||
"190"
|
|
||||||
],
|
|
||||||
"nozzle_temperature_range_high": [
|
|
||||||
"250"
|
|
||||||
],
|
|
||||||
"hot_plate_temp": [
|
|
||||||
"65"
|
|
||||||
],
|
|
||||||
"hot_plate_temp_initial_layer": [
|
|
||||||
"65"
|
|
||||||
],
|
|
||||||
"fan_min_speed": [
|
|
||||||
"70"
|
|
||||||
],
|
|
||||||
"fan_max_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"fan_cooling_layer_time": [
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"full_fan_speed_layer": [
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"slow_down_layer_time": [
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"slow_down_min_speed": [
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"dont_slow_down_outer_wall": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"overhang_fan_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"overhang_fan_threshold": [
|
|
||||||
"50%"
|
|
||||||
],
|
|
||||||
"temperature_vitrification": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"additional_cooling_fan_speed": [
|
|
||||||
"75%"
|
|
||||||
],
|
|
||||||
"activate_air_filtration": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"80%"
|
|
||||||
],
|
|
||||||
"complete_print_exhaust_fan_speed": [
|
|
||||||
"80%"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,30 +1,27 @@
|
|||||||
{
|
{
|
||||||
"type": "filament",
|
"type": "filament",
|
||||||
"filament_id": "OFesA6rF",
|
|
||||||
"setting_id": "Se2yKerHRStYtWf5",
|
|
||||||
"name": "Generic PLA Silk @Sovol Zero",
|
"name": "Generic PLA Silk @Sovol Zero",
|
||||||
|
"inherits": "Generic PLA Silk @System",
|
||||||
"renamed_from": "Sovol Zero PLA Silk",
|
"renamed_from": "Sovol Zero PLA Silk",
|
||||||
"from": "system",
|
"from": "system",
|
||||||
|
"setting_id": "Se2yKerHRStYtWf5",
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
"inherits": "fdm_filament_pla",
|
"filament_multitool_ramming_flow": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
"filament_flow_ratio": [
|
"filament_flow_ratio": [
|
||||||
"0.98"
|
"0.98"
|
||||||
],
|
],
|
||||||
"filament_max_volumetric_speed": [
|
"filament_max_volumetric_speed": [
|
||||||
"15"
|
"15"
|
||||||
],
|
],
|
||||||
"enable_pressure_advance": [
|
"enable_pressure_advance": "1",
|
||||||
"1"
|
"pressure_advance": "0.029",
|
||||||
],
|
|
||||||
"pressure_advance": [
|
|
||||||
"0.029"
|
|
||||||
],
|
|
||||||
"compatible_printers": [
|
"compatible_printers": [
|
||||||
"Sovol Zero 0.2 nozzle",
|
"Sovol Zero 0.4 nozzle"
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 1.0 nozzle"
|
|
||||||
],
|
],
|
||||||
"nozzle_temperature_initial_layer": [
|
"nozzle_temperature_initial_layer": [
|
||||||
"245"
|
"245"
|
||||||
@@ -62,9 +59,7 @@
|
|||||||
"slow_down_min_speed": [
|
"slow_down_min_speed": [
|
||||||
"10"
|
"10"
|
||||||
],
|
],
|
||||||
"dont_slow_down_outer_wall": [
|
"dont_slow_down_outer_wall": "0",
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"overhang_fan_speed": [
|
"overhang_fan_speed": [
|
||||||
"100"
|
"100"
|
||||||
],
|
],
|
||||||
@@ -74,43 +69,8 @@
|
|||||||
"temperature_vitrification": [
|
"temperature_vitrification": [
|
||||||
"60"
|
"60"
|
||||||
],
|
],
|
||||||
"additional_cooling_fan_speed": [
|
"additional_cooling_fan_speed": "75%",
|
||||||
"75%"
|
"activate_air_filtration": "1",
|
||||||
],
|
"during_print_exhaust_fan_speed": "80%",
|
||||||
"activate_air_filtration": [
|
"complete_print_exhaust_fan_speed": "80%"
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"80%"
|
|
||||||
],
|
|
||||||
"complete_print_exhaust_fan_speed": [
|
|
||||||
"80%"
|
|
||||||
],
|
|
||||||
"filament_multitool_ramming_flow": [
|
|
||||||
"20"
|
|
||||||
],
|
|
||||||
"filament_retraction_length": [
|
|
||||||
"nil"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
{
|
{
|
||||||
"type": "filament",
|
"type": "filament",
|
||||||
"filament_id": "OFgbpcy9",
|
|
||||||
"setting_id": "MlY6WQ41FE8zDPSV",
|
|
||||||
"name": "Generic TPU @Sovol Zero",
|
"name": "Generic TPU @Sovol Zero",
|
||||||
|
"inherits": "Generic TPU @System",
|
||||||
"renamed_from": "Sovol Zero TPU",
|
"renamed_from": "Sovol Zero TPU",
|
||||||
"from": "system",
|
"from": "system",
|
||||||
|
"setting_id": "MlY6WQ41FE8zDPSV",
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
"inherits": "fdm_filament_tpu",
|
|
||||||
"filament_flow_ratio": [
|
"filament_flow_ratio": [
|
||||||
"0.98"
|
"0.98"
|
||||||
],
|
],
|
||||||
@@ -61,55 +60,11 @@
|
|||||||
"filament_z_hop": [
|
"filament_z_hop": [
|
||||||
"0.4"
|
"0.4"
|
||||||
],
|
],
|
||||||
"additional_cooling_fan_speed": [
|
"additional_cooling_fan_speed": "50",
|
||||||
"50"
|
"activate_air_filtration": "1",
|
||||||
],
|
"during_print_exhaust_fan_speed": "100",
|
||||||
"activate_air_filtration": [
|
"complete_print_exhaust_fan_speed": "50",
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"during_print_exhaust_fan_speed": [
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"complete_print_exhaust_fan_speed": [
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"compatible_printers": [
|
"compatible_printers": [
|
||||||
"Sovol Zero 0.2 nozzle",
|
"Sovol Zero 0.4 nozzle"
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 1.0 nozzle",
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"cool_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"eng_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"textured_plate_temp": [
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"cool_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"eng_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"textured_plate_temp_initial_layer": [
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"filament_end_gcode": [
|
|
||||||
"; filament end gcode \n"
|
|
||||||
],
|
|
||||||
"filament_retraction_length": [
|
|
||||||
"nil"
|
|
||||||
],
|
|
||||||
"filament_start_gcode": [
|
|
||||||
"; filament start gcode\n"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "Sovol Zero PETG HS Nozzle",
|
||||||
|
"inherits": "Generic PETG @System",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "AfxHmpdOkMDJa2fk",
|
||||||
|
"filament_id": "OFymnal9",
|
||||||
|
"instantiation": "true",
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.98"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": "1",
|
||||||
|
"pressure_advance": "0.048",
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"265"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"250"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"280"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"85"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"85"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"10%"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"0.5"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": "1",
|
||||||
|
"during_print_exhaust_fan_speed": "50",
|
||||||
|
"complete_print_exhaust_fan_speed": "50",
|
||||||
|
"compatible_printers": [
|
||||||
|
"Sovol Zero 0.4 nozzle"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "Sovol Zero PLA Basic HS Nozzle",
|
||||||
|
"inherits": "Generic PLA @System",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "i9wDnSEIrOBPbOZl",
|
||||||
|
"filament_id": "OFzB4uOs",
|
||||||
|
"instantiation": "true",
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"1.0348"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"21"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": "1",
|
||||||
|
"pressure_advance": "0.03",
|
||||||
|
"compatible_printers": [
|
||||||
|
"Sovol Zero 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"245"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"190"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"250"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"65"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"65"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": "0",
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"50%"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": "75%",
|
||||||
|
"activate_air_filtration": "1",
|
||||||
|
"during_print_exhaust_fan_speed": "80%",
|
||||||
|
"complete_print_exhaust_fan_speed": "80%"
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "Sovol Zero PLA Silk HS Nozzle",
|
||||||
|
"inherits": "Generic PLA @System",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "XxEJBNFLRltR2Xwn",
|
||||||
|
"filament_id": "OFAO9A7J",
|
||||||
|
"instantiation": "true",
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.98"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": "1",
|
||||||
|
"pressure_advance": "0.027",
|
||||||
|
"compatible_printers": [
|
||||||
|
"Sovol Zero 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"245"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"190"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"250"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"65"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"65"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": "0",
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"50%"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": "75%",
|
||||||
|
"activate_air_filtration": "1",
|
||||||
|
"during_print_exhaust_fan_speed": "80%",
|
||||||
|
"complete_print_exhaust_fan_speed": "80%"
|
||||||
|
}
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Sovol Zero 0.2 Hardened Steel nozzle",
|
|
||||||
"inherits": "Sovol Zero 0.2 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "OkvEInEyzUUJzw9K",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Sovol Zero",
|
|
||||||
"printer_variant": "0.2HS",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.2"
|
|
||||||
],
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Generic PLA @Sovol Zero Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_type": [
|
|
||||||
"hardened_steel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Sovol Zero 0.4 Hardened Steel nozzle",
|
|
||||||
"inherits": "Sovol Zero 0.4 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "RqwHKS8MYRdoeJPi",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Sovol Zero",
|
|
||||||
"printer_variant": "0.4HS",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Generic PLA @Sovol Zero Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_type": [
|
|
||||||
"hardened_steel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Sovol Zero 0.6 Hardened Steel nozzle",
|
|
||||||
"inherits": "Sovol Zero 0.6 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "s3N3FJkWrzOylFm8",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Sovol Zero",
|
|
||||||
"printer_variant": "0.6HS",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.6"
|
|
||||||
],
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Generic PLA @Sovol Zero Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_type": [
|
|
||||||
"hardened_steel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Sovol Zero 0.8 Hardened Steel nozzle",
|
|
||||||
"inherits": "Sovol Zero 0.8 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "houacf8sQ3bLozqD",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Sovol Zero",
|
|
||||||
"printer_variant": "0.8HS",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.8"
|
|
||||||
],
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Generic PLA @Sovol Zero Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_type": [
|
|
||||||
"hardened_steel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Sovol Zero 1.0 Hardened Steel nozzle",
|
|
||||||
"inherits": "Sovol Zero 1.0 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "sqlEiL0in8LSjmmn",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Sovol Zero",
|
|
||||||
"printer_variant": "1.0HS",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"1.0"
|
|
||||||
],
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Generic PLA @Sovol Zero Hardened Steel nozzle"
|
|
||||||
],
|
|
||||||
"nozzle_type": [
|
|
||||||
"hardened_steel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -2,11 +2,11 @@
|
|||||||
"type": "machine_model",
|
"type": "machine_model",
|
||||||
"name": "Sovol Zero",
|
"name": "Sovol Zero",
|
||||||
"model_id": "Sovol-Zero",
|
"model_id": "Sovol-Zero",
|
||||||
"nozzle_diameter": "0.2;0.4;0.6;0.8;1.0;0.2HS;0.4HS;0.6HS;0.8HS;1.0HS",
|
"nozzle_diameter": "0.4",
|
||||||
"machine_tech": "FFF",
|
"machine_tech": "FFF",
|
||||||
"family": "Sovol",
|
"family": "Sovol",
|
||||||
"bed_model": "sovol_zero_buildplate_model.stl",
|
"bed_model": "sovol_zero_buildplate_model.stl",
|
||||||
"bed_texture": "sovol_zero_buildplate_texture.svg",
|
"bed_texture": "sovol_zero_buildplate_texture.svg",
|
||||||
"hotend_model": "",
|
"hotend_model": "",
|
||||||
"default_materials": "Generic PLA @Sovol Zero;Generic PLA SPEEDBENCHY @Sovol Zero;Generic PLA @Sovol Zero Hardened Steel nozzle;Generic PLA Silk @Sovol Zero;Generic PLA Silk @Sovol Zero Hardened Steel nozzle;Generic ABS @Sovol Zero;Generic PETG @Sovol Zero;Generic PETG @Sovol Zero Hardened Steel nozzle;Generic TPU @Sovol Zero;Generic PC @Sovol Zero"
|
"default_materials": "Generic PLA @Sovol Zero;Sovol Zero PLA Basic HS Nozzle;Generic PLA Silk @Sovol Zero;Sovol Zero PLA Silk HS Nozzle;Generic ABS @Sovol Zero;Generic PETG @Sovol Zero;Sovol Zero PETG HS Nozzle;Generic TPU @Sovol Zero;Generic PC @Sovol Zero"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.06mm Quality @Sovol Zero 0.2 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "fWP7jaL7sJmmZ6QN",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.06",
|
|
||||||
"bottom_shell_layers": "8",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "30",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "0.21",
|
|
||||||
"line_width": "0.21",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_print_height": "0.06",
|
|
||||||
"initial_layer_line_width": "0.3",
|
|
||||||
"infill_wall_overlap": "18",
|
|
||||||
"inner_wall_line_width": "0.22",
|
|
||||||
"wall_loops": "3",
|
|
||||||
"internal_solid_infill_line_width": "0.21",
|
|
||||||
"sparse_infill_line_width": "0.21",
|
|
||||||
"support_top_z_distance": "0.10",
|
|
||||||
"support_line_width": "0.21",
|
|
||||||
"tree_support_tip_diameter": "0.21",
|
|
||||||
"support_speed": "100",
|
|
||||||
"top_surface_line_width": "0.21",
|
|
||||||
"top_shell_layers": "8",
|
|
||||||
"top_shell_thickness": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.2 nozzle",
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.10mm Standard @Sovol Zero 0.2 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "Gql3487jsaTXyuYZ",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.10",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "50",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "0.22",
|
|
||||||
"line_width": "0.22",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_print_height": "0.12",
|
|
||||||
"initial_layer_line_width": "0.3",
|
|
||||||
"infill_wall_overlap": "20",
|
|
||||||
"inner_wall_line_width": "0.22",
|
|
||||||
"wall_loops": "2",
|
|
||||||
"internal_solid_infill_line_width": "0.22",
|
|
||||||
"sparse_infill_line_width": "0.22",
|
|
||||||
"support_top_z_distance": "0.20",
|
|
||||||
"support_line_width": "0.22",
|
|
||||||
"tree_support_tip_diameter": "0.22",
|
|
||||||
"support_speed": "100",
|
|
||||||
"top_surface_line_width": "0.22",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"top_shell_thickness": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.2 nozzle",
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"setting_id": "CaEopiv2Wg6pQJjH",
|
|
||||||
"name": "0.12mm Quality @Sovol Zero 0.4 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.12",
|
|
||||||
"bottom_shell_layers": "8",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "30",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "0.42",
|
|
||||||
"line_width": "0.42",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_print_height": "0.12",
|
|
||||||
"initial_layer_line_width": "0.6",
|
|
||||||
"sparse_infill_line_width": "0.42",
|
|
||||||
"infill_wall_overlap": "18",
|
|
||||||
"inner_wall_line_width": "0.44",
|
|
||||||
"wall_loops": "3",
|
|
||||||
"support_top_z_distance": "0.10",
|
|
||||||
"support_line_width": "0.42",
|
|
||||||
"tree_support_tip_diameter": "0.42",
|
|
||||||
"support_speed": "100",
|
|
||||||
"top_surface_line_width": "0.42",
|
|
||||||
"internal_solid_infill_line_width": "0.42",
|
|
||||||
"top_shell_layers": "8",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.14mm Fast @Sovol Zero 0.2 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "I9yoyCcGGTRrDoKu",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.14",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"bottom_shell_thickness": "0",
|
|
||||||
"bridge_speed": "60",
|
|
||||||
"outer_wall_acceleration": "22000",
|
|
||||||
"top_surface_acceleration": "22000",
|
|
||||||
"outer_wall_line_width": "0.24",
|
|
||||||
"line_width": "0.24",
|
|
||||||
"sparse_infill_density": "10%",
|
|
||||||
"inner_wall_acceleration": "28000",
|
|
||||||
"initial_layer_print_height": "0.14",
|
|
||||||
"initial_layer_line_width": "0.3",
|
|
||||||
"infill_wall_overlap": "20",
|
|
||||||
"inner_wall_line_width": "0.24",
|
|
||||||
"wall_loops": "2",
|
|
||||||
"internal_solid_infill_line_width": "0.24",
|
|
||||||
"sparse_infill_line_width": "0.24",
|
|
||||||
"support_top_z_distance": "0.30",
|
|
||||||
"support_line_width": "0.24",
|
|
||||||
"tree_support_tip_diameter": "0.24",
|
|
||||||
"support_speed": "120",
|
|
||||||
"top_surface_line_width": "0.24",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"top_shell_thickness": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.2 nozzle",
|
|
||||||
"Sovol Zero 0.2 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"setting_id": "IfDpa3vM99D4ytny",
|
|
||||||
"name": "0.15mm Quality @Sovol Zero 0.6 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.15",
|
|
||||||
"bottom_shell_layers": "5",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "30",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "0.63",
|
|
||||||
"line_width": "0.63",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_line_width": "0.9",
|
|
||||||
"sparse_infill_line_width": "0.63",
|
|
||||||
"infill_wall_overlap": "18",
|
|
||||||
"inner_wall_line_width": "0.66",
|
|
||||||
"wall_loops": "3",
|
|
||||||
"support_top_z_distance": "0.15",
|
|
||||||
"support_line_width": "0.63",
|
|
||||||
"tree_support_tip_diameter": "0.63",
|
|
||||||
"support_speed": "100",
|
|
||||||
"top_surface_line_width": "0.63",
|
|
||||||
"top_shell_layers": "5",
|
|
||||||
"internal_solid_infill_line_width": "0.63",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.20mm Quality @Sovol Zero 0.8 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "MSxikpQZNYdoBynZ",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.20",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "30",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "0.84",
|
|
||||||
"line_width": "0.84",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_print_height": "0.36",
|
|
||||||
"initial_layer_line_width": "1.2",
|
|
||||||
"sparse_infill_line_width": "0.84",
|
|
||||||
"infill_wall_overlap": "18",
|
|
||||||
"inner_wall_line_width": "0.88",
|
|
||||||
"wall_loops": "3",
|
|
||||||
"support_top_z_distance": "0.20",
|
|
||||||
"support_line_width": "0.84",
|
|
||||||
"tree_support_tip_diameter": "0.84",
|
|
||||||
"support_speed": "100",
|
|
||||||
"top_surface_line_width": "0.84",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"outer_wall_speed": "350",
|
|
||||||
"inner_wall_speed": "400",
|
|
||||||
"small_perimeter_speed": "50%",
|
|
||||||
"internal_solid_infill_speed": "200",
|
|
||||||
"internal_solid_infill_line_width": "0.84",
|
|
||||||
"top_surface_speed": "200",
|
|
||||||
"gap_infill_speed": "200",
|
|
||||||
"sparse_infill_speed": "500",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,36 +1,141 @@
|
|||||||
{
|
{
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"setting_id": "ShJTVnJ492No1j2j",
|
|
||||||
"name": "0.20mm Standard @Sovol Zero 0.4 nozzle",
|
"name": "0.20mm Standard @Sovol Zero 0.4 nozzle",
|
||||||
|
"inherits": "fdm_process_common",
|
||||||
"from": "system",
|
"from": "system",
|
||||||
"inherits": "fdm_process_zero",
|
"setting_id": "ShJTVnJ492No1j2j",
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
|
"reduce_crossing_wall": "1",
|
||||||
|
"max_travel_detour_distance": "100%",
|
||||||
"layer_height": "0.20",
|
"layer_height": "0.20",
|
||||||
"bottom_shell_layers": "4",
|
"bottom_surface_pattern": "monotonic",
|
||||||
"bottom_shell_thickness": "0.8",
|
"bottom_shell_layers": "3",
|
||||||
|
"bottom_shell_thickness": "0",
|
||||||
|
"bridge_flow": "1.2",
|
||||||
|
"internal_bridge_flow": "1.2",
|
||||||
"bridge_speed": "50",
|
"bridge_speed": "50",
|
||||||
|
"internal_bridge_speed": "200",
|
||||||
|
"brim_type": "auto_brim",
|
||||||
|
"brim_width": "5",
|
||||||
|
"brim_object_gap": "0",
|
||||||
|
"compatible_printers_condition": "",
|
||||||
|
"print_sequence": "by layer",
|
||||||
|
"default_acceleration": "40000",
|
||||||
"outer_wall_acceleration": "10000",
|
"outer_wall_acceleration": "10000",
|
||||||
"top_surface_acceleration": "5000",
|
"top_surface_acceleration": "5000",
|
||||||
"outer_wall_line_width": "0.44",
|
"bridge_no_support": "0",
|
||||||
"line_width": "0.44",
|
"draft_shield": "disabled",
|
||||||
"sparse_infill_density": "15%",
|
"elefant_foot_compensation": "0.1",
|
||||||
|
"enable_arc_fitting": "0",
|
||||||
|
"exclude_object": "1",
|
||||||
|
"outer_wall_line_width": "0.4",
|
||||||
|
"wall_infill_order": "inner wall/outer wall/infill",
|
||||||
|
"line_width": "0.4",
|
||||||
|
"infill_direction": "45",
|
||||||
|
"sparse_infill_density": "10%",
|
||||||
|
"sparse_infill_pattern": "grid",
|
||||||
|
"internal_solid_infill_acceleration": "50%",
|
||||||
|
"initial_layer_acceleration": "1000",
|
||||||
|
"initial_solid_infill_acceleration": "3000",
|
||||||
|
"travel_acceleration": "40000",
|
||||||
"inner_wall_acceleration": "12000",
|
"inner_wall_acceleration": "12000",
|
||||||
"initial_layer_print_height": "0.24",
|
"outer_wall_jerk": "5",
|
||||||
"initial_layer_line_width": "0.6",
|
"inner_wall_jerk": "5",
|
||||||
"sparse_infill_line_width": "0.44",
|
"infill_jerk": "5",
|
||||||
"infill_wall_overlap": "20",
|
"top_surface_jerk": "5",
|
||||||
"ironing_speed": "100",
|
"initial_layer_jerk": "5",
|
||||||
"inner_wall_line_width": "0.44",
|
"travel_jerk": "5",
|
||||||
|
"initial_layer_line_width": "0.42",
|
||||||
|
"initial_layer_print_height": "0.25",
|
||||||
|
"infill_combination": "0",
|
||||||
|
"sparse_infill_line_width": "0.45",
|
||||||
|
"infill_wall_overlap": "15%",
|
||||||
|
"interface_shells": "0",
|
||||||
|
"ironing_flow": "15%",
|
||||||
|
"ironing_spacing": "0.25",
|
||||||
|
"ironing_speed": "15",
|
||||||
|
"ironing_type": "no ironing",
|
||||||
|
"reduce_infill_retraction": "1",
|
||||||
|
"filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode",
|
||||||
|
"detect_overhang_wall": "1",
|
||||||
|
"overhang_1_4_speed": "0",
|
||||||
|
"overhang_2_4_speed": "50",
|
||||||
|
"overhang_3_4_speed": "30",
|
||||||
|
"overhang_4_4_speed": "20",
|
||||||
|
"inner_wall_line_width": "0.4",
|
||||||
"wall_loops": "2",
|
"wall_loops": "2",
|
||||||
"support_top_z_distance": "0.20",
|
"print_settings_id": "",
|
||||||
"support_line_width": "0.44",
|
"raft_layers": "0",
|
||||||
"tree_support_tip_diameter": "0.44",
|
"seam_position": "aligned",
|
||||||
"support_speed": "60",
|
"skirt_distance": "0.8",
|
||||||
"top_surface_line_width": "0.44",
|
"skirt_height": "1",
|
||||||
|
"skirt_loops": "1",
|
||||||
|
"minimum_sparse_infill_area": "15",
|
||||||
|
"internal_solid_infill_line_width": "0.45",
|
||||||
|
"spiral_mode": "0",
|
||||||
|
"standby_temperature_delta": "-5",
|
||||||
|
"enable_support": "0",
|
||||||
|
"resolution": "0.012",
|
||||||
|
"support_type": "tree(auto)",
|
||||||
|
"support_style": "default",
|
||||||
|
"support_on_build_plate_only": "0",
|
||||||
|
"support_top_z_distance": "0.235",
|
||||||
|
"support_bottom_z_distance": "0.235",
|
||||||
|
"support_filament": "0",
|
||||||
|
"support_line_width": "0.45",
|
||||||
|
"support_interface_loop_pattern": "0",
|
||||||
|
"support_interface_filament": "0",
|
||||||
|
"support_interface_top_layers": "5",
|
||||||
|
"support_interface_bottom_layers": "-1",
|
||||||
|
"support_interface_spacing": "0.2",
|
||||||
|
"support_bottom_interface_spacing": "0.2",
|
||||||
|
"support_interface_speed": "100%",
|
||||||
|
"support_interface_pattern": "grid",
|
||||||
|
"support_base_pattern": "rectilinear",
|
||||||
|
"support_base_pattern_spacing": "3.5",
|
||||||
|
"support_speed": "100",
|
||||||
|
"support_threshold_angle": "20",
|
||||||
|
"support_object_xy_distance": "0.35",
|
||||||
|
"tree_support_branch_angle": "40",
|
||||||
|
"tree_support_wall_count": "0",
|
||||||
|
"detect_thin_wall": "1",
|
||||||
|
"top_surface_pattern": "monotonic",
|
||||||
|
"top_surface_line_width": "0.38",
|
||||||
"top_shell_layers": "4",
|
"top_shell_layers": "4",
|
||||||
"internal_solid_infill_line_width": "0.44",
|
"top_shell_thickness": "1",
|
||||||
|
"initial_layer_speed": "55",
|
||||||
|
"initial_layer_infill_speed": "105",
|
||||||
|
"initial_layer_travel_speed": "60%",
|
||||||
|
"outer_wall_speed": "350",
|
||||||
|
"inner_wall_speed": "400",
|
||||||
|
"small_perimeter_speed": "50%",
|
||||||
|
"internal_solid_infill_speed": "200",
|
||||||
|
"top_surface_speed": "200",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"sparse_infill_speed": "500",
|
||||||
|
"accel_to_decel_enable": "1",
|
||||||
|
"accel_to_decel_factor": "25%",
|
||||||
|
"travel_speed": "1000",
|
||||||
|
"enable_prime_tower": "1",
|
||||||
|
"wipe_tower_no_sparse_layers": "0",
|
||||||
|
"prime_tower_width": "60",
|
||||||
|
"xy_hole_compensation": "0",
|
||||||
|
"xy_contour_compensation": "0",
|
||||||
|
"bridge_acceleration": "50%",
|
||||||
|
"seam_gap": "10%",
|
||||||
|
"precise_outer_wall": "1",
|
||||||
|
"wall_generator": "classic",
|
||||||
|
"gcode_label_objects": "1",
|
||||||
|
"slow_down_layers": "3",
|
||||||
|
"top_solid_infill_flow_ratio": "0.9",
|
||||||
|
"only_one_wall_top": "1",
|
||||||
|
"wall_loop_direction": "clockwise",
|
||||||
|
"top_bottom_infill_wall_overlap": "25%",
|
||||||
|
"filter_out_gap_fill": "0",
|
||||||
|
"detect_narrow_internal_solid_infill": "1",
|
||||||
|
"thick_bridges": "1",
|
||||||
|
"bridge_angle": "0",
|
||||||
"compatible_printers": [
|
"compatible_printers": [
|
||||||
"Sovol Zero 0.4 nozzle",
|
"Sovol Zero 0.4 nozzle"
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,79 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.25mm Quality @Sovol Zero 1.0 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "JUmnFOoEMJrbWCN9",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.25",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "30",
|
|
||||||
"internal_bridge_speed": "200",
|
|
||||||
"default_acceleration": "40000",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "1.05",
|
|
||||||
"line_width": "1.05",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_print_height": "0.45",
|
|
||||||
"initial_layer_line_width": "1.5",
|
|
||||||
"infill_combination": "0",
|
|
||||||
"sparse_infill_line_width": "1.05",
|
|
||||||
"infill_wall_overlap": "18",
|
|
||||||
"interface_shells": "0",
|
|
||||||
"ironing_flow": "15%",
|
|
||||||
"ironing_spacing": "0.25",
|
|
||||||
"ironing_speed": "15",
|
|
||||||
"ironing_type": "no ironing",
|
|
||||||
"filename_format": "{input_filename_base}_{nozzle_diameter[0]}n_{filament_type[0]}_{layer_height}_{print_time}.gcode",
|
|
||||||
"detect_overhang_wall": "1",
|
|
||||||
"overhang_1_4_speed": "0",
|
|
||||||
"overhang_2_4_speed": "50",
|
|
||||||
"overhang_3_4_speed": "30",
|
|
||||||
"overhang_4_4_speed": "20",
|
|
||||||
"inner_wall_line_width": "1.1",
|
|
||||||
"wall_loops": "3",
|
|
||||||
"print_settings_id": "",
|
|
||||||
"raft_layers": "0",
|
|
||||||
"seam_position": "aligned",
|
|
||||||
"skirt_distance": "0.8",
|
|
||||||
"skirt_height": "1",
|
|
||||||
"skirt_loops": "1",
|
|
||||||
"minimum_sparse_infill_area": "15",
|
|
||||||
"internal_solid_infill_line_width": "1.05",
|
|
||||||
"spiral_mode": "0",
|
|
||||||
"standby_temperature_delta": "-5",
|
|
||||||
"enable_support": "0",
|
|
||||||
"resolution": "0.012",
|
|
||||||
"support_type": "tree(auto)",
|
|
||||||
"support_style": "snug",
|
|
||||||
"support_on_build_plate_only": "0",
|
|
||||||
"support_top_z_distance": "0.25",
|
|
||||||
"support_bottom_z_distance": "0.235",
|
|
||||||
"support_filament": "0",
|
|
||||||
"support_line_width": "1.05",
|
|
||||||
"tree_support_tip_diameter": "1.05",
|
|
||||||
"support_interface_loop_pattern": "0",
|
|
||||||
"support_interface_filament": "0",
|
|
||||||
"support_interface_top_layers": "5",
|
|
||||||
"support_interface_bottom_layers": "-1",
|
|
||||||
"support_interface_spacing": "0.2",
|
|
||||||
"support_bottom_interface_spacing": "0.2",
|
|
||||||
"support_interface_speed": "100%",
|
|
||||||
"support_interface_pattern": "grid",
|
|
||||||
"support_base_pattern": "rectilinear",
|
|
||||||
"support_base_pattern_spacing": "3.5",
|
|
||||||
"support_speed": "100",
|
|
||||||
"support_threshold_angle": "50",
|
|
||||||
"support_object_xy_distance": "0.35",
|
|
||||||
"tree_support_branch_angle": "40",
|
|
||||||
"top_surface_line_width": "1.05",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"top_shell_thickness": "1",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 1.0 nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"setting_id": "oFrWcSxmad1b6sD4",
|
|
||||||
"name": "0.25mm SPEEDBENCHY @Sovol Zero 0.4 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.25",
|
|
||||||
"initial_layer_print_height": "0.25",
|
|
||||||
"line_width": "0.5",
|
|
||||||
"initial_layer_line_width": "0.5",
|
|
||||||
"outer_wall_line_width": "0.5",
|
|
||||||
"inner_wall_line_width": "0.5",
|
|
||||||
"top_surface_line_width": "0.55",
|
|
||||||
"internal_solid_infill_line_width": "0.55",
|
|
||||||
"sparse_infill_line_width": "0.55",
|
|
||||||
"support_line_width": "0.5",
|
|
||||||
"tree_support_tip_diameter": "0.5",
|
|
||||||
"wall_loops": "2",
|
|
||||||
"top_shell_layers": "3",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"bottom_shell_thickness": "0",
|
|
||||||
"sparse_infill_density": "10%",
|
|
||||||
"sparse_infill_pattern": "grid",
|
|
||||||
"bottom_solid_infill_flow_ratio": "1.2",
|
|
||||||
"top_solid_infill_flow_ratio": "1.4",
|
|
||||||
"bridge_flow": "1",
|
|
||||||
"internal_bridge_flow": "1",
|
|
||||||
"bridge_speed": "250",
|
|
||||||
"internal_bridge_speed": "250",
|
|
||||||
"bridge_acceleration": "100%",
|
|
||||||
"thick_bridges": "0",
|
|
||||||
"thick_internal_bridges": "0",
|
|
||||||
"brim_type": "outer_only",
|
|
||||||
"brim_width": "1",
|
|
||||||
"brim_object_gap": "0",
|
|
||||||
"filter_out_gap_fill": "13",
|
|
||||||
"gap_fill_target": "nowhere",
|
|
||||||
"min_width_top_surface": "200%",
|
|
||||||
"minimum_sparse_infill_area": "0",
|
|
||||||
"infill_direction": "0",
|
|
||||||
"solid_infill_direction": "0",
|
|
||||||
"infill_wall_overlap": "15%",
|
|
||||||
"reduce_crossing_wall": "0",
|
|
||||||
"skirt_loops": "0",
|
|
||||||
"only_one_wall_top": "1",
|
|
||||||
"slow_down_layers": "1",
|
|
||||||
"wall_direction": "cw",
|
|
||||||
"initial_layer_speed": "300",
|
|
||||||
"initial_layer_infill_speed": "300",
|
|
||||||
"initial_layer_travel_speed": "100%",
|
|
||||||
"outer_wall_speed": "350",
|
|
||||||
"inner_wall_speed": "400",
|
|
||||||
"small_perimeter_speed": "100%",
|
|
||||||
"internal_solid_infill_speed": "400",
|
|
||||||
"top_surface_speed": "300",
|
|
||||||
"gap_infill_speed": "350",
|
|
||||||
"sparse_infill_speed": "500",
|
|
||||||
"support_speed": "100",
|
|
||||||
"travel_speed": "1200",
|
|
||||||
"default_acceleration": "40000",
|
|
||||||
"initial_layer_acceleration": "20000",
|
|
||||||
"outer_wall_acceleration": "40000",
|
|
||||||
"inner_wall_acceleration": "40000",
|
|
||||||
"top_surface_acceleration": "20000",
|
|
||||||
"internal_solid_infill_acceleration": "100%",
|
|
||||||
"travel_acceleration": "40000",
|
|
||||||
"accel_to_decel_factor": "50%",
|
|
||||||
"outer_wall_jerk": "20",
|
|
||||||
"inner_wall_jerk": "20",
|
|
||||||
"infill_jerk": "20",
|
|
||||||
"top_surface_jerk": "20",
|
|
||||||
"initial_layer_jerk": "20",
|
|
||||||
"travel_jerk": "20",
|
|
||||||
"overhang_1_4_speed": "160",
|
|
||||||
"overhang_2_4_speed": "100",
|
|
||||||
"overhang_3_4_speed": "60",
|
|
||||||
"overhang_4_4_speed": "40",
|
|
||||||
"support_top_z_distance": "0.235",
|
|
||||||
"support_bottom_z_distance": "0.235",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.28mm Fast @Sovol Zero 0.4 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "1VoML2LGDk4TJgLI",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.28",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"bottom_shell_thickness": "0",
|
|
||||||
"bridge_speed": "60",
|
|
||||||
"outer_wall_acceleration": "22000",
|
|
||||||
"top_surface_acceleration": "22000",
|
|
||||||
"outer_wall_line_width": "0.48",
|
|
||||||
"line_width": "0.48",
|
|
||||||
"sparse_infill_density": "10%",
|
|
||||||
"inner_wall_acceleration": "28000",
|
|
||||||
"initial_layer_print_height": "0.28",
|
|
||||||
"initial_layer_line_width": "0.6",
|
|
||||||
"sparse_infill_line_width": "0.48",
|
|
||||||
"inner_wall_line_width": "0.48",
|
|
||||||
"internal_solid_infill_line_width": "0.48",
|
|
||||||
"support_top_z_distance": "0.30",
|
|
||||||
"support_line_width": "0.48",
|
|
||||||
"tree_support_tip_diameter": "0.48",
|
|
||||||
"support_speed": "120",
|
|
||||||
"top_surface_line_width": "0.48",
|
|
||||||
"outer_wall_speed": "350",
|
|
||||||
"inner_wall_speed": "400",
|
|
||||||
"small_perimeter_speed": "50%",
|
|
||||||
"internal_solid_infill_speed": "200",
|
|
||||||
"top_surface_speed": "200",
|
|
||||||
"gap_infill_speed": "200",
|
|
||||||
"sparse_infill_speed": "500",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.4 nozzle",
|
|
||||||
"Sovol Zero 0.4 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"setting_id": "lTAs2USEP8D749K7",
|
|
||||||
"name": "0.30mm Standard @Sovol Zero 0.6 nozzle",
|
|
||||||
"from": "system",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.30",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "50",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "0.66",
|
|
||||||
"line_width": "0.66",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_print_height": "0.36",
|
|
||||||
"initial_layer_line_width": "0.9",
|
|
||||||
"sparse_infill_line_width": "0.66",
|
|
||||||
"infill_wall_overlap": "20",
|
|
||||||
"inner_wall_line_width": "0.66",
|
|
||||||
"wall_loops": "2",
|
|
||||||
"support_top_z_distance": "0.30",
|
|
||||||
"support_line_width": "0.66",
|
|
||||||
"tree_support_tip_diameter": "0.66",
|
|
||||||
"support_speed": "100",
|
|
||||||
"top_surface_line_width": "0.66",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"internal_solid_infill_line_width": "0.66",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.40mm Standard @Sovol Zero 0.8 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "8x4CsuqroC9HOdAN",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.40",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "50",
|
|
||||||
"outer_wall_acceleration": "10000",
|
|
||||||
"top_surface_acceleration": "5000",
|
|
||||||
"outer_wall_line_width": "0.88",
|
|
||||||
"line_width": "0.88",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "12000",
|
|
||||||
"initial_layer_print_height": "0.48",
|
|
||||||
"initial_layer_line_width": "1.2",
|
|
||||||
"sparse_infill_line_width": "0.88",
|
|
||||||
"infill_wall_overlap": "20",
|
|
||||||
"inner_wall_line_width": "0.88",
|
|
||||||
"wall_loops": "2",
|
|
||||||
"support_top_z_distance": "0.40",
|
|
||||||
"support_line_width": "0.88",
|
|
||||||
"tree_support_tip_diameter": "0.88",
|
|
||||||
"support_speed": "100",
|
|
||||||
"top_surface_line_width": "0.88",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"outer_wall_speed": "350",
|
|
||||||
"inner_wall_speed": "400",
|
|
||||||
"small_perimeter_speed": "50%",
|
|
||||||
"internal_solid_infill_speed": "200",
|
|
||||||
"top_surface_speed": "200",
|
|
||||||
"gap_infill_speed": "200",
|
|
||||||
"sparse_infill_speed": "500",
|
|
||||||
"internal_solid_infill_line_width": "0.88",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.42mm Fast @Sovol Zero 0.6 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "illqJAnGiA2pY0hw",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.42",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"bottom_shell_thickness": "0",
|
|
||||||
"bridge_speed": "60",
|
|
||||||
"outer_wall_acceleration": "22000",
|
|
||||||
"top_surface_acceleration": "22000",
|
|
||||||
"outer_wall_line_width": "0.72",
|
|
||||||
"line_width": "0.72",
|
|
||||||
"sparse_infill_density": "10%",
|
|
||||||
"inner_wall_acceleration": "28000",
|
|
||||||
"initial_layer_print_height": "0.42",
|
|
||||||
"initial_layer_line_width": "0.9",
|
|
||||||
"sparse_infill_line_width": "0.72",
|
|
||||||
"inner_wall_line_width": "0.72",
|
|
||||||
"internal_solid_infill_line_width": "0.72",
|
|
||||||
"support_top_z_distance": "0.45",
|
|
||||||
"support_line_width": "0.72",
|
|
||||||
"tree_support_tip_diameter": "0.72",
|
|
||||||
"support_speed": "120",
|
|
||||||
"top_surface_line_width": "0.72",
|
|
||||||
"outer_wall_speed": "350",
|
|
||||||
"inner_wall_speed": "400",
|
|
||||||
"small_perimeter_speed": "50%",
|
|
||||||
"internal_solid_infill_speed": "200",
|
|
||||||
"top_surface_speed": "200",
|
|
||||||
"gap_infill_speed": "200",
|
|
||||||
"sparse_infill_speed": "500",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.6 nozzle",
|
|
||||||
"Sovol Zero 0.6 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.50mm Standard @Sovol Zero 1.0 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "E5K55O4RkMyYCAlt",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.50",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"bottom_shell_thickness": "0.8",
|
|
||||||
"bridge_speed": "45",
|
|
||||||
"internal_bridge_speed": "200",
|
|
||||||
"default_acceleration": "22000",
|
|
||||||
"outer_wall_acceleration": "16000",
|
|
||||||
"top_surface_acceleration": "16000",
|
|
||||||
"outer_wall_line_width": "1.1",
|
|
||||||
"line_width": "1.1",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"inner_wall_acceleration": "22000",
|
|
||||||
"initial_layer_print_height": "0.60",
|
|
||||||
"initial_layer_line_width": "1.5",
|
|
||||||
"infill_combination": "0",
|
|
||||||
"sparse_infill_line_width": "1.1",
|
|
||||||
"infill_wall_overlap": "20",
|
|
||||||
"interface_shells": "0",
|
|
||||||
"ironing_flow": "15%",
|
|
||||||
"ironing_spacing": "0.25",
|
|
||||||
"ironing_speed": "15",
|
|
||||||
"ironing_type": "no ironing",
|
|
||||||
"filename_format": "{input_filename_base}_{nozzle_diameter[0]}n_{filament_type[0]}_{layer_height}_{print_time}.gcode",
|
|
||||||
"detect_overhang_wall": "1",
|
|
||||||
"overhang_1_4_speed": "0",
|
|
||||||
"overhang_2_4_speed": "50",
|
|
||||||
"overhang_3_4_speed": "30",
|
|
||||||
"overhang_4_4_speed": "20",
|
|
||||||
"inner_wall_line_width": "1.1",
|
|
||||||
"wall_loops": "2",
|
|
||||||
"print_settings_id": "",
|
|
||||||
"raft_layers": "0",
|
|
||||||
"seam_position": "aligned",
|
|
||||||
"skirt_distance": "0.8",
|
|
||||||
"skirt_height": "1",
|
|
||||||
"skirt_loops": "1",
|
|
||||||
"minimum_sparse_infill_area": "15",
|
|
||||||
"internal_solid_infill_line_width": "1.1",
|
|
||||||
"spiral_mode": "0",
|
|
||||||
"standby_temperature_delta": "-5",
|
|
||||||
"enable_support": "0",
|
|
||||||
"resolution": "0.012",
|
|
||||||
"support_type": "tree(auto)",
|
|
||||||
"support_style": "snug",
|
|
||||||
"support_on_build_plate_only": "0",
|
|
||||||
"support_top_z_distance": "0.50",
|
|
||||||
"support_bottom_z_distance": "0.235",
|
|
||||||
"support_filament": "0",
|
|
||||||
"support_line_width": "1.1",
|
|
||||||
"tree_support_tip_diameter": "1.1",
|
|
||||||
"support_interface_loop_pattern": "0",
|
|
||||||
"support_interface_filament": "0",
|
|
||||||
"support_interface_top_layers": "5",
|
|
||||||
"support_interface_bottom_layers": "-1",
|
|
||||||
"support_interface_spacing": "0.2",
|
|
||||||
"support_bottom_interface_spacing": "0.2",
|
|
||||||
"support_interface_speed": "100%",
|
|
||||||
"support_interface_pattern": "grid",
|
|
||||||
"support_base_pattern": "rectilinear",
|
|
||||||
"support_base_pattern_spacing": "3.5",
|
|
||||||
"support_speed": "60",
|
|
||||||
"support_threshold_angle": "50",
|
|
||||||
"support_object_xy_distance": "0.35",
|
|
||||||
"tree_support_branch_angle": "40",
|
|
||||||
"top_surface_line_width": "1.1",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"top_shell_thickness": "1",
|
|
||||||
"outer_wall_speed": "30",
|
|
||||||
"inner_wall_speed": "45",
|
|
||||||
"small_perimeter_speed": "45",
|
|
||||||
"internal_solid_infill_speed": "45",
|
|
||||||
"top_surface_speed": "35",
|
|
||||||
"gap_infill_speed": "35",
|
|
||||||
"sparse_infill_speed": "70",
|
|
||||||
"travel_acceleration": "38000",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 1.0 nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.56mm Fast @Sovol Zero 0.8 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "g9PPRM4FLMwjMUfy",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.56",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"bottom_shell_thickness": "0",
|
|
||||||
"bridge_speed": "60",
|
|
||||||
"default_acceleration": "28000",
|
|
||||||
"outer_wall_acceleration": "22000",
|
|
||||||
"top_surface_acceleration": "22000",
|
|
||||||
"outer_wall_line_width": "0.96",
|
|
||||||
"line_width": "0.96",
|
|
||||||
"sparse_infill_density": "10%",
|
|
||||||
"inner_wall_acceleration": "28000",
|
|
||||||
"initial_layer_print_height": "0.56",
|
|
||||||
"initial_layer_line_width": "1.2",
|
|
||||||
"sparse_infill_line_width": "0.96",
|
|
||||||
"inner_wall_line_width": "0.96",
|
|
||||||
"internal_solid_infill_line_width": "0.96",
|
|
||||||
"support_top_z_distance": "0.60",
|
|
||||||
"support_line_width": "0.96",
|
|
||||||
"tree_support_tip_diameter": "0.96",
|
|
||||||
"top_surface_line_width": "0.96",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"outer_wall_speed": "35",
|
|
||||||
"inner_wall_speed": "55",
|
|
||||||
"small_perimeter_speed": "60",
|
|
||||||
"internal_solid_infill_speed": "55",
|
|
||||||
"top_surface_speed": "40",
|
|
||||||
"gap_infill_speed": "40",
|
|
||||||
"sparse_infill_speed": "80",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 0.8 nozzle",
|
|
||||||
"Sovol Zero 0.8 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.70mm Fast @Sovol Zero 1.0 nozzle",
|
|
||||||
"inherits": "fdm_process_zero",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "fW5KJBVndgQE868q",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.70",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"bottom_shell_thickness": "0",
|
|
||||||
"bridge_speed": "60",
|
|
||||||
"outer_wall_acceleration": "22000",
|
|
||||||
"top_surface_acceleration": "22000",
|
|
||||||
"outer_wall_line_width": "1.2",
|
|
||||||
"line_width": "1.2",
|
|
||||||
"sparse_infill_density": "10%",
|
|
||||||
"inner_wall_acceleration": "28000",
|
|
||||||
"initial_layer_print_height": "0.70",
|
|
||||||
"initial_layer_line_width": "1.5",
|
|
||||||
"sparse_infill_line_width": "1.2",
|
|
||||||
"inner_wall_line_width": "1.2",
|
|
||||||
"internal_solid_infill_line_width": "1.2",
|
|
||||||
"support_top_z_distance": "0.75",
|
|
||||||
"support_line_width": "1.2",
|
|
||||||
"tree_support_tip_diameter": "1.2",
|
|
||||||
"support_speed": "120",
|
|
||||||
"top_surface_line_width": "1.2",
|
|
||||||
"top_shell_layers": "3",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Sovol Zero 1.0 nozzle",
|
|
||||||
"Sovol Zero 1.0 Hardened Steel nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "fdm_process_zero",
|
|
||||||
"inherits": "fdm_process_common",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "false",
|
|
||||||
"reduce_crossing_wall": "1",
|
|
||||||
"max_travel_detour_distance": "10",
|
|
||||||
"bottom_surface_pattern": "monotonic",
|
|
||||||
"bridge_flow": "1.2",
|
|
||||||
"internal_bridge_flow": "1.2",
|
|
||||||
"brim_type": "auto_brim",
|
|
||||||
"brim_width": "5",
|
|
||||||
"brim_object_gap": "0",
|
|
||||||
"print_sequence": "by layer",
|
|
||||||
"bridge_no_support": "0",
|
|
||||||
"draft_shield": "disabled",
|
|
||||||
"elefant_foot_compensation": "0.1",
|
|
||||||
"enable_arc_fitting": "0",
|
|
||||||
"exclude_object": "1",
|
|
||||||
"wall_infill_order": "inner wall/outer wall/infill",
|
|
||||||
"infill_direction": "45",
|
|
||||||
"sparse_infill_pattern": "grid",
|
|
||||||
"internal_solid_infill_acceleration": "50%",
|
|
||||||
"initial_layer_acceleration": "1000",
|
|
||||||
"travel_acceleration": "40000",
|
|
||||||
"outer_wall_jerk": "5",
|
|
||||||
"inner_wall_jerk": "5",
|
|
||||||
"infill_jerk": "5",
|
|
||||||
"top_surface_jerk": "5",
|
|
||||||
"initial_layer_jerk": "5",
|
|
||||||
"travel_jerk": "5",
|
|
||||||
"tree_support_wall_count": "0",
|
|
||||||
"reduce_infill_retraction": "1",
|
|
||||||
"detect_thin_wall": "1",
|
|
||||||
"top_surface_pattern": "monotonic",
|
|
||||||
"initial_layer_speed": "55",
|
|
||||||
"initial_layer_infill_speed": "105",
|
|
||||||
"initial_layer_travel_speed": "60%",
|
|
||||||
"outer_wall_speed": "350",
|
|
||||||
"inner_wall_speed": "400",
|
|
||||||
"small_perimeter_speed": "50%",
|
|
||||||
"internal_solid_infill_speed": "200",
|
|
||||||
"top_surface_speed": "200",
|
|
||||||
"gap_infill_speed": "200",
|
|
||||||
"sparse_infill_speed": "500",
|
|
||||||
"accel_to_decel_enable": "1",
|
|
||||||
"accel_to_decel_factor": "25%",
|
|
||||||
"travel_speed": "1000",
|
|
||||||
"enable_prime_tower": "0",
|
|
||||||
"wipe_tower_no_sparse_layers": "0",
|
|
||||||
"prime_tower_width": "60",
|
|
||||||
"xy_hole_compensation": "0",
|
|
||||||
"xy_contour_compensation": "0",
|
|
||||||
"bridge_acceleration": "50%",
|
|
||||||
"seam_gap": "10%",
|
|
||||||
"precise_outer_wall": "1",
|
|
||||||
"wall_generator": "classic",
|
|
||||||
"gcode_label_objects": "1",
|
|
||||||
"slow_down_layers": "3",
|
|
||||||
"top_solid_infill_flow_ratio": "0.9",
|
|
||||||
"only_one_wall_top": "1",
|
|
||||||
"top_bottom_infill_wall_overlap": "25%",
|
|
||||||
"filter_out_gap_fill": "0",
|
|
||||||
"detect_narrow_internal_solid_infill": "1",
|
|
||||||
"thick_bridges": "1",
|
|
||||||
"bridge_angle": "0",
|
|
||||||
"initial_layer_line_width": "150%",
|
|
||||||
"default_acceleration": "40000",
|
|
||||||
"compatible_printers": [],
|
|
||||||
"internal_bridge_speed": "150",
|
|
||||||
"filename_format": "{input_filename_base}_{nozzle_diameter[0]}n_{filament_type[0]}_{layer_height}_{print_time}.gcode"
|
|
||||||
}
|
|
||||||
@@ -1,60 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "Wanhao",
|
"name": "Wanhao",
|
||||||
"version": "02.04.00.03",
|
"version": "02.04.00.02",
|
||||||
"force_update": "0",
|
"force_update": "0",
|
||||||
"description": "Wanhao configurations",
|
"description": "Wanhao configurations",
|
||||||
"machine_model_list": [
|
"machine_model_list": [
|
||||||
{
|
{
|
||||||
"name": "Wanhao D12-300",
|
"name": "Wanhao D12-300",
|
||||||
"sub_path": "machine/Wanhao D12-300.json"
|
"sub_path": "machine/Wanhao D12-300.json"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK1",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK1.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK1 BLTouch kit",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK1 BLTouch kit.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK2",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK2.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK3",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK3.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK1",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK1.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK1 BLTouch kit",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK1 BLTouch kit.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK2",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK2.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK3",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK3.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK1",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK1.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK1 BLTouch kit",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK1 BLTouch kit.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK2",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK2.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK3",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK3.json"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"process_list": [
|
"process_list": [
|
||||||
@@ -81,38 +33,6 @@
|
|||||||
{
|
{
|
||||||
"name": "0.24mm Draft @Wanhao D12-300",
|
"name": "0.24mm Draft @Wanhao D12-300",
|
||||||
"sub_path": "process/0.24mm Draft @Wanhao D12-300.json"
|
"sub_path": "process/0.24mm Draft @Wanhao D12-300.json"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fdm_process_wanhao_d9_common",
|
|
||||||
"sub_path": "process/fdm_process_wanhao_d9_common.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.12mm Fine @Wanhao D9",
|
|
||||||
"sub_path": "process/0.12mm Fine @Wanhao D9.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.20mm Standard @Wanhao D9",
|
|
||||||
"sub_path": "process/0.20mm Standard @Wanhao D9.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.28mm Draft @Wanhao D9",
|
|
||||||
"sub_path": "process/0.28mm Draft @Wanhao D9.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fdm_process_wanhao_d9_mk1_common",
|
|
||||||
"sub_path": "process/fdm_process_wanhao_d9_mk1_common.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.12mm Fine @Wanhao D9 MK1",
|
|
||||||
"sub_path": "process/0.12mm Fine @Wanhao D9 MK1.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.20mm Standard @Wanhao D9 MK1",
|
|
||||||
"sub_path": "process/0.20mm Standard @Wanhao D9 MK1.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "0.28mm Draft @Wanhao D9 MK1",
|
|
||||||
"sub_path": "process/0.28mm Draft @Wanhao D9 MK1.json"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filament_list": [],
|
"filament_list": [],
|
||||||
@@ -128,62 +48,6 @@
|
|||||||
{
|
{
|
||||||
"name": "Wanhao D12-300 0.4 nozzle",
|
"name": "Wanhao D12-300 0.4 nozzle",
|
||||||
"sub_path": "machine/Wanhao D12-300 0.4 nozzle.json"
|
"sub_path": "machine/Wanhao D12-300 0.4 nozzle.json"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fdm_wanhao_d9_common",
|
|
||||||
"sub_path": "machine/fdm_wanhao_d9_common.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK1 BLTouch kit 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK2 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK2 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK3 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK3 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK1 BLTouch kit 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK2 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK2 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK3 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK3 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK1 BLTouch kit 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK2 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK2 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK3 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK3 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fdm_wanhao_d9_mk1_common",
|
|
||||||
"sub_path": "machine/fdm_wanhao_d9_mk1_common.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-300 MK1 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-300 MK1 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-400 MK1 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-400 MK1 0.4 nozzle.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Wanhao D9-500 MK1 0.4 nozzle",
|
|
||||||
"sub_path": "machine/Wanhao D9-500 MK1 0.4 nozzle.json"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-300 MK1 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_mk1_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "MXNRpMDaVXj2xUx0",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-300 MK1",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"300x0",
|
|
||||||
"300x300",
|
|
||||||
"0x300"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9 MK1"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-300 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "rq6cPs92KgrUyZrn",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-300 MK1 BLTouch kit",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"300x0",
|
|
||||||
"300x300",
|
|
||||||
"0x300"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-300 MK1 BLTouch kit",
|
|
||||||
"model_id": "Wanhao-D9-300-MK1u2",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-300 MK1",
|
|
||||||
"model_id": "Wanhao-D9-300-MK1",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-300 MK2 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "w3Cin9es1Jfx0dmR",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-300 MK2",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"300x0",
|
|
||||||
"300x300",
|
|
||||||
"0x300"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-300 MK2",
|
|
||||||
"model_id": "Wanhao-D9-300-MK2",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-300 MK3 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "acFQWZqlt4QSgBPv",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-300 MK3",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"300x0",
|
|
||||||
"300x300",
|
|
||||||
"0x300"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-300 MK3",
|
|
||||||
"model_id": "Wanhao-D9-300-MK3",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-400 MK1 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_mk1_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "DGSNE3AbmlBBG5PY",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-400 MK1",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"400x0",
|
|
||||||
"400x400",
|
|
||||||
"0x400"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9 MK1"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-400 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "WcKY7v24ewtzPfnU",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-400 MK1 BLTouch kit",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"400x0",
|
|
||||||
"400x400",
|
|
||||||
"0x400"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-400 MK1 BLTouch kit",
|
|
||||||
"model_id": "Wanhao-D9-400-MK1u2",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-400 MK1",
|
|
||||||
"model_id": "Wanhao-D9-400-MK1",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-400 MK2 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "jn1FEJFeN7S2gEbD",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-400 MK2",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"400x0",
|
|
||||||
"400x400",
|
|
||||||
"0x400"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-400 MK2",
|
|
||||||
"model_id": "Wanhao-D9-400-MK2",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-400 MK3 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "2kFyH1E3tqMWtDmG",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-400 MK3",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"400x0",
|
|
||||||
"400x400",
|
|
||||||
"0x400"
|
|
||||||
],
|
|
||||||
"printable_height": "400",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-400 MK3",
|
|
||||||
"model_id": "Wanhao-D9-400-MK3",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-500 MK1 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_mk1_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "nj0TfnDKHb4wFX1R",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-500 MK1",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"500x0",
|
|
||||||
"500x500",
|
|
||||||
"0x500"
|
|
||||||
],
|
|
||||||
"printable_height": "500",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9 MK1"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-500 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "Hmrnlh6pJzdO2dIJ",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-500 MK1 BLTouch kit",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"500x0",
|
|
||||||
"500x500",
|
|
||||||
"0x500"
|
|
||||||
],
|
|
||||||
"printable_height": "500",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-500 MK1 BLTouch kit",
|
|
||||||
"model_id": "Wanhao-D9-500-MK1u2",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-500 MK1",
|
|
||||||
"model_id": "Wanhao-D9-500-MK1",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-500 MK2 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "g2GSmhWJLFDwqzFI",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-500 MK2",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"500x0",
|
|
||||||
"500x500",
|
|
||||||
"0x500"
|
|
||||||
],
|
|
||||||
"printable_height": "500",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-500 MK2",
|
|
||||||
"model_id": "Wanhao-D9-500-MK2",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "Wanhao D9-500 MK3 0.4 nozzle",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "F7l90Rgr8Ni0sQva",
|
|
||||||
"instantiation": "true",
|
|
||||||
"printer_model": "Wanhao D9-500 MK3",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printable_area": [
|
|
||||||
"0x0",
|
|
||||||
"500x0",
|
|
||||||
"500x500",
|
|
||||||
"0x500"
|
|
||||||
],
|
|
||||||
"printable_height": "500",
|
|
||||||
"default_print_profile": "0.20mm Standard @Wanhao D9"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine_model",
|
|
||||||
"name": "Wanhao D9-500 MK3",
|
|
||||||
"model_id": "Wanhao-D9-500-MK3",
|
|
||||||
"nozzle_diameter": "0.4",
|
|
||||||
"machine_tech": "FFF",
|
|
||||||
"family": "Wanhao",
|
|
||||||
"default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System"
|
|
||||||
}
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "fdm_wanhao_d9_common",
|
|
||||||
"inherits": "fdm_wanhao_common",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "false",
|
|
||||||
"gcode_flavor": "marlin2",
|
|
||||||
"use_relative_e_distances": "1",
|
|
||||||
"emit_machine_limits_to_gcode": "0",
|
|
||||||
"nozzle_diameter": [
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"printer_variant": "0.4",
|
|
||||||
"max_layer_height": [
|
|
||||||
"0.32"
|
|
||||||
],
|
|
||||||
"min_layer_height": [
|
|
||||||
"0.08"
|
|
||||||
],
|
|
||||||
"machine_max_speed_x": [
|
|
||||||
"300",
|
|
||||||
"300"
|
|
||||||
],
|
|
||||||
"machine_max_speed_y": [
|
|
||||||
"300",
|
|
||||||
"300"
|
|
||||||
],
|
|
||||||
"machine_max_speed_z": [
|
|
||||||
"5",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"machine_max_speed_e": [
|
|
||||||
"25",
|
|
||||||
"25"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_x": [
|
|
||||||
"3000",
|
|
||||||
"3000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_y": [
|
|
||||||
"3000",
|
|
||||||
"3000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_z": [
|
|
||||||
"100",
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_e": [
|
|
||||||
"3000",
|
|
||||||
"3000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_extruding": [
|
|
||||||
"1000",
|
|
||||||
"1000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_travel": [
|
|
||||||
"1000",
|
|
||||||
"1000"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_retracting": [
|
|
||||||
"800",
|
|
||||||
"800"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_x": [
|
|
||||||
"10",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_y": [
|
|
||||||
"10",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_z": [
|
|
||||||
"0.4",
|
|
||||||
"0.4"
|
|
||||||
],
|
|
||||||
"machine_max_jerk_e": [
|
|
||||||
"1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"retraction_length": [
|
|
||||||
"2.0"
|
|
||||||
],
|
|
||||||
"retraction_speed": [
|
|
||||||
"25"
|
|
||||||
],
|
|
||||||
"deretraction_speed": [
|
|
||||||
"25"
|
|
||||||
],
|
|
||||||
"retraction_minimum_travel": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"z_hop": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"wipe": [
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"retract_when_changing_layer": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"machine_start_gcode": "; Wanhao Duplicator 9 start G-code, for the Marlin 2.1 firmwares at github.com/Le-Syl21/WANHAO-Duplicator-9\nG21 ; millimetres\nG90 ; absolute coordinates\nM83 ; relative extrusion\nM140 S[bed_temperature_initial_layer_single] ; heat the bed\nM104 S150 ; warm the nozzle without letting it ooze\nG91 ; a print stopped by hand can leave the nozzle down on the bed\nG1 Z10 F300 ; so raise it before homing: a BLTouch needs 10 mm to deploy\nG90\nM280 P0 S160 ; BLTouch: clear an alarm and stow the pin\nG28 ; home all axes (this turns bed levelling off)\nM420 S1 ; turn the bed mesh saved from the screen back on\nG1 Z10 F300\nM104 S[nozzle_temperature_initial_layer] ; start the nozzle now, the bed is still heating\nM190 S[bed_temperature_initial_layer_single] ; wait for the bed\nM109 S[nozzle_temperature_initial_layer] ; and confirm the nozzle\nG92 E0\nG1 X15 Y20 Z0.3 F3000 ; start of the priming line\nG1 Y140 E9.0 F1200 ; draw a line of filament\nG1 X15.5 F3000\nG1 Y20 E9.0 F1200 ; and back, next to it\nG92 E0\nG1 X22 F6000 ; wipe sideways to snap the string\nG1 Z2 F300 ; lift, so the line does not stick to the nozzle",
|
|
||||||
"machine_end_gcode": "; Wanhao Duplicator 9 end G-code\nM104 S0 ; nozzle heater off\nM140 S0 ; bed heater off\nM107 ; fan off\nG91 ; relative moves\nG1 E-2 F1500 ; release the pressure in the nozzle\nG1 Z10 F300 ; lift the nozzle\nG90 ; absolute moves\nG1 X5 Y{print_bed_max[1] - 10} F3000 ; bring the bed to the front\nM84 X Y E ; motors off, Z keeps its position",
|
|
||||||
"layer_change_gcode": "G92 E0",
|
|
||||||
"machine_pause_gcode": "M600",
|
|
||||||
"default_filament_profile": [
|
|
||||||
"Generic PLA @System"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "machine",
|
|
||||||
"name": "fdm_wanhao_d9_mk1_common",
|
|
||||||
"inherits": "fdm_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "false",
|
|
||||||
"machine_start_gcode": "; Wanhao Duplicator 9 start G-code, for the Marlin 2.1 firmwares at github.com/Le-Syl21/WANHAO-Duplicator-9\nG21 ; millimetres\nG90 ; absolute coordinates\nM83 ; relative extrusion\nM140 S[bed_temperature_initial_layer_single] ; heat the bed\nM104 S150 ; warm the nozzle without letting it ooze\nG91 ; a print stopped by hand can leave the nozzle down on the bed\nG1 Z10 F300 ; clear the bed before homing\nG90\nG28 ; home all axes (this turns bed levelling off)\nM420 S1 ; turn the bed mesh saved from the screen back on\nG1 Z10 F300\nM104 S[nozzle_temperature_initial_layer] ; start the nozzle now, the bed is still heating\nM190 S[bed_temperature_initial_layer_single] ; wait for the bed\nM109 S[nozzle_temperature_initial_layer] ; and confirm the nozzle\nG92 E0\nG1 X15 Y20 Z0.3 F3000 ; start of the priming line\nG1 Y140 E9.0 F1200 ; draw a line of filament\nG1 X15.5 F3000\nG1 Y20 E9.0 F1200 ; and back, next to it\nG92 E0\nG1 X22 F6000 ; wipe sideways to snap the string\nG1 Z2 F300 ; lift, so the line does not stick to the nozzle",
|
|
||||||
"machine_max_acceleration_x": [
|
|
||||||
"500",
|
|
||||||
"500"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_y": [
|
|
||||||
"500",
|
|
||||||
"500"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_e": [
|
|
||||||
"500",
|
|
||||||
"500"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_extruding": [
|
|
||||||
"500",
|
|
||||||
"500"
|
|
||||||
],
|
|
||||||
"machine_max_acceleration_travel": [
|
|
||||||
"500",
|
|
||||||
"500"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.12mm Fine @Wanhao D9 MK1",
|
|
||||||
"inherits": "fdm_process_wanhao_d9_mk1_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "EClNN5UDWbLACTuz",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.12",
|
|
||||||
"initial_layer_print_height": "0.14",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Wanhao D9-300 MK1 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK1 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK1 0.4 nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.12mm Fine @Wanhao D9",
|
|
||||||
"inherits": "fdm_process_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "0hvsKsPO55TlduZR",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.12",
|
|
||||||
"initial_layer_print_height": "0.14",
|
|
||||||
"top_shell_layers": "4",
|
|
||||||
"bottom_shell_layers": "4",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Wanhao D9-300 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-300 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-300 MK3 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK3 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK3 0.4 nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.20mm Standard @Wanhao D9 MK1",
|
|
||||||
"inherits": "fdm_process_wanhao_d9_mk1_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "CXNOj3tPeTUXx81B",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.20",
|
|
||||||
"initial_layer_print_height": "0.24",
|
|
||||||
"top_shell_layers": "3",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Wanhao D9-300 MK1 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK1 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK1 0.4 nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.20mm Standard @Wanhao D9",
|
|
||||||
"inherits": "fdm_process_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "UVXxknNxJswqaURQ",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.20",
|
|
||||||
"initial_layer_print_height": "0.24",
|
|
||||||
"top_shell_layers": "3",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Wanhao D9-300 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-300 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-300 MK3 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK3 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK3 0.4 nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.28mm Draft @Wanhao D9 MK1",
|
|
||||||
"inherits": "fdm_process_wanhao_d9_mk1_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "omfIWwVnQVVxPrtb",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.28",
|
|
||||||
"initial_layer_print_height": "0.34",
|
|
||||||
"top_shell_layers": "3",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Wanhao D9-300 MK1 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK1 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK1 0.4 nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "0.28mm Draft @Wanhao D9",
|
|
||||||
"inherits": "fdm_process_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"setting_id": "FEJqq1ylXWqaBPR6",
|
|
||||||
"instantiation": "true",
|
|
||||||
"layer_height": "0.28",
|
|
||||||
"initial_layer_print_height": "0.34",
|
|
||||||
"top_shell_layers": "3",
|
|
||||||
"bottom_shell_layers": "3",
|
|
||||||
"compatible_printers": [
|
|
||||||
"Wanhao D9-300 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK1 BLTouch kit 0.4 nozzle",
|
|
||||||
"Wanhao D9-300 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK2 0.4 nozzle",
|
|
||||||
"Wanhao D9-300 MK3 0.4 nozzle",
|
|
||||||
"Wanhao D9-400 MK3 0.4 nozzle",
|
|
||||||
"Wanhao D9-500 MK3 0.4 nozzle"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "fdm_process_wanhao_d9_common",
|
|
||||||
"inherits": "fdm_process_wanhao_common",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "false",
|
|
||||||
"line_width": "0.4",
|
|
||||||
"initial_layer_line_width": "0.6",
|
|
||||||
"wall_loops": "2",
|
|
||||||
"infill_wall_overlap": "15%",
|
|
||||||
"sparse_infill_density": "15%",
|
|
||||||
"sparse_infill_pattern": "gyroid",
|
|
||||||
"outer_wall_speed": "25",
|
|
||||||
"inner_wall_speed": "40",
|
|
||||||
"sparse_infill_speed": "50",
|
|
||||||
"internal_solid_infill_speed": "50",
|
|
||||||
"top_surface_speed": "40",
|
|
||||||
"gap_infill_speed": "40",
|
|
||||||
"bridge_speed": "50",
|
|
||||||
"support_speed": "35",
|
|
||||||
"initial_layer_speed": "25",
|
|
||||||
"initial_layer_infill_speed": "25",
|
|
||||||
"travel_speed": "100",
|
|
||||||
"default_acceleration": "1000",
|
|
||||||
"outer_wall_acceleration": "1000",
|
|
||||||
"inner_wall_acceleration": "1000",
|
|
||||||
"top_surface_acceleration": "1000",
|
|
||||||
"sparse_infill_acceleration": "1000",
|
|
||||||
"initial_layer_acceleration": "1000",
|
|
||||||
"bridge_acceleration": "1000",
|
|
||||||
"travel_acceleration": "1000",
|
|
||||||
"default_jerk": "0",
|
|
||||||
"skirt_loops": "2",
|
|
||||||
"skirt_distance": "4",
|
|
||||||
"brim_type": "no_brim",
|
|
||||||
"enable_support": "0",
|
|
||||||
"enable_arc_fitting": "0"
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"name": "fdm_process_wanhao_d9_mk1_common",
|
|
||||||
"inherits": "fdm_process_wanhao_d9_common",
|
|
||||||
"from": "system",
|
|
||||||
"instantiation": "false",
|
|
||||||
"default_acceleration": "500",
|
|
||||||
"outer_wall_acceleration": "500",
|
|
||||||
"inner_wall_acceleration": "500",
|
|
||||||
"top_surface_acceleration": "500",
|
|
||||||
"sparse_infill_acceleration": "500",
|
|
||||||
"initial_layer_acceleration": "500",
|
|
||||||
"bridge_acceleration": "500",
|
|
||||||
"travel_acceleration": "500"
|
|
||||||
}
|
|
||||||
@@ -575,7 +575,7 @@ function CapabilityCanRun(plugin, capability) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function IsPluginChecked(plugin) {
|
function IsPluginChecked(plugin) {
|
||||||
return GetStatus(plugin) === "Activated";
|
return plugin.is_loaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
function HasMixedCapabilityState(plugin) {
|
function HasMixedCapabilityState(plugin) {
|
||||||
@@ -1347,6 +1347,8 @@ function StatusDescription(plugin) {
|
|||||||
return "This plugin is still loading.";
|
return "This plugin is still loading.";
|
||||||
case "Error":
|
case "Error":
|
||||||
return "This plugin is blocked until its error is fixed.";
|
return "This plugin is blocked until its error is fixed.";
|
||||||
|
case "RuntimeError":
|
||||||
|
return "This plugin is loaded but a capability reported an error.";
|
||||||
case "Inactive":
|
case "Inactive":
|
||||||
default:
|
default:
|
||||||
return "This plugin is inactive. Activate it to install or load it.";
|
return "This plugin is inactive. Activate it to install or load it.";
|
||||||
|
|||||||
@@ -424,6 +424,11 @@ body.pane-resizing {
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.status-cell.status-runtimeerror {
|
||||||
|
color: var(--plugin-status-warn);
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
.status-cell.status-loading {
|
.status-cell.status-loading {
|
||||||
color: var(--plugin-status-warn);
|
color: var(--plugin-status-warn);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@@ -680,6 +685,11 @@ body.pane-resizing {
|
|||||||
color: var(--plugin-status-danger);
|
color: var(--plugin-status-danger);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.detail-status-chip.status-runtimeerror {
|
||||||
|
background: var(--plugin-status-warn-bg);
|
||||||
|
color: var(--plugin-status-warn);
|
||||||
|
}
|
||||||
|
|
||||||
.detail-status-chip.status-loading {
|
.detail-status-chip.status-loading {
|
||||||
background: var(--plugin-status-warn-bg);
|
background: var(--plugin-status-warn-bg);
|
||||||
color: var(--plugin-status-warn);
|
color: var(--plugin-status-warn);
|
||||||
|
|||||||
@@ -331,6 +331,15 @@ modules:
|
|||||||
sha256: deedcabe339165214a3637df4c86a507aef0d793cf8774ff68735f4737e8ddbc
|
sha256: deedcabe339165214a3637df4c86a507aef0d793cf8774ff68735f4737e8ddbc
|
||||||
dest: external-packages/FFMPEG
|
dest: external-packages/FFMPEG
|
||||||
|
|
||||||
|
# libdatachannel v0.24.5
|
||||||
|
# The Git checkout includes the submodules that are missing from the
|
||||||
|
# GitHub source archive. DataChannel.cmake consumes it as SOURCE_DIR.
|
||||||
|
- type: git
|
||||||
|
url: https://github.com/paullouisageneau/libdatachannel.git
|
||||||
|
tag: v0.24.5
|
||||||
|
commit: 443f6934d9007eb7076ab7825ba330f355fcbead
|
||||||
|
dest: external-packages/DataChannel
|
||||||
|
|
||||||
# ---------------------------------------------------------------
|
# ---------------------------------------------------------------
|
||||||
# Fallback archives for deps normally provided by the GNOME SDK.
|
# Fallback archives for deps normally provided by the GNOME SDK.
|
||||||
# These are only used if find_package() fails to locate them.
|
# These are only used if find_package() fails to locate them.
|
||||||
|
|||||||
@@ -405,20 +405,6 @@ class TestTripleResolution(unittest.TestCase):
|
|||||||
self.assertEqual(afi.resolve_triple("MyPLA @P1", fmap, {}),
|
self.assertEqual(afi.resolve_triple("MyPLA @P1", fmap, {}),
|
||||||
("MyVendor", "PLA", "MyPLA"))
|
("MyVendor", "PLA", "MyPLA"))
|
||||||
|
|
||||||
def test_split_vendor_and_type_bases_resolve(self):
|
|
||||||
# A partial base is normal, not an error: vendor and type may live on
|
|
||||||
# different ancestors, with an intermediate supplying neither (the
|
|
||||||
# Snapmaker shape). The pair is complete at the instantiated preset.
|
|
||||||
recs = [
|
|
||||||
self.rec("APLA @P1", inherits="mid"),
|
|
||||||
self.rec("mid", inherits="typebase"),
|
|
||||||
self.rec("typebase", filament_type=["PLA"], inherits="vendorbase"),
|
|
||||||
self.rec("vendorbase", filament_vendor=["AV"]),
|
|
||||||
]
|
|
||||||
fmap = {r["name"]: r for r in recs}
|
|
||||||
self.assertEqual(afi.resolve_triple("APLA @P1", fmap, {}),
|
|
||||||
("AV", "PLA", "APLA"))
|
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# checks on synthetic trees
|
# checks on synthetic trees
|
||||||
@@ -431,24 +417,6 @@ class TestChecks(OfCleanTreeCase):
|
|||||||
self.assertNotIn("[ERROR]", out)
|
self.assertNotIn("[ERROR]", out)
|
||||||
self.assertNotIn("[WARNING]", out)
|
self.assertNotIn("[WARNING]", out)
|
||||||
|
|
||||||
def test_instantiated_preset_over_partial_bases_is_silent(self):
|
|
||||||
# Vendor and type split across two non-instantiated bases, an
|
|
||||||
# intermediate base with neither: base profiles are allowed to be
|
|
||||||
# partial. Only the instantiated preset must resolve both.
|
|
||||||
self.t.write_preset("VendorA", preset("XPLA vendorbase", instantiation=False,
|
|
||||||
filament_vendor="XV"))
|
|
||||||
self.t.write_preset("VendorA", preset("XPLA typebase", instantiation=False,
|
|
||||||
filament_type="PLA",
|
|
||||||
inherits="XPLA vendorbase"))
|
|
||||||
self.t.write_preset("VendorA", preset("XPLA mid", instantiation=False,
|
|
||||||
inherits="XPLA typebase"))
|
|
||||||
self.t.write_preset("VendorA", preset(
|
|
||||||
"XPLA @P1", inherits="XPLA mid",
|
|
||||||
filament_id=afi.generate_filament_id("XV", "PLA", "XPLA"),
|
|
||||||
compatible_printers=["P1"]))
|
|
||||||
errors, out = self.t.check()
|
|
||||||
self.assertEqual(errors, 0, out)
|
|
||||||
|
|
||||||
def test_check1_unknown_non_of_id(self):
|
def test_check1_unknown_non_of_id(self):
|
||||||
self.t.write_preset("VendorA", preset("BPLA @base", filament_id="BOGUS_9",
|
self.t.write_preset("VendorA", preset("BPLA @base", filament_id="BOGUS_9",
|
||||||
instantiation=False,
|
instantiation=False,
|
||||||
@@ -1555,19 +1523,6 @@ class TestRealTree(unittest.TestCase):
|
|||||||
self.assertEqual(analysis["missing_effective"], [])
|
self.assertEqual(analysis["missing_effective"], [])
|
||||||
self.assertEqual(analysis["read_errors"], [])
|
self.assertEqual(analysis["read_errors"], [])
|
||||||
|
|
||||||
def test_every_instantiated_filament_resolves_vendor_and_type(self):
|
|
||||||
# The property the web guide resolves at load: a partial base is fine as
|
|
||||||
# long as the instantiated preset ends up with both fields. Guards the
|
|
||||||
# split-base bundles (Snapmaker, Anker, SeeMeCNC).
|
|
||||||
analysis = afi.analyze_tree(REAL_PROFILES)
|
|
||||||
unresolved = [
|
|
||||||
(vendor, rec["name"], rec["triple"][0], rec["triple"][1])
|
|
||||||
for vendor, filaments in analysis["vendors"].items()
|
|
||||||
for rec in filaments.values()
|
|
||||||
if rec["instantiation"] and not (rec["triple"][0] and rec["triple"][1])
|
|
||||||
]
|
|
||||||
self.assertEqual(unresolved, [])
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# review-fix regressions
|
# review-fix regressions
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -3824,7 +3824,6 @@ unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfi
|
|||||||
ConfigOptionStrings *filament_color_type = project_config.option<ConfigOptionStrings>("filament_colour_type");
|
ConfigOptionStrings *filament_color_type = project_config.option<ConfigOptionStrings>("filament_colour_type");
|
||||||
ConfigOptionInts * filament_map = project_config.option<ConfigOptionInts>("filament_map");
|
ConfigOptionInts * filament_map = project_config.option<ConfigOptionInts>("filament_map");
|
||||||
ConfigOptionInts * filament_volume_map = project_config.option<ConfigOptionInts>("filament_volume_map");
|
ConfigOptionInts * filament_volume_map = project_config.option<ConfigOptionInts>("filament_volume_map");
|
||||||
|
|
||||||
// Snapshot and temporarily strip mixed filament slots so AMS sync operates on physical
|
// Snapshot and temporarily strip mixed filament slots so AMS sync operates on physical
|
||||||
// filaments only. A mixed slot is virtual and has no tray to sync against; leaving it in
|
// filaments only. A mixed slot is virtual and has no tray to sync against; leaving it in
|
||||||
// would let AMS mapping overwrite it and would break the physical-first slot ordering the
|
// would let AMS mapping overwrite it and would break the physical-first slot ordering the
|
||||||
|
|||||||
+22
-17
@@ -236,6 +236,7 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
GUI/GLToolbar.hpp
|
GUI/GLToolbar.hpp
|
||||||
GUI/ImageDPIFrame.cpp
|
GUI/ImageDPIFrame.cpp
|
||||||
GUI/ImageDPIFrame.hpp
|
GUI/ImageDPIFrame.hpp
|
||||||
|
GUI/IMediaController.hpp
|
||||||
GUI/GUI_App.cpp
|
GUI/GUI_App.cpp
|
||||||
GUI/GUI_App.hpp
|
GUI/GUI_App.hpp
|
||||||
GUI/GUI_AuxiliaryList.cpp
|
GUI/GUI_AuxiliaryList.cpp
|
||||||
@@ -286,8 +287,6 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
GUI/FilamentMapDialog.hpp
|
GUI/FilamentMapDialog.hpp
|
||||||
GUI/IconManager.cpp
|
GUI/IconManager.cpp
|
||||||
GUI/IconManager.hpp
|
GUI/IconManager.hpp
|
||||||
GUI/IdleScheduler.cpp
|
|
||||||
GUI/IdleScheduler.hpp
|
|
||||||
GUI/ImageGrid.cpp
|
GUI/ImageGrid.cpp
|
||||||
GUI/ImageGrid.h
|
GUI/ImageGrid.h
|
||||||
GUI/ImGuiWrapper.cpp
|
GUI/ImGuiWrapper.cpp
|
||||||
@@ -349,10 +348,6 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
GUI/KBShortcutsDialog.hpp
|
GUI/KBShortcutsDialog.hpp
|
||||||
GUI/KeyChord.cpp
|
GUI/KeyChord.cpp
|
||||||
GUI/KeyChord.hpp
|
GUI/KeyChord.hpp
|
||||||
GUI/Lazy.cpp
|
|
||||||
GUI/Lazy.hpp
|
|
||||||
GUI/LazyPage.cpp
|
|
||||||
GUI/LazyPage.hpp
|
|
||||||
GUI/LibVGCode/LibVGCodeWrapper.hpp
|
GUI/LibVGCode/LibVGCodeWrapper.hpp
|
||||||
GUI/LibVGCode/LibVGCodeWrapper.cpp
|
GUI/LibVGCode/LibVGCodeWrapper.cpp
|
||||||
GUI/LinuxDisplayBackend.cpp
|
GUI/LinuxDisplayBackend.cpp
|
||||||
@@ -365,6 +360,8 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
GUI/MediaFilePanel.h
|
GUI/MediaFilePanel.h
|
||||||
GUI/MediaPlayCtrl.cpp
|
GUI/MediaPlayCtrl.cpp
|
||||||
GUI/MediaPlayCtrl.h
|
GUI/MediaPlayCtrl.h
|
||||||
|
GUI/WebRtcMediaController.cpp
|
||||||
|
GUI/WebRtcMediaController.hpp
|
||||||
GUI/MeshUtils.cpp
|
GUI/MeshUtils.cpp
|
||||||
GUI/MeshUtils.hpp
|
GUI/MeshUtils.hpp
|
||||||
GUI/ModelMall.cpp
|
GUI/ModelMall.cpp
|
||||||
@@ -439,7 +436,6 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
GUI/Plater.hpp
|
GUI/Plater.hpp
|
||||||
GUI/PlateSettingsDialog.cpp
|
GUI/PlateSettingsDialog.cpp
|
||||||
GUI/PlateSettingsDialog.hpp
|
GUI/PlateSettingsDialog.hpp
|
||||||
GUI/PrebuildQueue.hpp
|
|
||||||
GUI/Preferences.cpp
|
GUI/Preferences.cpp
|
||||||
GUI/Preferences.hpp
|
GUI/Preferences.hpp
|
||||||
GUI/PresetBundleDialog.cpp
|
GUI/PresetBundleDialog.cpp
|
||||||
@@ -519,7 +515,6 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
GUI/SliceInfoPanel.hpp
|
GUI/SliceInfoPanel.hpp
|
||||||
GUI/SlicingProgressNotification.cpp
|
GUI/SlicingProgressNotification.cpp
|
||||||
GUI/SlicingProgressNotification.hpp
|
GUI/SlicingProgressNotification.hpp
|
||||||
GUI/StagedBuild.hpp
|
|
||||||
GUI/StatusPanel.cpp
|
GUI/StatusPanel.cpp
|
||||||
GUI/StatusPanel.hpp
|
GUI/StatusPanel.hpp
|
||||||
GUI/StepMeshDialog.cpp
|
GUI/StepMeshDialog.cpp
|
||||||
@@ -560,6 +555,8 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
GUI/WebUserLoginDialog.hpp
|
GUI/WebUserLoginDialog.hpp
|
||||||
GUI/WebViewDialog.cpp
|
GUI/WebViewDialog.cpp
|
||||||
GUI/WebViewDialog.hpp
|
GUI/WebViewDialog.hpp
|
||||||
|
GUI/WebMediaController.hpp
|
||||||
|
GUI/WebMediaController.cpp
|
||||||
GUI/Widgets/AMSControl.cpp
|
GUI/Widgets/AMSControl.cpp
|
||||||
GUI/Widgets/AMSControl.hpp
|
GUI/Widgets/AMSControl.hpp
|
||||||
GUI/Widgets/AMSItem.cpp
|
GUI/Widgets/AMSItem.cpp
|
||||||
@@ -754,10 +751,15 @@ set(SLIC3R_GUI_SOURCES
|
|||||||
Utils/NetworkAgentFactory.cpp
|
Utils/NetworkAgentFactory.cpp
|
||||||
Utils/ICloudServiceAgent.hpp
|
Utils/ICloudServiceAgent.hpp
|
||||||
Utils/IPrinterAgent.hpp
|
Utils/IPrinterAgent.hpp
|
||||||
|
Utils/ICameraSignalingChannel.hpp
|
||||||
Utils/OrcaCloudServiceAgent.cpp
|
Utils/OrcaCloudServiceAgent.cpp
|
||||||
Utils/OrcaCloudServiceAgent.hpp
|
Utils/OrcaCloudServiceAgent.hpp
|
||||||
|
Utils/OrcaMqttConnection.cpp
|
||||||
|
Utils/OrcaMqttConnection.hpp
|
||||||
Utils/OrcaPrinterAgent.cpp
|
Utils/OrcaPrinterAgent.cpp
|
||||||
Utils/OrcaPrinterAgent.hpp
|
Utils/OrcaPrinterAgent.hpp
|
||||||
|
Utils/OrcaCloudSignalingChannel.cpp
|
||||||
|
Utils/OrcaCloudSignalingChannel.hpp
|
||||||
Utils/QidiPrinterAgent.cpp
|
Utils/QidiPrinterAgent.cpp
|
||||||
Utils/QidiPrinterAgent.hpp
|
Utils/QidiPrinterAgent.hpp
|
||||||
Utils/SnapmakerPrinterAgent.cpp
|
Utils/SnapmakerPrinterAgent.cpp
|
||||||
@@ -898,7 +900,7 @@ target_include_directories(libslic3r_gui PRIVATE Utils ${CMAKE_CURRENT_BINARY_DI
|
|||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../deps/WebView2/include)
|
target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../deps/WebView2/include)
|
||||||
target_link_libraries(libslic3r_gui Advapi32)
|
target_link_libraries(libslic3r_gui Advapi32 Crypt32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SLIC3R_GUI_SOURCES})
|
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SLIC3R_GUI_SOURCES})
|
||||||
@@ -924,7 +926,7 @@ else()
|
|||||||
set(_opengl_link_lib OpenGL::GL)
|
set(_opengl_link_lib OpenGL::GL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(libslic3r_gui libslic3r cereal::cereal imgui imguizmo minilzo libvgcode md4c-html glad ${_opengl_link_lib} hidapi mdns ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto noise::noise pybind11::embed)
|
target_link_libraries(libslic3r_gui libslic3r cereal::cereal imgui imguizmo minilzo libvgcode md4c-html glad ${_opengl_link_lib} hidapi mdns ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto LibDataChannel::LibDataChannel noise::noise pybind11::embed)
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
# Linux finds wxWidgets in module mode, whose include dirs and definitions
|
# Linux finds wxWidgets in module mode, whose include dirs and definitions
|
||||||
@@ -981,29 +983,32 @@ endif ()
|
|||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
# Static FFmpeg from the deps install: nothing to bundle into the .app,
|
# Static FFmpeg from the deps install: nothing to bundle into the .app,
|
||||||
# no rpath/install_name handling. Order matters: avcodec -> swscale -> avutil.
|
# no rpath/install_name handling. Order matters: avformat -> avcodec -> swscale -> avutil.
|
||||||
|
find_library(LIBAVFORMAT_LIBRARY NAMES libavformat.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
find_library(LIBAVCODEC_LIBRARY NAMES libavcodec.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
find_library(LIBAVCODEC_LIBRARY NAMES libavcodec.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
find_library(LIBSWSCALE_LIBRARY NAMES libswscale.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
find_library(LIBSWSCALE_LIBRARY NAMES libswscale.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
find_library(LIBAVUTIL_LIBRARY NAMES libavutil.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
find_library(LIBAVUTIL_LIBRARY NAMES libavutil.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
if (NOT LIBAVCODEC_LIBRARY OR NOT LIBSWSCALE_LIBRARY OR NOT LIBAVUTIL_LIBRARY)
|
if (NOT LIBAVFORMAT_LIBRARY OR NOT LIBAVCODEC_LIBRARY OR NOT LIBSWSCALE_LIBRARY OR NOT LIBAVUTIL_LIBRARY)
|
||||||
message(FATAL_ERROR "Static FFmpeg (libavcodec.a/libswscale.a/libavutil.a) not found under ${CMAKE_PREFIX_PATH}/lib. Rebuild the deps — FFMPEG builds static-only on macOS.")
|
message(FATAL_ERROR "Static FFmpeg (libavformat.a/libavcodec.a/libswscale.a/libavutil.a) not found under ${CMAKE_PREFIX_PATH}/lib. Rebuild the deps — FFMPEG builds static-only on macOS.")
|
||||||
endif ()
|
endif ()
|
||||||
target_link_libraries(libslic3r_gui ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY})
|
target_link_libraries(libslic3r_gui ${LIBAVFORMAT_LIBRARY} ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY})
|
||||||
target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include)
|
target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include)
|
||||||
elseif (WIN32)
|
elseif (WIN32)
|
||||||
# Prebuilt shared FFmpeg from the deps install. Windows has no pkg-config,
|
# Prebuilt shared FFmpeg from the deps install. Windows has no pkg-config,
|
||||||
# so resolve the import libraries out of the deps prefix directly; the DLLs
|
# so resolve the import libraries out of the deps prefix directly; the DLLs
|
||||||
# are copied next to the executable by the top level CMakeLists.
|
# are copied next to the executable by the top level CMakeLists.
|
||||||
|
find_library(LIBAVFORMAT_LIBRARY NAMES avformat PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
find_library(LIBAVCODEC_LIBRARY NAMES avcodec PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
find_library(LIBAVCODEC_LIBRARY NAMES avcodec PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
find_library(LIBSWSCALE_LIBRARY NAMES swscale PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
find_library(LIBSWSCALE_LIBRARY NAMES swscale PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
find_library(LIBAVUTIL_LIBRARY NAMES avutil PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
find_library(LIBAVUTIL_LIBRARY NAMES avutil PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
|
||||||
if (NOT LIBAVCODEC_LIBRARY OR NOT LIBSWSCALE_LIBRARY OR NOT LIBAVUTIL_LIBRARY)
|
if (NOT LIBAVFORMAT_LIBRARY OR NOT LIBAVCODEC_LIBRARY OR NOT LIBSWSCALE_LIBRARY OR NOT LIBAVUTIL_LIBRARY)
|
||||||
message(FATAL_ERROR "FFmpeg (avcodec/swscale/avutil) not found under ${CMAKE_PREFIX_PATH}/lib. Rebuild the deps.")
|
message(FATAL_ERROR "FFmpeg (avformat/avcodec/swscale/avutil) not found under ${CMAKE_PREFIX_PATH}/lib. Rebuild the deps.")
|
||||||
endif ()
|
endif ()
|
||||||
target_link_libraries(libslic3r_gui ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY})
|
target_link_libraries(libslic3r_gui ${LIBAVFORMAT_LIBRARY} ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY})
|
||||||
target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include)
|
target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include)
|
||||||
else ()
|
else ()
|
||||||
pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET
|
pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET
|
||||||
|
libavformat
|
||||||
libavcodec
|
libavcodec
|
||||||
libswscale
|
libswscale
|
||||||
libavutil
|
libavutil
|
||||||
|
|||||||
@@ -45,6 +45,25 @@ int AVVideoDecoder::open(Bambu_StreamInfo const &info)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AVVideoDecoder::open(AVCodecParameters const ¶meters)
|
||||||
|
{
|
||||||
|
if (avcodec_parameters_to_context(codec_ctx_, ¶meters) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
auto codec = avcodec_find_decoder(codec_ctx_->codec_id);
|
||||||
|
if (codec == nullptr) {
|
||||||
|
fprintf(stderr, "AVVideoDecoder: unsupported codec!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (avcodec_open2(codec_ctx_, codec, nullptr) < 0) {
|
||||||
|
fprintf(stderr, "AVVideoDecoder: could not open codec\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
frame_ = av_frame_alloc();
|
||||||
|
return frame_ == nullptr ? -1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
int AVVideoDecoder::decode(const Bambu_Sample &sample)
|
int AVVideoDecoder::decode(const Bambu_Sample &sample)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@@ -71,6 +90,14 @@ int AVVideoDecoder::decode(const Bambu_Sample &sample)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AVVideoDecoder::decode(const AVPacket &packet)
|
||||||
|
{
|
||||||
|
int ret = avcodec_send_packet(codec_ctx_, &packet);
|
||||||
|
if (ret == 0)
|
||||||
|
got_frame_ = avcodec_receive_frame(codec_ctx_, frame_) == 0;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int AVVideoDecoder::flush()
|
int AVVideoDecoder::flush()
|
||||||
{
|
{
|
||||||
int ret = avcodec_send_packet(codec_ctx_, nullptr);
|
int ret = avcodec_send_packet(codec_ctx_, nullptr);
|
||||||
|
|||||||
@@ -23,8 +23,10 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
int open(Bambu_StreamInfo const &info);
|
int open(Bambu_StreamInfo const &info);
|
||||||
|
int open(AVCodecParameters const ¶meters);
|
||||||
|
|
||||||
int decode(Bambu_Sample const &sample);
|
int decode(Bambu_Sample const &sample);
|
||||||
|
int decode(AVPacket const &packet);
|
||||||
|
|
||||||
int flush();
|
int flush();
|
||||||
|
|
||||||
@@ -34,6 +36,14 @@ public:
|
|||||||
|
|
||||||
bool toWxBitmap(wxBitmap &bitmap, wxSize const & size);
|
bool toWxBitmap(wxBitmap &bitmap, wxSize const & size);
|
||||||
|
|
||||||
|
// Native size of the most recently decoded frame, or an unspecified size if
|
||||||
|
// nothing has decoded yet. Lets a caller learn the video dimensions when the
|
||||||
|
// container/probe could not report them up front.
|
||||||
|
wxSize decoded_frame_size() const
|
||||||
|
{
|
||||||
|
return got_frame_ && frame_ ? wxSize{frame_->width, frame_->height} : wxSize{};
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AVCodecContext *codec_ctx_ = nullptr;
|
AVCodecContext *codec_ctx_ = nullptr;
|
||||||
AVFrame * frame_ = nullptr;
|
AVFrame * frame_ = nullptr;
|
||||||
|
|||||||
@@ -863,27 +863,17 @@ void AuxiliaryPanel::init_tabpanel()
|
|||||||
m_tabpanel->SetBackgroundColour(wxColour("#FEFFFF"));
|
m_tabpanel->SetBackgroundColour(wxColour("#FEFFFF"));
|
||||||
m_tabpanel->Bind(wxEVT_BOOKCTRL_PAGE_CHANGED, [](wxBookCtrlEvent &e) { /* Event handling */ });
|
m_tabpanel->Bind(wxEVT_BOOKCTRL_PAGE_CHANGED, [](wxBookCtrlEvent &e) { /* Event handling */ });
|
||||||
|
|
||||||
add_build_step([this] {
|
|
||||||
m_designer_panel = new DesignerPanel(m_tabpanel, AuxiliaryFolderType::DESIGNER);
|
m_designer_panel = new DesignerPanel(m_tabpanel, AuxiliaryFolderType::DESIGNER);
|
||||||
m_tabpanel->AddPage(m_designer_panel, _L("Basic Info"), true);
|
|
||||||
});
|
|
||||||
add_build_step([this] {
|
|
||||||
m_pictures_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::MODEL_PICTURE);
|
m_pictures_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::MODEL_PICTURE);
|
||||||
m_tabpanel->AddPage(m_pictures_panel, _L("Pictures"), false);
|
|
||||||
});
|
|
||||||
add_build_step([this] {
|
|
||||||
m_bill_of_materials_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::BILL_OF_MATERIALS);
|
m_bill_of_materials_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::BILL_OF_MATERIALS);
|
||||||
m_tabpanel->AddPage(m_bill_of_materials_panel, _L("Bill of Materials"), false);
|
|
||||||
});
|
|
||||||
add_build_step([this] {
|
|
||||||
m_assembly_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::ASSEMBLY_GUIDE);
|
m_assembly_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::ASSEMBLY_GUIDE);
|
||||||
m_tabpanel->AddPage(m_assembly_panel, _L("Assembly Guide"), false);
|
|
||||||
});
|
|
||||||
add_build_step([this] {
|
|
||||||
m_others_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::OTHERS);
|
m_others_panel = new AuFolderPanel(m_tabpanel, AuxiliaryFolderType::OTHERS);
|
||||||
|
|
||||||
|
m_tabpanel->AddPage(m_designer_panel, _L("Basic Info"), true);
|
||||||
|
m_tabpanel->AddPage(m_pictures_panel, _L("Pictures"), false);
|
||||||
|
m_tabpanel->AddPage(m_bill_of_materials_panel, _L("Bill of Materials"), false);
|
||||||
|
m_tabpanel->AddPage(m_assembly_panel, _L("Assembly Guide"), false);
|
||||||
m_tabpanel->AddPage(m_others_panel, _L("Others"), false);
|
m_tabpanel->AddPage(m_others_panel, _L("Others"), false);
|
||||||
Layout();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindow *AuxiliaryPanel::create_side_tools()
|
wxWindow *AuxiliaryPanel::create_side_tools()
|
||||||
|
|||||||
@@ -46,7 +46,6 @@
|
|||||||
#include "slic3r/GUI/UpgradePanel.hpp"
|
#include "slic3r/GUI/UpgradePanel.hpp"
|
||||||
#include "slic3r/GUI/AmsWidgets.hpp"
|
#include "slic3r/GUI/AmsWidgets.hpp"
|
||||||
#include "Widgets/SideTools.hpp"
|
#include "Widgets/SideTools.hpp"
|
||||||
#include "StagedBuild.hpp"
|
|
||||||
|
|
||||||
#define AUFILE_GREY700 wxColour(107, 107, 107)
|
#define AUFILE_GREY700 wxColour(107, 107, 107)
|
||||||
#define AUFILE_GREY500 wxColour(158, 158, 158)
|
#define AUFILE_GREY500 wxColour(158, 158, 158)
|
||||||
@@ -195,7 +194,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class AuxiliaryPanel : public wxPanel, public StagedBuild
|
class AuxiliaryPanel : public wxPanel
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Tabbook *m_tabpanel = {nullptr};
|
Tabbook *m_tabpanel = {nullptr};
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
#include "libslic3r/CAD/CadDocument.hpp"
|
#include "libslic3r/CAD/CadDocument.hpp"
|
||||||
#include "slic3r/GUI/CAD/DesignInteraction.hpp" // CadLevel: what one Esc press means
|
#include "slic3r/GUI/CAD/DesignInteraction.hpp" // CadLevel: what one Esc press means
|
||||||
#include "slic3r/GUI/Lazy.hpp"
|
|
||||||
|
|
||||||
class ComboBox; // Orca dropdown (Widgets/ComboBox.hpp) — replaces wxChoice everywhere here
|
class ComboBox; // Orca dropdown (Widgets/ComboBox.hpp) — replaces wxChoice everywhere here
|
||||||
class StaticBox; // Orca rounded card frame (Widgets/StaticBox.hpp)
|
class StaticBox; // Orca rounded card frame (Widgets/StaticBox.hpp)
|
||||||
@@ -47,7 +46,7 @@ class DesignCanvas;
|
|||||||
// Design (CAD) tab: a sketch-first, Onshape-style form-driven CAD panel.
|
// Design (CAD) tab: a sketch-first, Onshape-style form-driven CAD panel.
|
||||||
// Sketch and Extrude are independent tools: the user creates a Sketch first,
|
// Sketch and Extrude are independent tools: the user creates a Sketch first,
|
||||||
// then selects it and Extrudes to produce a solid.
|
// then selects it and Extrudes to produce a solid.
|
||||||
class DesignPanel : public wxPanel, public LazyInstance<DesignPanel>
|
class DesignPanel : public wxPanel
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit DesignPanel(wxWindow* parent);
|
explicit DesignPanel(wxWindow* parent);
|
||||||
|
|||||||
@@ -1989,10 +1989,11 @@ json action_set_feature_expr(DesignPanel* panel, const json& params)
|
|||||||
// Dispatch one parsed request ON THE MAIN THREAD. Returns a JSON-RPC reply string.
|
// Dispatch one parsed request ON THE MAIN THREAD. Returns a JSON-RPC reply string.
|
||||||
std::string handle_on_main(const std::string& method, const json& params, const json& id)
|
std::string handle_on_main(const std::string& method, const json& params, const json& id)
|
||||||
{
|
{
|
||||||
|
MainFrame* mf = wxGetApp().mainframe;
|
||||||
// The panel is built on first use, and in a headless session nobody clicks the tab that
|
// The panel is built on first use, and in a headless session nobody clicks the tab that
|
||||||
// would build it -- so build it here rather than refusing. Safe: this runs on the main
|
// would build it -- so build it here rather than refusing. Safe: this runs on the main
|
||||||
// thread (see the CallAfter that dispatches us).
|
// thread (see the CallAfter that dispatches us).
|
||||||
DesignPanel* panel = DesignPanel::ensure();
|
DesignPanel* panel = mf ? mf->ensure_design_panel() : nullptr;
|
||||||
if (!panel)
|
if (!panel)
|
||||||
return rpc_error(id, -32001, "Design panel not ready");
|
return rpc_error(id, -32001, "Design panel not ready");
|
||||||
|
|
||||||
|
|||||||
@@ -328,7 +328,7 @@ void SelectMObjectPopup::update_user_devices()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_bind_machine_list.clear();
|
m_bind_machine_list.clear();
|
||||||
m_bind_machine_list = dev->get_my_machine_list();
|
m_bind_machine_list = dev->get_my_machine_list(dev->get_current_printer_agent_id());
|
||||||
|
|
||||||
//sort list
|
//sort list
|
||||||
std::vector<std::pair<std::string, MachineObject*>> user_machine_list;
|
std::vector<std::pair<std::string, MachineObject*>> user_machine_list;
|
||||||
@@ -491,15 +491,14 @@ void CalibrationPanel::init_tabpanel() {
|
|||||||
selected);
|
selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < (int)CALI_MODE_COUNT; i++)
|
|
||||||
add_build_steps_of(*m_cali_panels[i]);
|
|
||||||
|
|
||||||
// ORCA use standard paddings and keep arrow icon for consistent look between sidebars
|
// ORCA use standard paddings and keep arrow icon for consistent look between sidebars
|
||||||
//for (int i = 0; i < (int)CALI_MODE_COUNT; i++)
|
//for (int i = 0; i < (int)CALI_MODE_COUNT; i++)
|
||||||
// m_tabpanel->SetPageImage(i, "");
|
// m_tabpanel->SetPageImage(i, "");
|
||||||
|
|
||||||
//auto padding_size = m_tabpanel->GetBtnsListCtrl()->GetPaddingSize(0);
|
//auto padding_size = m_tabpanel->GetBtnsListCtrl()->GetPaddingSize(0);
|
||||||
//m_tabpanel->GetBtnsListCtrl()->SetPaddingSize({ FromDIP(15), padding_size.y });
|
//m_tabpanel->GetBtnsListCtrl()->SetPaddingSize({ FromDIP(15), padding_size.y });
|
||||||
|
|
||||||
|
m_initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CalibrationPanel::init_timer()
|
void CalibrationPanel::init_timer()
|
||||||
@@ -535,8 +534,6 @@ void CalibrationPanel::update_print_error_info(int code, std::string msg, std::s
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CalibrationPanel::update_all() {
|
void CalibrationPanel::update_all() {
|
||||||
// Every wizard's pages exist once the last build step has run.
|
|
||||||
if (!built()) return;
|
|
||||||
|
|
||||||
NetworkAgent* m_agent = wxGetApp().getAgent();
|
NetworkAgent* m_agent = wxGetApp().getAgent();
|
||||||
Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
|
Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
|
||||||
@@ -600,7 +597,7 @@ void CalibrationPanel::update_all() {
|
|||||||
|
|
||||||
void CalibrationPanel::show_status(int status)
|
void CalibrationPanel::show_status(int status)
|
||||||
{
|
{
|
||||||
if (!built()) return;
|
if (!m_initialized) return;
|
||||||
if (last_status == status)return;
|
if (last_status == status)return;
|
||||||
last_status = status;
|
last_status = status;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "CalibrationWizard.hpp"
|
#include "CalibrationWizard.hpp"
|
||||||
#include "Tabbook.hpp"
|
#include "Tabbook.hpp"
|
||||||
#include "Lazy.hpp"
|
|
||||||
//#include "Widgets/SideTools.hpp"
|
//#include "Widgets/SideTools.hpp"
|
||||||
|
|
||||||
namespace Slic3r { namespace GUI {
|
namespace Slic3r { namespace GUI {
|
||||||
@@ -89,7 +88,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class CalibrationPanel : public wxPanel, public StagedBuild, public LazyInstance<CalibrationPanel>
|
class CalibrationPanel : public wxPanel
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CalibrationPanel(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL);
|
CalibrationPanel(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL);
|
||||||
@@ -110,6 +109,7 @@ protected:
|
|||||||
|
|
||||||
|
|
||||||
int last_status;
|
int last_status;
|
||||||
|
bool m_initialized { false };
|
||||||
std::string last_conn_type = "undedefined";
|
std::string last_conn_type = "undedefined";
|
||||||
MachineObject* obj{ nullptr };
|
MachineObject* obj{ nullptr };
|
||||||
MachineObject* last_obj { nullptr };
|
MachineObject* last_obj { nullptr };
|
||||||
|
|||||||
@@ -130,15 +130,6 @@ CalibrationWizard::~CalibrationWizard()
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CalibrationWizard::add_page_step(CalibrationWizardPageStep*& step, std::function<CalibrationWizardPage*()> make)
|
|
||||||
{
|
|
||||||
add_build_step([this, &step, make = std::move(make)] {
|
|
||||||
step = new CalibrationWizardPageStep(make());
|
|
||||||
m_all_pages_sizer->Add(step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
|
||||||
step->page->Hide();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void CalibrationWizard::on_cali_job_finished(wxCommandEvent& event)
|
void CalibrationWizard::on_cali_job_finished(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
this->on_cali_job_finished(event.GetString());
|
this->on_cali_job_finished(event.GetString());
|
||||||
@@ -529,12 +520,17 @@ void PressureAdvanceWizard::on_cali_job_finished(wxString evt_data)
|
|||||||
|
|
||||||
void PressureAdvanceWizard::create_pages()
|
void PressureAdvanceWizard::create_pages()
|
||||||
{
|
{
|
||||||
add_page_step(start_step, [this] { return new CalibrationPAStartPage(m_scrolledWindow); });
|
start_step = new CalibrationWizardPageStep(new CalibrationPAStartPage(m_scrolledWindow));
|
||||||
add_page_step(preset_step, [this] { return new CalibrationPresetPage(m_scrolledWindow, m_mode, false); });
|
preset_step = new CalibrationWizardPageStep(new CalibrationPresetPage(m_scrolledWindow, m_mode, false));
|
||||||
add_page_step(cali_step, [this] { return new CalibrationCaliPage(m_scrolledWindow, m_mode); });
|
cali_step = new CalibrationWizardPageStep(new CalibrationCaliPage(m_scrolledWindow, m_mode));
|
||||||
add_page_step(save_step, [this] { return new CalibrationPASavePage(m_scrolledWindow); });
|
save_step = new CalibrationWizardPageStep(new CalibrationPASavePage(m_scrolledWindow));
|
||||||
|
|
||||||
|
m_all_pages_sizer->Add(start_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(preset_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(cali_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(save_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
|
||||||
|
|
||||||
add_build_step([this] {
|
|
||||||
m_page_steps.push_back(start_step);
|
m_page_steps.push_back(start_step);
|
||||||
m_page_steps.push_back(preset_step);
|
m_page_steps.push_back(preset_step);
|
||||||
m_page_steps.push_back(cali_step);
|
m_page_steps.push_back(cali_step);
|
||||||
@@ -545,12 +541,12 @@ void PressureAdvanceWizard::create_pages()
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < m_page_steps.size(); i++) {
|
for (int i = 0; i < m_page_steps.size(); i++) {
|
||||||
|
m_page_steps[i]->page->Hide();
|
||||||
m_page_steps[i]->page->Bind(EVT_CALI_ACTION, &PressureAdvanceWizard::on_cali_action, this);
|
m_page_steps[i]->page->Bind(EVT_CALI_ACTION, &PressureAdvanceWizard::on_cali_action, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_page_steps.empty())
|
if (!m_page_steps.empty())
|
||||||
show_step(m_page_steps.front());
|
show_step(m_page_steps.front());
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PressureAdvanceWizard::on_cali_action(wxCommandEvent& evt)
|
void PressureAdvanceWizard::on_cali_action(wxCommandEvent& evt)
|
||||||
@@ -1057,20 +1053,29 @@ FlowRateWizard::FlowRateWizard(wxWindow* parent, wxWindowID id, const wxPoint& p
|
|||||||
|
|
||||||
void FlowRateWizard::create_pages()
|
void FlowRateWizard::create_pages()
|
||||||
{
|
{
|
||||||
add_page_step(start_step, [this] { return new CalibrationFlowRateStartPage(m_scrolledWindow); });
|
start_step = new CalibrationWizardPageStep(new CalibrationFlowRateStartPage(m_scrolledWindow));
|
||||||
add_page_step(preset_step, [this] { return new CalibrationPresetPage(m_scrolledWindow, m_mode, false); });
|
preset_step = new CalibrationWizardPageStep(new CalibrationPresetPage(m_scrolledWindow, m_mode, false));
|
||||||
|
|
||||||
// manual
|
// manual
|
||||||
add_page_step(cali_coarse_step, [this] { return new CalibrationCaliPage(m_scrolledWindow, m_mode, CaliPageType::CALI_PAGE_CALI); });
|
cali_coarse_step = new CalibrationWizardPageStep(new CalibrationCaliPage(m_scrolledWindow, m_mode, CaliPageType::CALI_PAGE_CALI));
|
||||||
add_page_step(coarse_save_step, [this] { return new CalibrationFlowCoarseSavePage(m_scrolledWindow); });
|
coarse_save_step = new CalibrationWizardPageStep(new CalibrationFlowCoarseSavePage(m_scrolledWindow));
|
||||||
add_page_step(cali_fine_step, [this] { return new CalibrationCaliPage(m_scrolledWindow, m_mode, CaliPageType::CALI_PAGE_FINE_CALI); });
|
cali_fine_step = new CalibrationWizardPageStep(new CalibrationCaliPage(m_scrolledWindow, m_mode, CaliPageType::CALI_PAGE_FINE_CALI));
|
||||||
add_page_step(fine_save_step, [this] { return new CalibrationFlowFineSavePage(m_scrolledWindow); });
|
fine_save_step = new CalibrationWizardPageStep(new CalibrationFlowFineSavePage(m_scrolledWindow));
|
||||||
|
|
||||||
// auto
|
// auto
|
||||||
add_page_step(cali_step, [this] { return new CalibrationCaliPage(m_scrolledWindow, m_mode); });
|
cali_step = new CalibrationWizardPageStep(new CalibrationCaliPage(m_scrolledWindow, m_mode));
|
||||||
add_page_step(save_step, [this] { return new CalibrationFlowX1SavePage(m_scrolledWindow); });
|
save_step = new CalibrationWizardPageStep(new CalibrationFlowX1SavePage(m_scrolledWindow));
|
||||||
|
|
||||||
|
m_all_pages_sizer->Add(start_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(preset_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(cali_coarse_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(coarse_save_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(cali_fine_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(fine_save_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
|
||||||
|
m_all_pages_sizer->Add(cali_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
m_all_pages_sizer->Add(save_step->page, 1, wxEXPAND | wxALL, FromDIP(25));
|
||||||
|
|
||||||
add_build_step([this] {
|
|
||||||
m_page_steps.push_back(start_step);
|
m_page_steps.push_back(start_step);
|
||||||
m_page_steps.push_back(preset_step);
|
m_page_steps.push_back(preset_step);
|
||||||
m_page_steps.push_back(cali_coarse_step);
|
m_page_steps.push_back(cali_coarse_step);
|
||||||
@@ -1085,10 +1090,15 @@ void FlowRateWizard::create_pages()
|
|||||||
m_page_steps[i]->chain(m_page_steps[i + 1]);
|
m_page_steps[i]->chain(m_page_steps[i + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hide all pages
|
||||||
|
cali_step->page->Hide();
|
||||||
|
save_step->page->Hide();
|
||||||
for (int i = 0; i < m_page_steps.size(); i++) {
|
for (int i = 0; i < m_page_steps.size(); i++) {
|
||||||
|
m_page_steps[i]->page->Hide();
|
||||||
m_page_steps[i]->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
|
m_page_steps[i]->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
cali_step->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
|
cali_step->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
|
||||||
save_step->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
|
save_step->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
|
||||||
|
|
||||||
@@ -1096,7 +1106,6 @@ void FlowRateWizard::create_pages()
|
|||||||
show_step(m_page_steps.front());
|
show_step(m_page_steps.front());
|
||||||
|
|
||||||
set_cali_method(CalibrationMethod::CALI_METHOD_MANUAL);
|
set_cali_method(CalibrationMethod::CALI_METHOD_MANUAL);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlowRateWizard::on_cali_action(wxCommandEvent& evt)
|
void FlowRateWizard::on_cali_action(wxCommandEvent& evt)
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
#include "CalibrationWizardPresetPage.hpp"
|
#include "CalibrationWizardPresetPage.hpp"
|
||||||
#include "CalibrationWizardCaliPage.hpp"
|
#include "CalibrationWizardCaliPage.hpp"
|
||||||
#include "CalibrationWizardSavePage.hpp"
|
#include "CalibrationWizardSavePage.hpp"
|
||||||
#include "StagedBuild.hpp"
|
|
||||||
|
|
||||||
namespace Slic3r { namespace GUI {
|
namespace Slic3r { namespace GUI {
|
||||||
|
|
||||||
@@ -37,7 +36,7 @@ struct ConfigIndexValue
|
|||||||
int index{0};
|
int index{0};
|
||||||
};
|
};
|
||||||
|
|
||||||
class CalibrationWizard : public wxPanel, public StagedBuild {
|
class CalibrationWizard : public wxPanel {
|
||||||
public:
|
public:
|
||||||
CalibrationWizard(wxWindow* parent, CalibMode mode,
|
CalibrationWizard(wxWindow* parent, CalibMode mode,
|
||||||
wxWindowID id = wxID_ANY,
|
wxWindowID id = wxID_ANY,
|
||||||
@@ -80,9 +79,6 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
void on_cali_go_home();
|
void on_cali_go_home();
|
||||||
|
|
||||||
// Queues a page as a build step, created hidden and added to the pages sizer.
|
|
||||||
void add_page_step(CalibrationWizardPageStep*& step, std::function<CalibrationWizardPage*()> make);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/* wx widgets*/
|
/* wx widgets*/
|
||||||
wxScrolledWindow* m_scrolledWindow;
|
wxScrolledWindow* m_scrolledWindow;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user