Fixed conflicts after merge with master
2
.gitignore
vendored
@ -18,4 +18,4 @@ local-lib
|
||||
build-linux/*
|
||||
deps/build-linux/*
|
||||
**/.DS_Store
|
||||
/.idea/
|
||||
**/.idea/
|
||||
|
@ -438,23 +438,6 @@ else()
|
||||
target_link_libraries(libcurl INTERFACE crypt32)
|
||||
endif()
|
||||
|
||||
if (SLIC3R_STATIC AND NOT SLIC3R_STATIC_EXCLUDE_CURL)
|
||||
if (NOT APPLE)
|
||||
# libcurl is always linked dynamically to the system libcurl on OSX.
|
||||
# On other systems, libcurl is linked statically if SLIC3R_STATIC is set.
|
||||
target_compile_definitions(libcurl INTERFACE CURL_STATICLIB)
|
||||
endif()
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# As of now, our build system produces a statically linked libcurl,
|
||||
# which links the OpenSSL library dynamically.
|
||||
find_package(OpenSSL REQUIRED)
|
||||
message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}")
|
||||
message("OpenSSL libraries: ${OPENSSL_LIBRARIES}")
|
||||
target_include_directories(libcurl INTERFACE ${OPENSSL_INCLUDE_DIR})
|
||||
target_link_libraries(libcurl INTERFACE ${OPENSSL_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
## OPTIONAL packages
|
||||
|
||||
# Find eigen3 or use bundled version
|
||||
@ -467,9 +450,8 @@ if (NOT EIGEN3_FOUND)
|
||||
endif ()
|
||||
include_directories(BEFORE SYSTEM ${EIGEN3_INCLUDE_DIR})
|
||||
|
||||
# Find expat or use bundled version
|
||||
# Always use the system libexpat on Linux.
|
||||
|
||||
# Find expat. We have our overriden FindEXPAT which exports libexpat target
|
||||
# no matter what.
|
||||
find_package(EXPAT REQUIRED)
|
||||
|
||||
find_package(PNG REQUIRED)
|
||||
|
@ -30,82 +30,101 @@
|
||||
# ``CURL_VERSION_STRING``
|
||||
# The version of curl found.
|
||||
|
||||
# Look for the header file.
|
||||
find_path(CURL_INCLUDE_DIR NAMES curl/curl.h)
|
||||
mark_as_advanced(CURL_INCLUDE_DIR)
|
||||
# First, prefer config scripts
|
||||
set(_q "")
|
||||
if(CURL_FIND_QUIETLY)
|
||||
set(_q QUIET)
|
||||
endif()
|
||||
find_package(CURL ${CURL_FIND_VERSION} CONFIG ${_q})
|
||||
|
||||
if(NOT CURL_LIBRARY)
|
||||
# Look for the library (sorted from most current/relevant entry to least).
|
||||
find_library(CURL_LIBRARY_RELEASE NAMES
|
||||
curl
|
||||
# Windows MSVC prebuilts:
|
||||
curllib
|
||||
libcurl_imp
|
||||
curllib_static
|
||||
# Windows older "Win32 - MSVC" prebuilts (libcurl.lib, e.g. libcurl-7.15.5-win32-msvc.zip):
|
||||
libcurl
|
||||
# Static library on Windows
|
||||
libcurl_a
|
||||
)
|
||||
mark_as_advanced(CURL_LIBRARY_RELEASE)
|
||||
|
||||
find_library(CURL_LIBRARY_DEBUG NAMES
|
||||
# Windows MSVC CMake builds in debug configuration on vcpkg:
|
||||
libcurl-d_imp
|
||||
libcurl-d
|
||||
# Static library on Windows, compiled in debug mode
|
||||
libcurl_a_debug
|
||||
)
|
||||
mark_as_advanced(CURL_LIBRARY_DEBUG)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations_SLIC3R.cmake)
|
||||
select_library_configurations_SLIC3R(CURL)
|
||||
if(NOT CURL_FIND_QUIETLY)
|
||||
if (NOT CURL_FOUND)
|
||||
message(STATUS "Falling back to MODULE search for CURL...")
|
||||
else()
|
||||
message(STATUS "CURL found in ${CURL_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CURL_INCLUDE_DIR)
|
||||
foreach(_curl_version_header curlver.h curl.h)
|
||||
if(EXISTS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}")
|
||||
file(STRINGS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}" curl_version_str REGEX "^#define[\t ]+LIBCURL_VERSION[\t ]+\".*\"")
|
||||
if (NOT CURL_FOUND)
|
||||
|
||||
string(REGEX REPLACE "^#define[\t ]+LIBCURL_VERSION[\t ]+\"([^\"]*)\".*" "\\1" CURL_VERSION_STRING "${curl_version_str}")
|
||||
unset(curl_version_str)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
# Look for the header file.
|
||||
find_path(CURL_INCLUDE_DIR NAMES curl/curl.h)
|
||||
mark_as_advanced(CURL_INCLUDE_DIR)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs_SLIC3R.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS_SLIC3R(CURL
|
||||
REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
|
||||
VERSION_VAR CURL_VERSION_STRING)
|
||||
if(NOT CURL_LIBRARY)
|
||||
# Look for the library (sorted from most current/relevant entry to least).
|
||||
find_library(CURL_LIBRARY_RELEASE NAMES
|
||||
curl
|
||||
# Windows MSVC prebuilts:
|
||||
curllib
|
||||
libcurl_imp
|
||||
curllib_static
|
||||
# Windows older "Win32 - MSVC" prebuilts (libcurl.lib, e.g. libcurl-7.15.5-win32-msvc.zip):
|
||||
libcurl
|
||||
# Static library on Windows
|
||||
libcurl_a
|
||||
)
|
||||
mark_as_advanced(CURL_LIBRARY_RELEASE)
|
||||
|
||||
if(CURL_FOUND)
|
||||
set(CURL_LIBRARIES ${CURL_LIBRARY})
|
||||
set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
|
||||
find_library(CURL_LIBRARY_DEBUG NAMES
|
||||
# Windows MSVC CMake builds in debug configuration on vcpkg:
|
||||
libcurl-d_imp
|
||||
libcurl-d
|
||||
# Static library on Windows, compiled in debug mode
|
||||
libcurl_a_debug
|
||||
)
|
||||
mark_as_advanced(CURL_LIBRARY_DEBUG)
|
||||
|
||||
if(NOT TARGET CURL::libcurl)
|
||||
add_library(CURL::libcurl UNKNOWN IMPORTED)
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations_SLIC3R.cmake)
|
||||
select_library_configurations_SLIC3R(CURL)
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CURL_LIBRARY}")
|
||||
if(CURL_INCLUDE_DIR)
|
||||
foreach(_curl_version_header curlver.h curl.h)
|
||||
if(EXISTS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}")
|
||||
file(STRINGS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}" curl_version_str REGEX "^#define[\t ]+LIBCURL_VERSION[\t ]+\".*\"")
|
||||
|
||||
string(REGEX REPLACE "^#define[\t ]+LIBCURL_VERSION[\t ]+\"([^\"]*)\".*" "\\1" CURL_VERSION_STRING "${curl_version_str}")
|
||||
unset(curl_version_str)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs_SLIC3R.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS_SLIC3R(CURL
|
||||
REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
|
||||
VERSION_VAR CURL_VERSION_STRING)
|
||||
|
||||
if(CURL_FOUND)
|
||||
set(CURL_LIBRARIES ${CURL_LIBRARY})
|
||||
set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
|
||||
|
||||
if(NOT TARGET CURL::libcurl)
|
||||
add_library(CURL::libcurl UNKNOWN IMPORTED)
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION "${CURL_LIBRARY}")
|
||||
endif()
|
||||
if(CURL_LIBRARY_RELEASE)
|
||||
set_property(TARGET CURL::libcurl APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION_RELEASE "${CURL_LIBRARY_RELEASE}")
|
||||
endif()
|
||||
if(CURL_LIBRARY_DEBUG)
|
||||
set_property(TARGET CURL::libcurl APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION_DEBUG "${CURL_LIBRARY_DEBUG}")
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}")
|
||||
|
||||
if(EXISTS "${CURL_LIBRARY}")
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION "${CURL_LIBRARY}")
|
||||
endif()
|
||||
if(CURL_LIBRARY_RELEASE)
|
||||
set_property(TARGET CURL::libcurl APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION_RELEASE "${CURL_LIBRARY_RELEASE}")
|
||||
endif()
|
||||
if(CURL_LIBRARY_DEBUG)
|
||||
set_property(TARGET CURL::libcurl APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION_DEBUG "${CURL_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endif (NOT CURL_FOUND)
|
||||
|
4
deps/Boost/Boost.cmake
vendored
@ -75,7 +75,9 @@ file(TO_NATIVE_PATH ${DESTDIR}/usr/local/ _prefix)
|
||||
set(_boost_flags "")
|
||||
if (UNIX)
|
||||
set(_boost_flags "cflags=-fPIC;cxxflags=-fPIC")
|
||||
elseif(APPLE)
|
||||
endif ()
|
||||
|
||||
if(APPLE)
|
||||
set(_boost_flags
|
||||
"cflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
|
||||
"cxxflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
|
||||
|
9
deps/CMakeLists.txt
vendored
@ -179,7 +179,12 @@ include(CGAL/CGAL.cmake)
|
||||
include(NLopt/NLopt.cmake)
|
||||
|
||||
include(OpenSSL/OpenSSL.cmake)
|
||||
include(CURL/CURL.cmake)
|
||||
|
||||
set(CURL_PKG "")
|
||||
if (NOT CURL_FOUND)
|
||||
include(CURL/CURL.cmake)
|
||||
set(CURL_PKG dep_CURL)
|
||||
endif ()
|
||||
|
||||
include(JPEG/JPEG.cmake)
|
||||
include(TIFF/TIFF.cmake)
|
||||
@ -188,7 +193,7 @@ include(wxWidgets/wxWidgets.cmake)
|
||||
set(_dep_list
|
||||
dep_Boost
|
||||
dep_TBB
|
||||
dep_CURL
|
||||
${CURL_PKG}
|
||||
dep_wxWidgets
|
||||
dep_Cereal
|
||||
dep_NLopt
|
||||
|
14
deps/CURL/CURL.cmake
vendored
@ -48,11 +48,13 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
)
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set(_curl_static OFF)
|
||||
else()
|
||||
set(_curl_static ON)
|
||||
endif()
|
||||
set(_patch_command "")
|
||||
if (UNIX AND NOT APPLE)
|
||||
# On non-apple UNIX platforms, finding the location of OpenSSL certificates is necessary at runtime, as there is no standard location usable across platforms.
|
||||
# The OPENSSL_CERT_OVERRIDE flag is understood by PrusaSlicer and will trigger the search of certificates at initial application launch.
|
||||
# Then ask the user for consent about the correctness of the found location.
|
||||
set (_patch_command echo set_target_properties(CURL::libcurl PROPERTIES INTERFACE_COMPILE_DEFINITIONS OPENSSL_CERT_OVERRIDE) >> CMake/curl-config.cmake.in)
|
||||
endif ()
|
||||
|
||||
prusaslicer_add_cmake_project(CURL
|
||||
# GIT_REPOSITORY https://github.com/curl/curl.git
|
||||
@ -62,10 +64,10 @@ prusaslicer_add_cmake_project(CURL
|
||||
DEPENDS ${ZLIB_PKG}
|
||||
# PATCH_COMMAND ${GIT_EXECUTABLE} checkout -f -- . && git clean -df &&
|
||||
# ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/curl-mods.patch
|
||||
PATCH_COMMAND "${_patch_command}"
|
||||
CMAKE_ARGS
|
||||
-DBUILD_TESTING:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DCURL_STATICLIB=${_curl_static}
|
||||
${_curl_platform_flags}
|
||||
)
|
||||
|
||||
|
5
deps/deps-macos.cmake
vendored
@ -15,6 +15,11 @@ set(DEP_CMAKE_OPTS
|
||||
|
||||
include("deps-unix-common.cmake")
|
||||
|
||||
find_package(CURL QUIET)
|
||||
if (NOT CURL_FOUND)
|
||||
message(WARNING "No CURL dev package found in system, building static library. Mac SDK should include CURL from at least version 10.12. Check your SDK installation.")
|
||||
endif ()
|
||||
|
||||
|
||||
# ExternalProject_Add(dep_boost
|
||||
# EXCLUDE_FROM_ALL 1
|
||||
|
6
deps/wxWidgets/wxWidgets.cmake
vendored
@ -9,6 +9,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(_wx_toolkit "-DwxBUILD_TOOLKIT=gtk${_gtk_ver}")
|
||||
endif()
|
||||
|
||||
set(_unicode_utf8 OFF)
|
||||
if (UNIX AND NOT APPLE) # wxWidgets will not use char as the underlying type for wxString unless its forced to.
|
||||
set (_unicode_utf8 ON)
|
||||
endif()
|
||||
|
||||
prusaslicer_add_cmake_project(wxWidgets
|
||||
# GIT_REPOSITORY "https://github.com/prusa3d/wxWidgets"
|
||||
# GIT_TAG tm_cross_compile #${_wx_git_tag}
|
||||
@ -23,6 +28,7 @@ prusaslicer_add_cmake_project(wxWidgets
|
||||
-DwxUSE_MEDIACTRL=OFF
|
||||
-DwxUSE_DETECT_SM=OFF
|
||||
-DwxUSE_UNICODE=ON
|
||||
-DwxUSE_UNICODE_UTF8=${_unicode_utf8}
|
||||
-DwxUSE_OPENGL=ON
|
||||
-DwxUSE_LIBPNG=sys
|
||||
-DwxUSE_ZLIB=sys
|
||||
|
@ -28,11 +28,6 @@ BEGIN {
|
||||
|
||||
use FindBin;
|
||||
|
||||
# Let the XS module know where the GUI resources reside.
|
||||
set_resources_dir(decode_path($FindBin::Bin) . (($^O eq 'darwin') ? '/../Resources' : '/resources'));
|
||||
set_var_dir(resources_dir() . "/icons");
|
||||
set_local_dir(resources_dir() . "/localization/");
|
||||
|
||||
use Moo 1.003001;
|
||||
|
||||
use Slic3r::XS; # import all symbols (constants etc.) before they get parsed
|
||||
@ -40,9 +35,7 @@ use Slic3r::Config;
|
||||
use Slic3r::ExPolygon;
|
||||
use Slic3r::ExtrusionLoop;
|
||||
use Slic3r::ExtrusionPath;
|
||||
use Slic3r::Flow;
|
||||
use Slic3r::GCode::Reader;
|
||||
use Slic3r::Geometry::Clipper;
|
||||
use Slic3r::Layer;
|
||||
use Slic3r::Line;
|
||||
use Slic3r::Model;
|
||||
@ -61,82 +54,4 @@ use constant SCALING_FACTOR => 0.000001;
|
||||
$Slic3r::loglevel = (defined($ENV{'SLIC3R_LOGLEVEL'}) && $ENV{'SLIC3R_LOGLEVEL'} =~ /^[1-9]/) ? $ENV{'SLIC3R_LOGLEVEL'} : 0;
|
||||
set_logging_level($Slic3r::loglevel);
|
||||
|
||||
# Let the palceholder parser evaluate one expression to initialize its local static macro_processor
|
||||
# class instance in a thread safe manner.
|
||||
Slic3r::GCode::PlaceholderParser->new->evaluate_boolean_expression('1==1');
|
||||
|
||||
# Open a file by converting $filename to local file system locales.
|
||||
sub open {
|
||||
my ($fh, $mode, $filename) = @_;
|
||||
return CORE::open $$fh, $mode, encode_path($filename);
|
||||
}
|
||||
|
||||
sub tags {
|
||||
my ($format) = @_;
|
||||
$format //= '';
|
||||
my %tags;
|
||||
# End of line
|
||||
$tags{eol} = ($format eq 'html') ? '<br>' : "\n";
|
||||
# Heading
|
||||
$tags{h2start} = ($format eq 'html') ? '<b>' : '';
|
||||
$tags{h2end} = ($format eq 'html') ? '</b>' : '';
|
||||
# Bold font
|
||||
$tags{bstart} = ($format eq 'html') ? '<b>' : '';
|
||||
$tags{bend} = ($format eq 'html') ? '</b>' : '';
|
||||
# Verbatim
|
||||
$tags{vstart} = ($format eq 'html') ? '<pre>' : '';
|
||||
$tags{vend} = ($format eq 'html') ? '</pre>' : '';
|
||||
return %tags;
|
||||
}
|
||||
|
||||
sub slic3r_info
|
||||
{
|
||||
my (%params) = @_;
|
||||
my %tag = Slic3r::tags($params{format});
|
||||
my $out = '';
|
||||
$out .= "$tag{bstart}$Slic3r::FORK_NAME$tag{bend}$tag{eol}";
|
||||
$out .= "$tag{bstart}Version: $tag{bend}$Slic3r::VERSION$tag{eol}";
|
||||
$out .= "$tag{bstart}Build: $tag{bend}$Slic3r::BUILD$tag{eol}";
|
||||
return $out;
|
||||
}
|
||||
|
||||
sub copyright_info
|
||||
{
|
||||
my (%params) = @_;
|
||||
my %tag = Slic3r::tags($params{format});
|
||||
my $out =
|
||||
'Copyright © 2016 Vojtech Bubnik, Prusa Research. <br />' .
|
||||
'Copyright © 2011-2016 Alessandro Ranellucci. <br />' .
|
||||
'<a href="http://slic3r.org/">Slic3r</a> is licensed under the ' .
|
||||
'<a href="http://www.gnu.org/licenses/agpl-3.0.html">GNU Affero General Public License, version 3</a>.' .
|
||||
'<br /><br /><br />' .
|
||||
'Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Y. Sapir, Mike Sheldrake and numerous others. ' .
|
||||
'Manual by Gary Hodgson. Inspired by the RepRap community. <br />' .
|
||||
'Slic3r logo designed by Corey Daniels, <a href="http://www.famfamfam.com/lab/icons/silk/">Silk Icon Set</a> designed by Mark James. ';
|
||||
return $out;
|
||||
}
|
||||
|
||||
sub system_info
|
||||
{
|
||||
my (%params) = @_;
|
||||
my %tag = Slic3r::tags($params{format});
|
||||
|
||||
my $out = '';
|
||||
$out .= "$tag{bstart}Operating System: $tag{bend}$Config{osname}$tag{eol}";
|
||||
$out .= "$tag{bstart}System Architecture: $tag{bend}$Config{archname}$tag{eol}";
|
||||
if ($^O eq 'MSWin32') {
|
||||
$out .= "$tag{bstart}Windows Version: $tag{bend}" . `ver` . $tag{eol};
|
||||
} else {
|
||||
# Hopefully some kind of unix / linux.
|
||||
$out .= "$tag{bstart}System Version: $tag{bend}" . `uname -a` . $tag{eol};
|
||||
}
|
||||
$out .= $tag{vstart} . Config::myconfig . $tag{vend};
|
||||
$out .= " $tag{bstart}\@INC:$tag{bend}$tag{eol}$tag{vstart}";
|
||||
foreach my $i (@INC) {
|
||||
$out .= " $i\n";
|
||||
}
|
||||
$out .= "$tag{vend}";
|
||||
return $out;
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -23,54 +23,10 @@ our $Options = print_config_def();
|
||||
}
|
||||
}
|
||||
|
||||
# From command line parameters, used by slic3r.pl
|
||||
sub new_from_cli {
|
||||
my $class = shift;
|
||||
my %args = @_;
|
||||
|
||||
# Delete hash keys with undefined value.
|
||||
delete $args{$_} for grep !defined $args{$_}, keys %args;
|
||||
|
||||
# Replace the start_gcode, end_gcode ... hash values
|
||||
# with the content of the files they reference.
|
||||
for (qw(start end layer toolchange)) {
|
||||
my $opt_key = "${_}_gcode";
|
||||
if ($args{$opt_key}) {
|
||||
if (-e $args{$opt_key}) {
|
||||
Slic3r::open(\my $fh, "<", $args{$opt_key})
|
||||
or die "Failed to open $args{$opt_key}\n";
|
||||
binmode $fh, ':utf8';
|
||||
$args{$opt_key} = do { local $/; <$fh> };
|
||||
close $fh;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
my $self = $class->new;
|
||||
foreach my $opt_key (keys %args) {
|
||||
my $opt_def = $Options->{$opt_key};
|
||||
|
||||
# we use set_deserialize() for bool options since GetOpt::Long doesn't handle
|
||||
# arrays of boolean values
|
||||
if ($opt_key =~ /^(?:bed_shape|duplicate_grid|extruder_offset)$/ || $opt_def->{type} eq 'bool') {
|
||||
$self->set_deserialize($opt_key, $args{$opt_key});
|
||||
} elsif (my $shortcut = $opt_def->{shortcut}) {
|
||||
$self->set($_, $args{$opt_key}) for @$shortcut;
|
||||
} else {
|
||||
$self->set($opt_key, $args{$opt_key});
|
||||
}
|
||||
}
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
package Slic3r::Config::Static;
|
||||
use parent 'Slic3r::Config';
|
||||
|
||||
sub Slic3r::Config::GCode::new { Slic3r::Config::Static::new_GCodeConfig }
|
||||
sub Slic3r::Config::Print::new { Slic3r::Config::Static::new_PrintConfig }
|
||||
sub Slic3r::Config::PrintObject::new { Slic3r::Config::Static::new_PrintObjectConfig }
|
||||
sub Slic3r::Config::PrintRegion::new { Slic3r::Config::Static::new_PrintRegionConfig }
|
||||
sub Slic3r::Config::Full::new { Slic3r::Config::Static::new_FullPrintConfig }
|
||||
|
||||
1;
|
||||
|
@ -4,36 +4,9 @@ use warnings;
|
||||
|
||||
# an ExPolygon is a polygon with holes
|
||||
|
||||
use List::Util qw(first);
|
||||
use Slic3r::Geometry::Clipper qw(union_ex diff_pl);
|
||||
|
||||
sub offset {
|
||||
my $self = shift;
|
||||
return Slic3r::Geometry::Clipper::offset(\@$self, @_);
|
||||
}
|
||||
|
||||
sub offset_ex {
|
||||
my $self = shift;
|
||||
return Slic3r::Geometry::Clipper::offset_ex(\@$self, @_);
|
||||
}
|
||||
|
||||
sub noncollapsing_offset_ex {
|
||||
my $self = shift;
|
||||
my ($distance, @params) = @_;
|
||||
|
||||
return $self->offset_ex($distance + 1, @params);
|
||||
}
|
||||
|
||||
sub bounding_box {
|
||||
my $self = shift;
|
||||
return $self->contour->bounding_box;
|
||||
}
|
||||
|
||||
package Slic3r::ExPolygon::Collection;
|
||||
|
||||
sub size {
|
||||
my $self = shift;
|
||||
return [ Slic3r::Geometry::size_2D([ map @$_, map @$_, @$self ]) ];
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -1,13 +0,0 @@
|
||||
package Slic3r::Flow;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent qw(Exporter);
|
||||
|
||||
our @EXPORT_OK = qw(FLOW_ROLE_EXTERNAL_PERIMETER FLOW_ROLE_PERIMETER FLOW_ROLE_INFILL
|
||||
FLOW_ROLE_SOLID_INFILL
|
||||
FLOW_ROLE_TOP_SOLID_INFILL FLOW_ROLE_SUPPORT_MATERIAL
|
||||
FLOW_ROLE_SUPPORT_MATERIAL_INTERFACE);
|
||||
our %EXPORT_TAGS = (roles => \@EXPORT_OK);
|
||||
|
||||
1;
|
@ -9,26 +9,15 @@ our @ISA = qw(Exporter);
|
||||
our @EXPORT_OK = qw(
|
||||
PI epsilon
|
||||
|
||||
angle3points
|
||||
collinear
|
||||
dot
|
||||
line_intersection
|
||||
normalize
|
||||
point_in_segment
|
||||
polyline_lines
|
||||
polygon_is_convex
|
||||
polygon_segment_having_point
|
||||
scale
|
||||
unscale
|
||||
scaled_epsilon
|
||||
size_2D
|
||||
|
||||
X Y Z
|
||||
convex_hull
|
||||
chained_path_from
|
||||
deg2rad
|
||||
rad2deg
|
||||
rad2deg_dir
|
||||
);
|
||||
|
||||
use constant PI => 4 * atan2(1, 1);
|
||||
@ -45,171 +34,6 @@ sub scaled_epsilon () { epsilon / &Slic3r::SCALING_FACTOR }
|
||||
sub scale ($) { $_[0] / &Slic3r::SCALING_FACTOR }
|
||||
sub unscale ($) { $_[0] * &Slic3r::SCALING_FACTOR }
|
||||
|
||||
# used by geometry.t, polygon_segment_having_point
|
||||
sub point_in_segment {
|
||||
my ($point, $line) = @_;
|
||||
|
||||
my ($x, $y) = @$point;
|
||||
my $line_p = $line->pp;
|
||||
my @line_x = sort { $a <=> $b } $line_p->[A][X], $line_p->[B][X];
|
||||
my @line_y = sort { $a <=> $b } $line_p->[A][Y], $line_p->[B][Y];
|
||||
|
||||
# check whether the point is in the segment bounding box
|
||||
return 0 unless $x >= ($line_x[0] - epsilon) && $x <= ($line_x[1] + epsilon)
|
||||
&& $y >= ($line_y[0] - epsilon) && $y <= ($line_y[1] + epsilon);
|
||||
|
||||
# if line is vertical, check whether point's X is the same as the line
|
||||
if ($line_p->[A][X] == $line_p->[B][X]) {
|
||||
return abs($x - $line_p->[A][X]) < epsilon ? 1 : 0;
|
||||
}
|
||||
|
||||
# calculate the Y in line at X of the point
|
||||
my $y3 = $line_p->[A][Y] + ($line_p->[B][Y] - $line_p->[A][Y])
|
||||
* ($x - $line_p->[A][X]) / ($line_p->[B][X] - $line_p->[A][X]);
|
||||
return abs($y3 - $y) < epsilon ? 1 : 0;
|
||||
}
|
||||
|
||||
# used by geometry.t
|
||||
sub polyline_lines {
|
||||
my ($polyline) = @_;
|
||||
my @points = @$polyline;
|
||||
return map Slic3r::Line->new(@points[$_, $_+1]), 0 .. $#points-1;
|
||||
}
|
||||
|
||||
# given a $polygon, return the (first) segment having $point
|
||||
# used by geometry.t
|
||||
sub polygon_segment_having_point {
|
||||
my ($polygon, $point) = @_;
|
||||
|
||||
foreach my $line (@{ $polygon->lines }) {
|
||||
return $line if point_in_segment($point, $line);
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
# polygon must be simple (non complex) and ccw
|
||||
sub polygon_is_convex {
|
||||
my ($points) = @_;
|
||||
for (my $i = 0; $i <= $#$points; $i++) {
|
||||
my $angle = angle3points($points->[$i-1], $points->[$i-2], $points->[$i]);
|
||||
return 0 if $angle < PI;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub normalize {
|
||||
my ($line) = @_;
|
||||
|
||||
my $len = sqrt( ($line->[X]**2) + ($line->[Y]**2) + ($line->[Z]**2) )
|
||||
or return [0, 0, 0]; # to avoid illegal division by zero
|
||||
return [ map $_ / $len, @$line ];
|
||||
}
|
||||
|
||||
# 2D dot product
|
||||
# used by 3DScene.pm
|
||||
sub dot {
|
||||
my ($u, $v) = @_;
|
||||
return $u->[X] * $v->[X] + $u->[Y] * $v->[Y];
|
||||
}
|
||||
|
||||
sub line_intersection {
|
||||
my ($line1, $line2, $require_crossing) = @_;
|
||||
$require_crossing ||= 0;
|
||||
|
||||
my $intersection = _line_intersection(map @$_, @$line1, @$line2);
|
||||
return (ref $intersection && $intersection->[1] == $require_crossing)
|
||||
? $intersection->[0]
|
||||
: undef;
|
||||
}
|
||||
|
||||
# Used by test cases.
|
||||
sub collinear {
|
||||
my ($line1, $line2, $require_overlapping) = @_;
|
||||
my $intersection = _line_intersection(map @$_, @$line1, @$line2);
|
||||
return 0 unless !ref($intersection)
|
||||
&& ($intersection eq 'parallel collinear'
|
||||
|| ($intersection eq 'parallel vertical' && abs($line1->[A][X] - $line2->[A][X]) < epsilon));
|
||||
|
||||
if ($require_overlapping) {
|
||||
my @box_a = bounding_box([ $line1->[0], $line1->[1] ]);
|
||||
my @box_b = bounding_box([ $line2->[0], $line2->[1] ]);
|
||||
return 0 unless bounding_box_intersect( 2, @box_a, @box_b );
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub _line_intersection {
|
||||
my ( $x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3 ) = @_;
|
||||
|
||||
my ($x, $y); # The as-yet-undetermined intersection point.
|
||||
|
||||
my $dy10 = $y1 - $y0; # dyPQ, dxPQ are the coordinate differences
|
||||
my $dx10 = $x1 - $x0; # between the points P and Q.
|
||||
my $dy32 = $y3 - $y2;
|
||||
my $dx32 = $x3 - $x2;
|
||||
|
||||
my $dy10z = abs( $dy10 ) < epsilon; # Is the difference $dy10 "zero"?
|
||||
my $dx10z = abs( $dx10 ) < epsilon;
|
||||
my $dy32z = abs( $dy32 ) < epsilon;
|
||||
my $dx32z = abs( $dx32 ) < epsilon;
|
||||
|
||||
my $dyx10; # The slopes.
|
||||
my $dyx32;
|
||||
|
||||
$dyx10 = $dy10 / $dx10 unless $dx10z;
|
||||
$dyx32 = $dy32 / $dx32 unless $dx32z;
|
||||
|
||||
# Now we know all differences and the slopes;
|
||||
# we can detect horizontal/vertical special cases.
|
||||
# E.g., slope = 0 means a horizontal line.
|
||||
|
||||
unless ( defined $dyx10 or defined $dyx32 ) {
|
||||
return "parallel vertical";
|
||||
}
|
||||
elsif ( $dy10z and not $dy32z ) { # First line horizontal.
|
||||
$y = $y0;
|
||||
$x = $x2 + ( $y - $y2 ) * $dx32 / $dy32;
|
||||
}
|
||||
elsif ( not $dy10z and $dy32z ) { # Second line horizontal.
|
||||
$y = $y2;
|
||||
$x = $x0 + ( $y - $y0 ) * $dx10 / $dy10;
|
||||
}
|
||||
elsif ( $dx10z and not $dx32z ) { # First line vertical.
|
||||
$x = $x0;
|
||||
$y = $y2 + $dyx32 * ( $x - $x2 );
|
||||
}
|
||||
elsif ( not $dx10z and $dx32z ) { # Second line vertical.
|
||||
$x = $x2;
|
||||
$y = $y0 + $dyx10 * ( $x - $x0 );
|
||||
}
|
||||
elsif ( abs( $dyx10 - $dyx32 ) < epsilon ) {
|
||||
# The slopes are suspiciously close to each other.
|
||||
# Either we have parallel collinear or just parallel lines.
|
||||
|
||||
# The bounding box checks have already weeded the cases
|
||||
# "parallel horizontal" and "parallel vertical" away.
|
||||
|
||||
my $ya = $y0 - $dyx10 * $x0;
|
||||
my $yb = $y2 - $dyx32 * $x2;
|
||||
|
||||
return "parallel collinear" if abs( $ya - $yb ) < epsilon;
|
||||
return "parallel";
|
||||
}
|
||||
else {
|
||||
# None of the special cases matched.
|
||||
# We have a "honest" line intersection.
|
||||
|
||||
$x = ($y2 - $y0 + $dyx10*$x0 - $dyx32*$x2)/($dyx10 - $dyx32);
|
||||
$y = $y0 + $dyx10 * ($x - $x0);
|
||||
}
|
||||
|
||||
my $h10 = $dx10 ? ($x - $x0) / $dx10 : ($dy10 ? ($y - $y0) / $dy10 : 1);
|
||||
my $h32 = $dx32 ? ($x - $x2) / $dx32 : ($dy32 ? ($y - $y2) / $dy32 : 1);
|
||||
|
||||
return [Slic3r::Point->new($x, $y), $h10 >= 0 && $h10 <= 1 && $h32 >= 0 && $h32 <= 1];
|
||||
}
|
||||
|
||||
# 2D
|
||||
sub bounding_box {
|
||||
my ($points) = @_;
|
||||
@ -227,45 +51,4 @@ sub bounding_box {
|
||||
return @bb[X1,Y1,X2,Y2];
|
||||
}
|
||||
|
||||
# used by ExPolygon::size
|
||||
sub size_2D {
|
||||
my @bounding_box = bounding_box(@_);
|
||||
return (
|
||||
($bounding_box[X2] - $bounding_box[X1]),
|
||||
($bounding_box[Y2] - $bounding_box[Y1]),
|
||||
);
|
||||
}
|
||||
|
||||
# Used by sub collinear, which is used by test cases.
|
||||
# bounding_box_intersect($d, @a, @b)
|
||||
# Return true if the given bounding boxes @a and @b intersect
|
||||
# in $d dimensions. Used by sub collinear.
|
||||
sub bounding_box_intersect {
|
||||
my ( $d, @bb ) = @_; # Number of dimensions and box coordinates.
|
||||
my @aa = splice( @bb, 0, 2 * $d ); # The first box.
|
||||
# (@bb is the second one.)
|
||||
|
||||
# Must intersect in all dimensions.
|
||||
for ( my $i_min = 0; $i_min < $d; $i_min++ ) {
|
||||
my $i_max = $i_min + $d; # The index for the maximum.
|
||||
return 0 if ( $aa[ $i_max ] + epsilon ) < $bb[ $i_min ];
|
||||
return 0 if ( $bb[ $i_max ] + epsilon ) < $aa[ $i_min ];
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Used by test cases.
|
||||
# this assumes a CCW rotation from $p2 to $p3 around $p1
|
||||
sub angle3points {
|
||||
my ($p1, $p2, $p3) = @_;
|
||||
# p1 is the center
|
||||
|
||||
my $angle = atan2($p2->[X] - $p1->[X], $p2->[Y] - $p1->[Y])
|
||||
- atan2($p3->[X] - $p1->[X], $p3->[Y] - $p1->[Y]);
|
||||
|
||||
# we only want to return only positive angles
|
||||
return $angle <= 0 ? $angle + 2*PI() : $angle;
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -1,14 +0,0 @@
|
||||
package Slic3r::Geometry::Clipper;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
require Exporter;
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT_OK = qw(
|
||||
offset
|
||||
offset_ex offset2_ex
|
||||
diff_ex diff union_ex intersection_ex
|
||||
JT_ROUND JT_MITER JT_SQUARE
|
||||
intersection intersection_pl diff_pl union);
|
||||
|
||||
1;
|
@ -15,23 +15,4 @@ sub config {
|
||||
return $self->object->config;
|
||||
}
|
||||
|
||||
sub region {
|
||||
my $self = shift;
|
||||
my ($region_id) = @_;
|
||||
|
||||
while ($self->region_count <= $region_id) {
|
||||
$self->add_region($self->object->print->get_region($self->region_count));
|
||||
}
|
||||
|
||||
return $self->get_region($region_id);
|
||||
}
|
||||
|
||||
sub regions {
|
||||
my ($self) = @_;
|
||||
return [ map $self->get_region($_), 0..($self->region_count-1) ];
|
||||
}
|
||||
|
||||
package Slic3r::Layer::Support;
|
||||
our @ISA = qw(Slic3r::Layer);
|
||||
|
||||
1;
|
||||
|
@ -5,15 +5,4 @@ use warnings;
|
||||
# a line is a two-points line
|
||||
use parent 'Slic3r::Polyline';
|
||||
|
||||
sub intersection {
|
||||
my $self = shift;
|
||||
my ($line, $require_crossing) = @_;
|
||||
return Slic3r::Geometry::line_intersection($self, $line, $require_crossing);
|
||||
}
|
||||
|
||||
sub grow {
|
||||
my $self = shift;
|
||||
return Slic3r::Polyline->new(@$self)->grow(@_);
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -133,11 +133,4 @@ sub add_instance {
|
||||
}
|
||||
}
|
||||
|
||||
sub mesh_stats {
|
||||
my $self = shift;
|
||||
|
||||
# TODO: sum values from all volumes
|
||||
return $self->volumes->[0]->mesh->stats;
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -5,9 +5,4 @@ use warnings;
|
||||
# a polygon is a closed polyline.
|
||||
use parent 'Slic3r::Polyline';
|
||||
|
||||
sub grow {
|
||||
my $self = shift;
|
||||
return $self->split_at_first_point->grow(@_);
|
||||
}
|
||||
|
||||
1;
|
@ -4,11 +4,6 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
use List::Util qw(min max sum first);
|
||||
use Slic3r::Flow ':roles';
|
||||
use Slic3r::Geometry qw(scale epsilon);
|
||||
use Slic3r::Geometry::Clipper qw(diff diff_ex intersection intersection_ex union union_ex
|
||||
offset offset_ex offset2_ex JT_MITER);
|
||||
use Slic3r::Print::State ':steps';
|
||||
use Slic3r::Surface ':types';
|
||||
|
||||
sub layers {
|
||||
@ -16,9 +11,4 @@ sub layers {
|
||||
return [ map $self->get_layer($_), 0..($self->layer_count - 1) ];
|
||||
}
|
||||
|
||||
sub support_layers {
|
||||
my $self = shift;
|
||||
return [ map $self->get_support_layer($_), 0..($self->support_layer_count - 1) ];
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -1,12 +0,0 @@
|
||||
# Wraps C++ enums Slic3r::PrintStep and Slic3r::PrintObjectStep
|
||||
package Slic3r::Print::State;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
require Exporter;
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT_OK = qw(STEP_SLICE STEP_PERIMETERS STEP_PREPARE_INFILL
|
||||
STEP_INFILL STEP_SUPPORTMATERIAL STEP_SKIRT STEP_BRIM STEP_WIPE_TOWER);
|
||||
our %EXPORT_TAGS = (steps => \@EXPORT_OK);
|
||||
|
||||
1;
|
@ -41,8 +41,8 @@
|
||||
# hypertext_type = gallery
|
||||
#
|
||||
#Open top menubar item
|
||||
#hypertext_menubar_menu_name = (Name in english visible as menu name: File, )
|
||||
#hypertext_menubar_item_name = (Name of item in english, if there are three dots at the end of name, put name without three dots)
|
||||
#hypertext_menubar_menu_name = (Exact Name in english visible as menu name: File, ) Note: If it contains "&", you have to leave it
|
||||
#hypertext_menubar_item_name = (Exact Name of item in english, if there are three dots at the end of name, put name without three dots) Note: If it contains "&", you have to leave it
|
||||
#
|
||||
#
|
||||
# Each notification can have disabled and enabled modes and techs - divided by ; and space
|
||||
@ -200,8 +200,8 @@ disabled_tags = SLA
|
||||
text = Configuration snapshots\nDid you know that you can roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - <a>Configuration snapshots menu</a>.
|
||||
documentation_link = https://help.prusa3d.com/en/article/configuration-snapshots_1776
|
||||
hypertext_type = menubar
|
||||
hypertext_menubar_menu_name = Configuration
|
||||
hypertext_menubar_item_name = Configuration Snapshots
|
||||
hypertext_menubar_menu_name = &Configuration
|
||||
hypertext_menubar_item_name = &Configuration Snapshots
|
||||
|
||||
[hint:Minimum shell thickness]
|
||||
text = Minimum shell thickness\nDid you know that instead of the number of top and bottom layers, you can define the<a>Minimum shell thickness</a>in millimeters? This feature is especially useful when using the variable layer height function.
|
||||
@ -222,6 +222,11 @@ text = Adaptive infills\nDid you know that you can use the Adaptive cubic and Su
|
||||
documentation_link = https://help.prusa3d.com/en/article/infill-patterns_177130
|
||||
disabled_tags = SLA
|
||||
|
||||
[hint:Lightning infill]
|
||||
text = Lightning infill\nDid you know that you can use the Lightning infill to support only the top surfaces, save a lot of the filament, and decrease the print time? Read more in the documentation.
|
||||
documentation_link = https://help.prusa3d.com/en/article/infill-patterns_177130
|
||||
disabled_tags = SLA
|
||||
|
||||
[hint:Fullscreen mode]
|
||||
text = Fullscreen mode\nDid you know that you can switch PrusaSlicer to fullscreen mode? Use the <b>F11</b> hotkey.
|
||||
enabled_tags = Windows
|
||||
|
Before Width: | Height: | Size: 232 KiB After Width: | Height: | Size: 217 KiB |
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 311 KiB |
@ -17,15 +17,20 @@ src/slic3r/GUI/GalleryDialog.cpp
|
||||
src/slic3r/GUI/GCodeViewer.cpp
|
||||
src/slic3r/GUI/GLCanvas3D.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoCut.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoCut.hpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoMove.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoScale.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.hpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
|
||||
src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp
|
||||
|
@ -1,3 +1,5 @@
|
||||
min_slic3r_version = 2.5.0-alpha0
|
||||
0.1.5 Added Ender-3 S1 Pro
|
||||
min_slic3r_version = 2.4.1
|
||||
0.1.4 Added Ender-3 Pro. Added M25 support for some printers.
|
||||
min_slic3r_version = 2.4.0-rc
|
||||
|
@ -5,7 +5,7 @@
|
||||
name = Creality
|
||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||
config_version = 0.1.4
|
||||
config_version = 0.1.5
|
||||
# Where to get the updates from?
|
||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Creality/
|
||||
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
||||
@ -21,7 +21,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3_bed.stl
|
||||
bed_texture = ender3.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER3BLTOUCH]
|
||||
name = Creality Ender-3 BLTouch
|
||||
@ -30,7 +30,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3_bed.stl
|
||||
bed_texture = ender3.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER3PRO]
|
||||
name = Creality Ender-3 Pro
|
||||
@ -39,7 +39,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3_bed.stl
|
||||
bed_texture = ender3.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER3V2]
|
||||
name = Creality Ender-3 V2
|
||||
@ -48,7 +48,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3v2_bed.stl
|
||||
bed_texture = ender3v2.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER3S1]
|
||||
name = Creality Ender-3 S1
|
||||
@ -57,7 +57,16 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3v2_bed.stl
|
||||
bed_texture = ender3v2.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER3S1PRO]
|
||||
name = Creality Ender-3 S1 Pro
|
||||
variants = 0.4
|
||||
technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3v2_bed.stl
|
||||
bed_texture = ender3v2.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER3MAX]
|
||||
name = Creality Ender-3 Max
|
||||
@ -66,7 +75,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = cr10v2_bed.stl
|
||||
bed_texture = cr10spro.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER4]
|
||||
name = Creality Ender-4
|
||||
@ -75,7 +84,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3v2_bed.stl
|
||||
bed_texture = ender3v2.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER5]
|
||||
name = Creality Ender-5
|
||||
@ -84,7 +93,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender3_bed.stl
|
||||
bed_texture = ender3.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER5PLUS]
|
||||
name = Creality Ender-5 Plus
|
||||
@ -93,7 +102,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender5plus_bed.stl
|
||||
bed_texture = ender5plus.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER6]
|
||||
name = Creality Ender-6
|
||||
@ -102,7 +111,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender6_bed.stl
|
||||
bed_texture = ender6.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER7]
|
||||
name = Creality Ender-7
|
||||
@ -111,7 +120,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender7_bed.stl
|
||||
bed_texture = ender7.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER2]
|
||||
name = Creality Ender-2
|
||||
@ -120,7 +129,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender2_bed.stl
|
||||
bed_texture = ender2.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:ENDER2PRO]
|
||||
name = Creality Ender-2 Pro
|
||||
@ -129,7 +138,7 @@ technology = FFF
|
||||
family = ENDER
|
||||
bed_model = ender2pro_bed.stl
|
||||
bed_texture = ender2pro.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR5PRO]
|
||||
name = Creality CR-5 Pro
|
||||
@ -138,7 +147,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr5pro_bed.stl
|
||||
bed_texture = cr5pro.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR5PROH]
|
||||
name = Creality CR-5 Pro H
|
||||
@ -147,7 +156,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr5pro_bed.stl
|
||||
bed_texture = cr5pro.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR6SE]
|
||||
name = Creality CR-6 SE
|
||||
@ -156,7 +165,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr6se_bed.stl
|
||||
bed_texture = cr6se.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR6MAX]
|
||||
name = Creality CR-6 Max
|
||||
@ -165,7 +174,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10s4_bed.stl
|
||||
bed_texture = cr10s4.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10SMART]
|
||||
name = Creality CR-10 SMART
|
||||
@ -174,7 +183,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10v2_bed.stl
|
||||
bed_texture = cr10spro.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10MINI]
|
||||
name = Creality CR-10 Mini
|
||||
@ -183,7 +192,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10mini_bed.stl
|
||||
bed_texture = cr10mini.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10MAX]
|
||||
name = Creality CR-10 Max
|
||||
@ -192,7 +201,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10max_bed.stl
|
||||
bed_texture = cr10max.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10]
|
||||
name = Creality CR-10
|
||||
@ -201,7 +210,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10_bed.stl
|
||||
bed_texture = cr10.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10V2]
|
||||
name = Creality CR-10 V2
|
||||
@ -210,7 +219,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10v2_bed.stl
|
||||
bed_texture = cr10.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10V3]
|
||||
name = Creality CR-10 V3
|
||||
@ -219,7 +228,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10v2_bed.stl
|
||||
bed_texture = cr10.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10S]
|
||||
name = Creality CR-10 S
|
||||
@ -228,7 +237,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10_bed.stl
|
||||
bed_texture = cr10.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10SPRO]
|
||||
name = Creality CR-10 S Pro
|
||||
@ -237,7 +246,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10v2_bed.stl
|
||||
bed_texture = cr10spro.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10SPROV2]
|
||||
name = Creality CR-10 S Pro V2
|
||||
@ -246,7 +255,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10v2_bed.stl
|
||||
bed_texture = cr10.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10S4]
|
||||
name = Creality CR-10 S4
|
||||
@ -255,7 +264,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10s4_bed.stl
|
||||
bed_texture = cr10s4.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR10S5]
|
||||
name = Creality CR-10 S5
|
||||
@ -264,7 +273,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr10s5_bed.stl
|
||||
bed_texture = cr10s5.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR20]
|
||||
name = Creality CR-20
|
||||
@ -273,7 +282,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = ender3_bed.stl
|
||||
bed_texture = cr20.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR20PRO]
|
||||
name = Creality CR-20 Pro
|
||||
@ -282,7 +291,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = ender3_bed.stl
|
||||
bed_texture = cr20.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR200B]
|
||||
name = Creality CR-200B
|
||||
@ -291,7 +300,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr200b_bed.stl
|
||||
bed_texture = cr200b.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:CR8]
|
||||
name = Creality CR-8
|
||||
@ -300,7 +309,7 @@ technology = FFF
|
||||
family = CR
|
||||
bed_model = cr8_bed.stl
|
||||
bed_texture = cr8.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
#[printer_model:CRX]
|
||||
#name = Creality CR-X
|
||||
@ -309,7 +318,7 @@ default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @
|
||||
#family = CR-X
|
||||
#bed_model = cr10v2_bed.stl
|
||||
#bed_texture = cr10spro.svg
|
||||
#default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
#default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
#[printer_model:CRXPRO]
|
||||
#name = Creality CR-X Pro
|
||||
@ -318,7 +327,7 @@ default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @
|
||||
#family = CR-X
|
||||
#bed_model = cr10v2_bed.stl
|
||||
#bed_texture = cr10spro.svg
|
||||
#default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
#default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
[printer_model:SERMOOND1]
|
||||
name = Creality Sermoon-D1
|
||||
@ -327,7 +336,7 @@ technology = FFF
|
||||
family = SERMOON
|
||||
bed_model = sermoond1_bed.stl
|
||||
bed_texture = sermoond1.svg
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY
|
||||
default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY
|
||||
|
||||
# All presets starting with asterisk, for example *common*, are intermediate and they will
|
||||
# not make it into the user interface.
|
||||
@ -842,6 +851,17 @@ filament_cost = 27.44
|
||||
filament_density = 1.29
|
||||
filament_colour = #C7F935
|
||||
|
||||
[filament:Verbatim PLA @CREALITY]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Verbatim
|
||||
temperature = 205
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 210
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 22.99
|
||||
filament_density = 1.24
|
||||
filament_colour = #001ca8
|
||||
|
||||
# Common printer preset
|
||||
[printer:*common*]
|
||||
printer_technology = FFF
|
||||
@ -970,10 +990,7 @@ renamed_from = "Creality ENDER-3 BLTouch"
|
||||
printer_model = ENDER3BLTOUCH
|
||||
|
||||
[printer:Creality Ender-3 Pro]
|
||||
inherits = *common*; *pauseprint*
|
||||
renamed_from = "Creality Ender-3 Pro"
|
||||
bed_shape = 5x0,215x0,215x220,5x220
|
||||
max_print_height = 250
|
||||
inherits = Creality Ender-3; *pauseprint*
|
||||
printer_model = ENDER3PRO
|
||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_ENDER3PRO\nPRINTER_HAS_BOWDEN
|
||||
|
||||
@ -992,6 +1009,13 @@ max_print_height = 270
|
||||
printer_model = ENDER3S1
|
||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_ENDER3S1
|
||||
|
||||
[printer:Creality Ender-3 S1 Pro]
|
||||
inherits = *common*; *pauseprint*; *spriteextruder*
|
||||
bed_shape = 5x0,215x0,215x220,5x220
|
||||
max_print_height = 270
|
||||
printer_model = ENDER3S1PRO
|
||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_ENDER3S1PRO
|
||||
|
||||
[printer:Creality Ender-3 Max]
|
||||
inherits = *common*; *pauseprint*
|
||||
retract_length = 6
|
||||
|
BIN
resources/profiles/Creality/ENDER3S1PRO_thumbnail.png
Normal file
After Width: | Height: | Size: 43 KiB |
@ -1,4 +1,6 @@
|
||||
min_slic3r_version = 2.3.1-beta
|
||||
min_slic3r_version = 2.5.0-alpha0
|
||||
0.0.4 Improve Proton X profiles, Add Proton XE-750 printer
|
||||
min_slic3r_version = 2.4.1
|
||||
0.0.3 Set default filament profile.
|
||||
0.0.2 Improved start gcode, changed filename format
|
||||
0.0.1 Initial version
|
||||
|
@ -3,7 +3,7 @@
|
||||
[vendor]
|
||||
# Vendor name will be shown by the Config Wizard.
|
||||
name = INAT
|
||||
config_version = 0.0.3
|
||||
config_version = 0.0.4
|
||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/INAT/
|
||||
|
||||
###
|
||||
@ -24,9 +24,16 @@ technology = FFF
|
||||
family = Proton
|
||||
default_materials = PLA @PROTON_X
|
||||
|
||||
[printer_model:PROTON_XE750]
|
||||
name = INAT Proton XE-750
|
||||
variants = 0.4
|
||||
technology = FFF
|
||||
family = Proton
|
||||
default_materials = PLA @PROTON_XE750
|
||||
|
||||
|
||||
###
|
||||
### QUALITY DEFINITIONS
|
||||
### COMMON QUALITY DEFINITIONS
|
||||
###
|
||||
|
||||
[print:*common*]
|
||||
@ -35,14 +42,15 @@ layer_height = 0.2
|
||||
first_layer_height = 0.2
|
||||
perimeters = 3
|
||||
spiral_vase = 0
|
||||
top_solid_layers = 4
|
||||
top_solid_layers = 5
|
||||
bottom_solid_layers = 3
|
||||
top_solid_min_thickness = 0.8
|
||||
top_solid_min_thickness = 1
|
||||
bottom_solid_min_thickness = 0.6
|
||||
extra_perimeters = 1
|
||||
ensure_vertical_shell_thickness = 1
|
||||
avoid_crossing_perimeters = 0
|
||||
thin_walls = 0
|
||||
thick_bridges = 0
|
||||
overhangs = 1
|
||||
seam_position = aligned
|
||||
external_perimeters_first = 0
|
||||
@ -76,7 +84,9 @@ support_material_auto = 1
|
||||
support_material_threshold = 0
|
||||
support_material_enforce_layers = 0
|
||||
raft_layers = 0
|
||||
support_material_contact_distance = 0.2
|
||||
support_material_style = grid
|
||||
support_material_contact_distance = 0.25
|
||||
support_material_bottom_contact_distance = 0.3
|
||||
support_material_pattern = rectilinear
|
||||
support_material_with_sheath = 0
|
||||
support_material_spacing = 5
|
||||
@ -92,8 +102,8 @@ perimeter_speed = 60
|
||||
small_perimeter_speed = 75%
|
||||
external_perimeter_speed = 50%
|
||||
infill_speed = 80
|
||||
solid_infill_speed = 100%
|
||||
top_solid_infill_speed = 30
|
||||
solid_infill_speed = 80%
|
||||
top_solid_infill_speed = 20
|
||||
support_material_speed = 80
|
||||
support_material_interface_speed = 100%
|
||||
bridge_speed = 60
|
||||
@ -126,7 +136,7 @@ infill_overlap = 25%
|
||||
bridge_flow_ratio = 1
|
||||
slice_closing_radius = 0.049
|
||||
resolution = 0
|
||||
xy_size_compensation = 0
|
||||
xy_size_compensation = -0.05
|
||||
elefant_foot_compensation = 0.3
|
||||
clip_multipart_objects = 0
|
||||
#output
|
||||
@ -138,47 +148,50 @@ gcode_label_objects = 0
|
||||
output_filename_format = {input_filename_base}_{filament_type[0]}.gcode
|
||||
|
||||
|
||||
[print:0.2mm Standard @PROTON_X]
|
||||
[print:*common 0.2mm Standard @INAT*]
|
||||
inherits = *common*
|
||||
|
||||
[print:0.2mm Strong @PROTON_X]
|
||||
[print:*common 0.2mm Strong @INAT*]
|
||||
inherits = *common*
|
||||
fill_density = 50%
|
||||
perimeters = 6
|
||||
|
||||
[print:0.2mm Advanced Material @PROTON_X]
|
||||
[print:*common 0.2mm Advanced Material @INAT*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 5
|
||||
top_solid_layers = 6
|
||||
skirts = 0
|
||||
brim_width = 30
|
||||
brim_width = 20
|
||||
infill_speed = 60
|
||||
support_material_speed = 60
|
||||
travel_speed = 100
|
||||
first_layer_speed = 20
|
||||
elefant_foot_compensation = 0
|
||||
|
||||
[print:0.12mm Fine @PROTON_X]
|
||||
[print:*common 0.12mm Fine @INAT*]
|
||||
inherits = *common*
|
||||
layer_height = 0.12
|
||||
bottom_solid_layers = 7
|
||||
top_solid_layers = 7
|
||||
infill_every_layers = 2
|
||||
perimeter_speed = 50
|
||||
infill_speed = 50
|
||||
|
||||
[print:0.32mm Draft @PROTON_X]
|
||||
[print:*common 0.32mm Draft @INAT*]
|
||||
inherits = *common*
|
||||
layer_height = 0.32
|
||||
perimeter_speed = 80
|
||||
external_perimeter_speed = 75%
|
||||
infill_speed = 100
|
||||
top_solid_infill_speed = 60
|
||||
fill_density = 15%
|
||||
support_material_style = snug
|
||||
|
||||
###
|
||||
### PRINTER DEFINITIONS
|
||||
### COMMON PRINTER DEFINITIONS
|
||||
###
|
||||
|
||||
[printer:*common*]
|
||||
[printer:*proton_x_common*]
|
||||
printer_vendor = INAT s.r.o.
|
||||
default_filament_profile = "PLA @PROTON_X"
|
||||
#general
|
||||
@ -206,14 +219,14 @@ machine_max_feedrate_z = 10,10
|
||||
machine_max_feedrate_e = 100,100
|
||||
machine_max_acceleration_x = 500,500
|
||||
machine_max_acceleration_y = 500,500
|
||||
machine_max_acceleration_z = 100,100
|
||||
machine_max_acceleration_e = 2000,2000
|
||||
machine_max_acceleration_z = 200,200
|
||||
machine_max_acceleration_e = 8000,8000
|
||||
machine_max_acceleration_extruding = 1000,1000
|
||||
machine_max_acceleration_retracting = 1500,1500
|
||||
machine_max_acceleration_retracting = 8000,8000
|
||||
machine_max_jerk_x = 8,8
|
||||
machine_max_jerk_y = 8,8
|
||||
machine_max_jerk_z = 1,1
|
||||
machine_max_jerk_e = 2.5,2.5
|
||||
machine_max_jerk_z = 3,3
|
||||
machine_max_jerk_e = 10,10
|
||||
machine_min_extruding_rate = 5
|
||||
#extruder 1
|
||||
nozzle_diameter = 0.4
|
||||
@ -233,24 +246,65 @@ wipe = 1
|
||||
retract_before_wipe = 100%
|
||||
|
||||
|
||||
[printer:Proton X Rail]
|
||||
inherits = *common*
|
||||
printer_model = PROTON_X_RAIL
|
||||
printer_variant = 0.4
|
||||
default_print_profile = 0.2mm Standard @PROTON_X
|
||||
gcode_flavor = marlin
|
||||
machine_max_acceleration_y = 800,800
|
||||
|
||||
[printer:Proton X Rod]
|
||||
inherits = *common*
|
||||
printer_model = PROTON_X_ROD
|
||||
printer_variant = 0.4
|
||||
default_print_profile = 0.2mm Standard @PROTON_X
|
||||
[printer:*proton_xe750_common*]
|
||||
printer_vendor = INAT s.r.o.
|
||||
default_filament_profile = "PLA @PROTON_XE750"
|
||||
#general
|
||||
printer_technology = FFF
|
||||
bed_shape = 0x0,600x0,600x500,0x500
|
||||
max_print_height = 750
|
||||
z_offset = 0
|
||||
extruders_count = 2
|
||||
gcode_flavor = marlin
|
||||
silent_mode = 0
|
||||
remaining_times = 1
|
||||
use_relative_e_distances = 0
|
||||
use_firmware_retraction = 0
|
||||
use_volumetric_e = 0
|
||||
variable_layer_height = 1
|
||||
#gcodes
|
||||
start_gcode = G28 ;Home\nG0 Z10 F1000\nG29\nG0 X0 Y0 Z30 F6000\nM84 E\nM0\nG1 Z15.0 F6000 ;Move the platform down 15mm\n
|
||||
end_gcode = M400\nM104 S0\nM140 S0\nM107\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X R5\nG0 Y300 F2000\nM84\nG4 S180\nM81 S30\n
|
||||
color_change_gcode = M600
|
||||
#limits
|
||||
machine_limits_usage = emit_to_gcode
|
||||
machine_max_feedrate_x = 200,200
|
||||
machine_max_feedrate_y = 200,200
|
||||
machine_max_feedrate_z = 10,10
|
||||
machine_max_feedrate_e = 100,100
|
||||
machine_max_acceleration_x = 1500,1500
|
||||
machine_max_acceleration_y = 1500,1500
|
||||
machine_max_acceleration_z = 500,500
|
||||
machine_max_acceleration_e = 20000,20000
|
||||
machine_max_acceleration_extruding = 2000,2000
|
||||
machine_max_acceleration_retracting = 8000,8000
|
||||
machine_max_jerk_x = 12,12
|
||||
machine_max_jerk_y = 12,12
|
||||
machine_max_jerk_z = 3,3
|
||||
machine_max_jerk_e = 20,20
|
||||
machine_min_extruding_rate = 5
|
||||
#extruder 1
|
||||
nozzle_diameter = 0.4,0.4
|
||||
min_layer_height = 0.05,0.05
|
||||
max_layer_height = 0.33,0.33
|
||||
extruder_offset = 0x0,0x0
|
||||
retract_length = 1.5,1.5
|
||||
retract_lift = 0.6,0.6
|
||||
retract_lift_above = 0,0
|
||||
retract_lift_below = 0,0
|
||||
retract_speed = 45,45
|
||||
deretract_speed = 0,0
|
||||
retract_restart_extra = 0,0
|
||||
retract_before_travel = 2,2
|
||||
retract_layer_change = 0,0
|
||||
wipe = 1,1
|
||||
retract_before_wipe = 100%,100%
|
||||
retract_length_toolchange = 37,37
|
||||
extruder_colour = #33CC33;#3399FF
|
||||
|
||||
|
||||
###
|
||||
### MATERIAL DEFINITIONS
|
||||
### COMMON MATERIAL DEFINITIONS
|
||||
###
|
||||
|
||||
[filament:*common*]
|
||||
@ -272,7 +326,7 @@ min_print_speed = 10
|
||||
filament_soluble = 0
|
||||
|
||||
|
||||
[filament:PLA @PROTON_X]
|
||||
[filament:*common PLA @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 210
|
||||
bed_temperature = 60
|
||||
@ -281,11 +335,12 @@ first_layer_bed_temperature = 60
|
||||
filament_type = PLA
|
||||
filament_cost = 20
|
||||
filament_density = 1.25
|
||||
fan_always_on = 1
|
||||
min_fan_speed = 50
|
||||
max_fan_speed = 100
|
||||
|
||||
|
||||
[filament:PETG @PROTON_X]
|
||||
[filament:*common PETG @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 240
|
||||
bed_temperature = 80
|
||||
@ -294,10 +349,11 @@ first_layer_bed_temperature = 80
|
||||
filament_type = PETG
|
||||
filament_cost = 25
|
||||
filament_density = 1.27
|
||||
min_fan_speed = 0
|
||||
fan_always_on = 1
|
||||
min_fan_speed = 25
|
||||
max_fan_speed = 50
|
||||
|
||||
[filament:ABS @PROTON_X]
|
||||
[filament:*common ABS @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 235
|
||||
bed_temperature = 100
|
||||
@ -309,7 +365,7 @@ filament_density = 1.01
|
||||
cooling = 0
|
||||
bridge_fan_speed = 0
|
||||
|
||||
[filament:ASA @PROTON_X]
|
||||
[filament:*common ASA @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 240
|
||||
bed_temperature = 110
|
||||
@ -320,7 +376,7 @@ filament_cost = 22
|
||||
filament_density = 1.07
|
||||
cooling = 0
|
||||
|
||||
[filament:TPE @PROTON_X]
|
||||
[filament:*common TPE @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 220
|
||||
bed_temperature = 40
|
||||
@ -334,7 +390,7 @@ max_fan_speed = 50
|
||||
filament_retract_length = 0.8
|
||||
filament_retract_speed = 25
|
||||
|
||||
[filament:HIPS @PROTON_X]
|
||||
[filament:*common HIPS @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 245
|
||||
bed_temperature = 100
|
||||
@ -347,7 +403,7 @@ min_fan_speed = 0
|
||||
max_fan_speed = 50
|
||||
filament_soluble = 1
|
||||
|
||||
[filament:Nylon @PROTON_X]
|
||||
[filament:*common Nylon @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 235
|
||||
bed_temperature = 130
|
||||
@ -359,19 +415,19 @@ filament_density = 1.01
|
||||
cooling = 0
|
||||
bridge_fan_speed = 0
|
||||
|
||||
[filament:PC @PROTON_X]
|
||||
[filament:*common PC @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 270
|
||||
bed_temperature = 130
|
||||
bed_temperature = 115
|
||||
first_layer_temperature = 270
|
||||
first_layer_bed_temperature = 130
|
||||
first_layer_bed_temperature = 115
|
||||
filament_type = PC
|
||||
filament_cost = 65
|
||||
filament_density = 1.19
|
||||
cooling = 0
|
||||
bridge_fan_speed = 0
|
||||
|
||||
[filament:CPE @PROTON_X]
|
||||
[filament:*common CPE @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 280
|
||||
bed_temperature = 90
|
||||
@ -383,7 +439,7 @@ filament_density = 1.27
|
||||
cooling = 0
|
||||
bridge_fan_speed = 0
|
||||
|
||||
[filament:PEEK @PROTON_X]
|
||||
[filament:*common PEEK @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 440
|
||||
bed_temperature = 150
|
||||
@ -395,7 +451,7 @@ filament_density = 1.3
|
||||
cooling = 0
|
||||
bridge_fan_speed = 0
|
||||
|
||||
[filament:PEI @PROTON_X]
|
||||
[filament:*common PEI @INAT*]
|
||||
inherits = *common*
|
||||
temperature = 400
|
||||
bed_temperature = 150
|
||||
@ -407,7 +463,7 @@ filament_density = 1.27
|
||||
cooling = 0
|
||||
bridge_fan_speed = 0
|
||||
|
||||
[filament:Polymaker PolyMide CoPA @PROTON_X]
|
||||
[filament:*common Polymaker PolyMide CoPA @INAT*]
|
||||
inherits = *common*
|
||||
filament_vendor = Polymaker
|
||||
temperature = 265
|
||||
@ -419,7 +475,7 @@ filament_cost = 93
|
||||
filament_density = 1.12
|
||||
cooling = 0
|
||||
|
||||
[filament:Polymaker PolyMide PA6-CF @PROTON_X]
|
||||
[filament:*common Polymaker PolyMide PA6-CF @INAT*]
|
||||
inherits = *common*
|
||||
filament_vendor = Polymaker
|
||||
temperature = 300
|
||||
@ -431,7 +487,7 @@ filament_cost = 95
|
||||
filament_density = 1.17
|
||||
cooling = 0
|
||||
|
||||
[filament:Polymaker PolyMide PA6-GF @PROTON_X]
|
||||
[filament:*common Polymaker PolyMide PA6-GF @INAT*]
|
||||
inherits = *common*
|
||||
filament_vendor = Polymaker
|
||||
temperature = 300
|
||||
@ -443,20 +499,21 @@ filament_cost = 95
|
||||
filament_density = 1.2
|
||||
cooling = 0
|
||||
|
||||
[filament:Devil Design PETG @PROTON_X]
|
||||
[filament:*common Devil Design PETG @INAT*]
|
||||
inherits = *common*
|
||||
filament_vendor = Devil Design
|
||||
temperature = 250
|
||||
temperature = 245
|
||||
bed_temperature = 80
|
||||
first_layer_temperature = 250
|
||||
first_layer_temperature = 245
|
||||
first_layer_bed_temperature = 80
|
||||
filament_type = PETG
|
||||
filament_cost = 22
|
||||
filament_density = 1.23
|
||||
min_fan_speed = 0
|
||||
fan_always_on = 1
|
||||
min_fan_speed = 25
|
||||
max_fan_speed = 50
|
||||
|
||||
[filament:Filament PM PETG FRJet @PROTON_X]
|
||||
[filament:*common Filament PM PETG FRJet @INAT*]
|
||||
inherits = *common*
|
||||
filament_vendor = Filament PM
|
||||
temperature = 250
|
||||
@ -467,3 +524,207 @@ filament_type = PETG
|
||||
filament_cost = 45.5
|
||||
filament_density = 1.27
|
||||
cooling = 0
|
||||
|
||||
|
||||
######
|
||||
###### PROTON X PRINTERS
|
||||
######
|
||||
|
||||
[printer:Proton X Rail]
|
||||
inherits = *proton_x_common*
|
||||
printer_model = PROTON_X_RAIL
|
||||
printer_variant = 0.4
|
||||
default_print_profile = 0.2mm Standard @PROTON_X
|
||||
gcode_flavor = marlin
|
||||
machine_max_acceleration_x = 800,800
|
||||
machine_max_acceleration_y = 800,800
|
||||
machine_max_jerk_x = 10,10
|
||||
machine_max_jerk_y = 10,10
|
||||
|
||||
[printer:Proton X Rod]
|
||||
inherits = *proton_x_common*
|
||||
printer_model = PROTON_X_ROD
|
||||
printer_variant = 0.4
|
||||
default_print_profile = 0.2mm Standard @PROTON_X
|
||||
gcode_flavor = marlin
|
||||
|
||||
[print:0.2mm Standard @PROTON_X]
|
||||
inherits = *common 0.2mm Standard @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[print:0.2mm Strong @PROTON_X]
|
||||
inherits = *common 0.2mm Strong @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[print:0.2mm Advanced Material @PROTON_X]
|
||||
inherits = *common 0.2mm Advanced Material @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[print:0.12mm Fine @PROTON_X]
|
||||
inherits = *common 0.12mm Fine @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[print:0.32mm Draft @PROTON_X]
|
||||
inherits = *common 0.32mm Draft @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
|
||||
|
||||
[filament:PLA @PROTON_X]
|
||||
inherits =*common PLA @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:PETG @PROTON_X]
|
||||
inherits =*common PETG @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:ABS @PROTON_X]
|
||||
inherits =*common ABS @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:ASA @PROTON_X]
|
||||
inherits =*common ASA @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:TPE @PROTON_X]
|
||||
inherits =*common TPE @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:HIPS @PROTON_X]
|
||||
inherits =*common HIPS @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:Nylon @PROTON_X]
|
||||
inherits =*common Nylon @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:PC @PROTON_X]
|
||||
inherits =*common PC @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:CPE @PROTON_X]
|
||||
inherits =*common CPE @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:PEEK @PROTON_X]
|
||||
inherits =*common PEEK @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:PEI @PROTON_X]
|
||||
inherits =*common PEI @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:Polymaker PolyMide CoPA @PROTON_X]
|
||||
inherits =*common Polymaker PolyMide CoPA @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:Polymaker PolyMide PA6-CF @PROTON_X]
|
||||
inherits =*common Polymaker PolyMide PA6-CF @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:Polymaker PolyMide PA6-GF @PROTON_X]
|
||||
inherits =*common Polymaker PolyMide PA6-GF @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:Devil Design PETG @PROTON_X]
|
||||
inherits =*common Devil Design PETG @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
[filament:Filament PM PETG FRJet @PROTON_X]
|
||||
inherits =*common Filament PM PETG FRJet @INAT*
|
||||
compatible_printers = "Proton X Rail";"Proton X Rod"
|
||||
|
||||
|
||||
|
||||
|
||||
######### #########
|
||||
######### Proton XE 750 #########
|
||||
######### #########
|
||||
|
||||
[printer:Proton XE-750]
|
||||
inherits = *proton_xe750_common*
|
||||
printer_model = PROTON_XE750
|
||||
printer_variant = 0.4
|
||||
default_print_profile = 0.2mm Standard @PROTON_XE750
|
||||
gcode_flavor = marlin
|
||||
|
||||
|
||||
[print:0.2mm Standard @PROTON_XE750]
|
||||
inherits = *common 0.2mm Standard @INAT*
|
||||
compatible_printers = "Proton XE-750"
|
||||
|
||||
[print:0.2mm Strong @PROTON_XE750]
|
||||
inherits = *common 0.2mm Strong @INAT*
|
||||
compatible_printers = "Proton XE-750"
|
||||
|
||||
[print:0.2mm Advanced Material @PROTON_XE750]
|
||||
inherits = *common 0.2mm Advanced Material @INAT*
|
||||
compatible_printers = "Proton XE-750"
|
||||
|
||||
[print:0.12mm Fine @PROTON_XE750]
|
||||
inherits = *common 0.12mm Fine @INAT*
|
||||
compatible_printers = "Proton XE-750"
|
||||
|
||||
[print:0.32mm Draft @PROTON_XE750]
|
||||
inherits = *common 0.32mm Draft @INAT*
|
||||
compatible_printers = "Proton XE-750"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[filament:*start_end_gcode @PROTON_XE750*]
|
||||
start_filament_gcode = "; Filament start gcode BEGIN\nM104 S[temperature[current_extruder]]\nG4 S20\n; Filament start gcode END\n"
|
||||
end_filament_gcode = "; Filament end gcode BEGIN\nG0 X-5 Y250 F10000\nM104 S{temperature[current_extruder] - 50}\n; Filament end gcode END\n"
|
||||
compatible_printers = "Proton XE-750"
|
||||
|
||||
|
||||
|
||||
[filament:PLA @PROTON_XE750]
|
||||
inherits =*common PLA @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:PETG @PROTON_XE750]
|
||||
inherits =*common PETG @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:ABS @PROTON_XE750]
|
||||
inherits =*common ABS @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:ASA @PROTON_XE750]
|
||||
inherits =*common ASA @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:TPE @PROTON_XE750]
|
||||
inherits =*common TPE @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:HIPS @PROTON_XE750]
|
||||
inherits =*common HIPS @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:Nylon @PROTON_XE750]
|
||||
inherits =*common Nylon @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:PC @PROTON_XE750]
|
||||
inherits =*common PC @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:CPE @PROTON_XE750]
|
||||
inherits =*common CPE @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:PEEK @PROTON_XE750]
|
||||
inherits =*common PEEK @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:PEI @PROTON_XE750]
|
||||
inherits =*common PEI @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:Polymaker PolyMide CoPA @PROTON_XE750]
|
||||
inherits =*common Polymaker PolyMide CoPA @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:Polymaker PolyMide PA6-CF @PROTON_XE750]
|
||||
inherits =*common Polymaker PolyMide PA6-CF @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:Polymaker PolyMide PA6-GF @PROTON_XE750]
|
||||
inherits =*common Polymaker PolyMide PA6-GF @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:Devil Design PETG @PROTON_XE750]
|
||||
inherits =*common Devil Design PETG @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
||||
[filament:Filament PM PETG FRJet @PROTON_XE750]
|
||||
inherits =*common Filament PM PETG FRJet @INAT*; *start_end_gcode @PROTON_XE750*
|
||||
|
BIN
resources/profiles/INAT/PROTON_XE750_thumbnail.png
Normal file
After Width: | Height: | Size: 36 KiB |
2
resources/profiles/Infinity3D.idx
Normal file
@ -0,0 +1,2 @@
|
||||
min_slic3r_version = 2.5.0-alpha0
|
||||
1.0.0 Initial Infinity3D bundle
|
812
resources/profiles/Infinity3D.ini
Normal file
@ -0,0 +1,812 @@
|
||||
# Infinity3D profiles
|
||||
|
||||
[vendor]
|
||||
# Vendor name will be shown by the Config Wizard.
|
||||
name = Infinity3D
|
||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||
# This means, the server may force the Slic3r configuration to be downgraded.
|
||||
config_version = 1.0.0
|
||||
# Where to get the updates from?
|
||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Infinity3D/
|
||||
# The printer models will be shown by the Configuration Wizard in this order,
|
||||
|
||||
[printer_model:DEV-200]
|
||||
name = Infinity3D DEV-200
|
||||
variants = 0.4
|
||||
technology = FFF
|
||||
bed_model = DEV_200_bed.stl
|
||||
bed_texture = DEV_200_texture.svg
|
||||
default_materials = Generic PLA @Infinity3D; Generic PETG @Infinity3D
|
||||
|
||||
[printer_model:DEV-350]
|
||||
name = Infinity3D DEV-350
|
||||
variants = 0.4
|
||||
technology = FFF
|
||||
bed_model = DEV_350_bed.stl
|
||||
bed_texture = DEV_350_texture.svg
|
||||
default_materials = Generic PLA @Infinity3D; Generic PETG @Infinity3D
|
||||
|
||||
[print:*common*]
|
||||
avoid_crossing_perimeters = 1
|
||||
avoid_crossing_perimeters_max_detour = 0
|
||||
bottom_fill_pattern = monotonic
|
||||
bottom_solid_layers = 4
|
||||
bottom_solid_min_thickness = 0
|
||||
bridge_acceleration = 0
|
||||
bridge_angle = 0
|
||||
bridge_flow_ratio = 1
|
||||
bridge_speed = 60
|
||||
brim_separation = 0
|
||||
brim_type = outer_only
|
||||
brim_width = 0
|
||||
clip_multipart_objects = 1
|
||||
complete_objects = 0
|
||||
default_acceleration = 0
|
||||
dont_support_bridges = 1
|
||||
draft_shield = disabled
|
||||
elefant_foot_compensation = 0.1
|
||||
ensure_vertical_shell_thickness = 1
|
||||
external_perimeter_extrusion_width = 0.45
|
||||
external_perimeter_speed = 80%
|
||||
external_perimeters_first = 0
|
||||
extra_perimeters = 0
|
||||
extruder_clearance_height = 25
|
||||
extruder_clearance_radius = 75
|
||||
extrusion_width = 0.45
|
||||
fill_angle = 45
|
||||
fill_density = 20%
|
||||
fill_pattern = gyroid
|
||||
first_layer_acceleration = 0
|
||||
first_layer_acceleration_over_raft = 0
|
||||
first_layer_extrusion_width = 0.45
|
||||
first_layer_height = 0.2
|
||||
first_layer_speed = 45
|
||||
first_layer_speed_over_raft = 45
|
||||
fuzzy_skin = none
|
||||
fuzzy_skin_point_dist = 0.8
|
||||
fuzzy_skin_thickness = 0.3
|
||||
gap_fill_enabled = 1
|
||||
gap_fill_speed = 20
|
||||
gcode_comments = 0
|
||||
gcode_label_objects = 0
|
||||
gcode_resolution = 0.0125
|
||||
gcode_substitutions =
|
||||
infill_acceleration = 0
|
||||
infill_anchor = 600%
|
||||
infill_anchor_max = 50
|
||||
infill_every_layers = 1
|
||||
infill_extruder = 1
|
||||
infill_extrusion_width = 0.45
|
||||
infill_first = 0
|
||||
infill_only_where_needed = 0
|
||||
infill_overlap = 25%
|
||||
infill_speed = 60
|
||||
inherits =
|
||||
interface_shells = 0
|
||||
ironing = 0
|
||||
ironing_flowrate = 15%
|
||||
ironing_spacing = 0.25
|
||||
ironing_speed = 30
|
||||
ironing_type = top
|
||||
layer_height = 0.2
|
||||
max_print_speed = 100
|
||||
max_volumetric_speed = 0
|
||||
min_skirt_length = 4
|
||||
mmu_segmented_region_max_width = 0
|
||||
notes =
|
||||
only_retract_when_crossing_perimeters = 0
|
||||
ooze_prevention = 0
|
||||
output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode
|
||||
overhangs = 0
|
||||
perimeter_acceleration = 0
|
||||
perimeter_extruder = 1
|
||||
perimeter_extrusion_width = 0.45
|
||||
perimeter_speed = 60
|
||||
perimeters = 2
|
||||
post_process =
|
||||
print_settings_id =
|
||||
raft_contact_distance = 0.1
|
||||
raft_expansion = 1.5
|
||||
raft_first_layer_density = 90%
|
||||
raft_first_layer_expansion = 3
|
||||
raft_layers = 0
|
||||
resolution = 0
|
||||
seam_position = nearest
|
||||
single_extruder_multi_material_priming = 1
|
||||
skirt_distance = 5
|
||||
skirt_height = 1
|
||||
skirts = 3
|
||||
slice_closing_radius = 0.049
|
||||
slicing_mode = regular
|
||||
small_perimeter_speed = 70%
|
||||
solid_infill_below_area = 0
|
||||
solid_infill_every_layers = 0
|
||||
solid_infill_extruder = 1
|
||||
solid_infill_extrusion_width= 0.45
|
||||
solid_infill_speed = 80%
|
||||
spiral_vase = 0
|
||||
standby_temperature_delta = -5
|
||||
support_material = 0
|
||||
support_material_angle = 0
|
||||
support_material_auto = 1
|
||||
support_material_bottom_contact_distance = 0
|
||||
support_material_bottom_interface_layers = -1
|
||||
support_material_buildplate_only = 0
|
||||
support_material_closing_radius = 2
|
||||
support_material_contact_distance = 0.15
|
||||
support_material_enforce_layers = 0
|
||||
support_material_extruder = 0
|
||||
support_material_extrusion_width = 0.38
|
||||
support_material_interface_contact_loops = 0
|
||||
support_material_interface_extruder = 0
|
||||
support_material_interface_layers = 2
|
||||
support_material_interface_pattern = rectilinear
|
||||
support_material_interface_spacing = 0.2
|
||||
support_material_interface_speed = 100%
|
||||
support_material_pattern = rectilinear
|
||||
support_material_spacing = 2
|
||||
support_material_speed = 60
|
||||
support_material_style = grid
|
||||
support_material_synchronize_layers = 0
|
||||
support_material_threshold = 45
|
||||
support_material_with_sheath = 0
|
||||
support_material_xy_spacing = 60%
|
||||
thick_bridges = 1
|
||||
thin_walls = 0
|
||||
threads = 8
|
||||
top_fill_pattern = monotonic
|
||||
top_infill_extrusion_width = 0.45
|
||||
top_solid_infill_speed = 60%
|
||||
top_solid_layers = 4
|
||||
top_solid_min_thickness = 0
|
||||
travel_speed = 70
|
||||
travel_speed_z = 0
|
||||
wipe_tower = 0
|
||||
wipe_tower_bridging = 10
|
||||
wipe_tower_brim_width = 2
|
||||
wipe_tower_no_sparse_layers = 0
|
||||
wipe_tower_rotation_angle = 0
|
||||
wipe_tower_width = 60
|
||||
wipe_tower_x = 170
|
||||
wipe_tower_y = 140
|
||||
xy_size_compensation = 0
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4
|
||||
|
||||
[print:0.06mm SUPERFINE @Infinity3D_DEV_200]
|
||||
inherits = *common*
|
||||
layer_height = 0.06
|
||||
bottom_solid_layers = 12
|
||||
top_solid_layers = 12
|
||||
top_solid_min_thickness = 0.72
|
||||
bottom_solid_min_thickness = 0.72
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
first_layer_extrusion_width = 0.45
|
||||
perimeter_extrusion_width = 0.4
|
||||
external_perimeter_extrusion_width = 0.4
|
||||
infill_extrusion_width = 0.4
|
||||
solid_infill_extrusion_width = 0.4
|
||||
top_infill_extrusion_width = 0.4
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-200"
|
||||
|
||||
[print:0.10mm Fine @Infinity3D_DEV_200]
|
||||
inherits = *common*
|
||||
layer_height = 0.10
|
||||
top_solid_layers = 8
|
||||
bottom_solid_layers = 8
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
first_layer_extrusion_width = 0.45
|
||||
perimeter_extrusion_width = 0.4
|
||||
external_perimeter_extrusion_width = 0.4
|
||||
infill_extrusion_width = 0.4
|
||||
solid_infill_extrusion_width = 0.4
|
||||
top_infill_extrusion_width = 0.4
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-200"
|
||||
|
||||
[print:0.20mm GOOD @Infinity3D_DEV_200]
|
||||
inherits = *common*
|
||||
layer_height = 0.20
|
||||
top_solid_layers = 5
|
||||
bottom_solid_layers = 5
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
first_layer_extrusion_width = 0.45
|
||||
perimeter_extrusion_width = 0.4
|
||||
external_perimeter_extrusion_width = 0.4
|
||||
infill_extrusion_width = 0.4
|
||||
solid_infill_extrusion_width = 0.4
|
||||
top_infill_extrusion_width = 0.4
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-200"
|
||||
|
||||
[print:0.30mm RAPID @Infinity3D_DEV_200]
|
||||
inherits = *common*
|
||||
layer_height = 0.30
|
||||
top_solid_layers = 3
|
||||
bottom_solid_layers = 3
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-200"
|
||||
|
||||
[print:0.40mm FAST @Infinity3D_DEV_200]
|
||||
inherits = *common*
|
||||
layer_height = 0.40
|
||||
top_solid_layers = 3
|
||||
bottom_solid_layers = 3
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
support_material_extrusion_width = 0.45
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-200"
|
||||
|
||||
|
||||
[print:0.06mm SUPERFINE @Infinity3D_DEV_350]
|
||||
inherits = *common*
|
||||
layer_height = 0.06
|
||||
bottom_solid_layers = 12
|
||||
top_solid_layers = 12
|
||||
top_solid_min_thickness = 0.72
|
||||
bottom_solid_min_thickness = 0.72
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
first_layer_extrusion_width = 0.45
|
||||
perimeter_extrusion_width = 0.4
|
||||
external_perimeter_extrusion_width = 0.4
|
||||
infill_extrusion_width = 0.4
|
||||
solid_infill_extrusion_width = 0.4
|
||||
top_infill_extrusion_width = 0.4
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-350"
|
||||
|
||||
[print:0.10mm Fine @Infinity3D_DEV_350]
|
||||
inherits = *common*
|
||||
layer_height = 0.10
|
||||
top_solid_layers = 8
|
||||
bottom_solid_layers = 8
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
first_layer_extrusion_width = 0.45
|
||||
perimeter_extrusion_width = 0.4
|
||||
external_perimeter_extrusion_width = 0.4
|
||||
infill_extrusion_width = 0.4
|
||||
solid_infill_extrusion_width = 0.4
|
||||
top_infill_extrusion_width = 0.4
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-350"
|
||||
|
||||
[print:0.20mm GOOD @Infinity3D_DEV_350]
|
||||
inherits = *common*
|
||||
layer_height = 0.20
|
||||
top_solid_layers = 5
|
||||
bottom_solid_layers = 5
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
first_layer_extrusion_width = 0.45
|
||||
perimeter_extrusion_width = 0.4
|
||||
external_perimeter_extrusion_width = 0.4
|
||||
infill_extrusion_width = 0.4
|
||||
solid_infill_extrusion_width = 0.4
|
||||
top_infill_extrusion_width = 0.4
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-350"
|
||||
|
||||
[print:0.30mm RAPID @Infinity3D_DEV_350]
|
||||
inherits = *common*
|
||||
layer_height = 0.30
|
||||
top_solid_layers = 3
|
||||
bottom_solid_layers = 3
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-350"
|
||||
|
||||
[print:0.40mm FAST @Infinity3D_DEV_350]
|
||||
inherits = *common*
|
||||
layer_height = 0.40
|
||||
top_solid_layers = 3
|
||||
bottom_solid_layers = 3
|
||||
bridge_speed = 45
|
||||
infill_speed = 60
|
||||
perimeter_speed = 50
|
||||
support_material_speed = 50
|
||||
max_print_speed = 60
|
||||
skirt_distance = 10
|
||||
first_layer_speed = 80%
|
||||
support_material_extrusion_width = 0.45
|
||||
compatible_printers_condition = nozzle_diameter[0]==0.4 and printer_model=="DEV-350"
|
||||
|
||||
|
||||
[filament:*common*]
|
||||
bed_temperature = 60
|
||||
bridge_fan_speed = 100
|
||||
compatible_printers =
|
||||
compatible_printers_condition =
|
||||
compatible_prints =
|
||||
compatible_prints_condition =
|
||||
cooling = 1
|
||||
disable_fan_first_layers = 2
|
||||
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
|
||||
extrusion_multiplier = 1
|
||||
fan_always_on = 1
|
||||
fan_below_layer_time = 60
|
||||
filament_colour = #29B2B2
|
||||
filament_cooling_final_speed = 3.4
|
||||
filament_cooling_initial_speed = 2.2
|
||||
filament_cooling_moves = 4
|
||||
filament_cost = 0
|
||||
filament_density = 0
|
||||
filament_deretract_speed = nil
|
||||
filament_diameter = 1.75
|
||||
filament_load_time = 0
|
||||
filament_loading_speed = 28
|
||||
filament_loading_speed_start = 3
|
||||
filament_max_volumetric_speed = 0
|
||||
filament_minimal_purge_on_wipe_tower = 15
|
||||
filament_notes = ""
|
||||
filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||
filament_retract_before_travel = nil
|
||||
filament_retract_before_wipe = nil
|
||||
filament_retract_layer_change = nil
|
||||
filament_retract_length = nil
|
||||
filament_retract_lift = nil
|
||||
filament_retract_lift_above = nil
|
||||
filament_retract_lift_below = nil
|
||||
filament_retract_restart_extra = nil
|
||||
filament_retract_speed = nil
|
||||
filament_settings_id = ""
|
||||
filament_soluble = 0
|
||||
filament_spool_weight = 0
|
||||
filament_toolchange_delay = 0
|
||||
filament_type = PLA
|
||||
filament_unload_time = 0
|
||||
filament_unloading_speed = 90
|
||||
filament_unloading_speed_start = 100
|
||||
filament_wipe = nil
|
||||
first_layer_bed_temperature = 60
|
||||
first_layer_temperature = 210
|
||||
full_fan_speed_layer = 0
|
||||
inherits =
|
||||
max_fan_speed = 100
|
||||
min_fan_speed = 35
|
||||
min_print_speed = 10
|
||||
slowdown_below_layer_time = 5
|
||||
start_filament_gcode = "; Filament gcode\n"
|
||||
temperature = 210
|
||||
|
||||
[filament:*PLA*]
|
||||
inherits = *common*
|
||||
bed_temperature = 60
|
||||
fan_below_layer_time = 100
|
||||
filament_colour = #DDDDDD
|
||||
filament_max_volumetric_speed = 15
|
||||
filament_type = PLA
|
||||
filament_density = 1.24
|
||||
filament_cost = 20
|
||||
first_layer_bed_temperature = 60
|
||||
first_layer_temperature = 210
|
||||
fan_always_on = 1
|
||||
cooling = 1
|
||||
max_fan_speed = 100
|
||||
min_fan_speed = 100
|
||||
bridge_fan_speed = 100
|
||||
disable_fan_first_layers = 1
|
||||
temperature = 205
|
||||
|
||||
[filament:*PET*]
|
||||
inherits = *common*
|
||||
bed_temperature = 70
|
||||
cooling = 1
|
||||
disable_fan_first_layers = 3
|
||||
fan_below_layer_time = 20
|
||||
filament_colour = #DDDDDD
|
||||
filament_max_volumetric_speed = 8
|
||||
filament_type = PETG
|
||||
filament_density = 1.27
|
||||
filament_cost = 30
|
||||
first_layer_bed_temperature = 70
|
||||
first_layer_temperature = 240
|
||||
fan_always_on = 1
|
||||
max_fan_speed = 50
|
||||
min_fan_speed = 20
|
||||
bridge_fan_speed = 100
|
||||
temperature = 240
|
||||
|
||||
[filament:*ABS*]
|
||||
inherits = *common*
|
||||
bed_temperature = 100
|
||||
cooling = 0
|
||||
disable_fan_first_layers = 3
|
||||
fan_below_layer_time = 20
|
||||
filament_colour = #DDDDDD
|
||||
filament_max_volumetric_speed = 11
|
||||
filament_type = ABS
|
||||
filament_density = 1.04
|
||||
filament_cost = 20
|
||||
first_layer_bed_temperature = 100
|
||||
first_layer_temperature = 245
|
||||
fan_always_on = 0
|
||||
max_fan_speed = 0
|
||||
min_fan_speed = 0
|
||||
bridge_fan_speed = 30
|
||||
top_fan_speed = 0
|
||||
temperature = 245
|
||||
|
||||
[filament:Generic PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
renamed_from = "Generic PLA @Infinity3D"
|
||||
filament_vendor = Generic
|
||||
|
||||
[filament:Generic PETG @Infinity3D]
|
||||
inherits = *PET*
|
||||
renamed_from = "Generic PETG @Infinity3D"
|
||||
filament_vendor = Generic
|
||||
|
||||
[filament:Generic ABS @Infinity3D]
|
||||
inherits = *ABS*
|
||||
renamed_from = "Generic ABS @Infinity3D"
|
||||
first_layer_bed_temperature = 90
|
||||
bed_temperature = 90
|
||||
filament_vendor = Generic
|
||||
|
||||
[filament:Infinity3D PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
renamed_from = "Infinity3D PLA @Infinity3D"
|
||||
filament_vendor = Infinity3D
|
||||
temperature = 200
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 205
|
||||
first_layer_bed_temperature = 60
|
||||
filament_colour = #42BDD8
|
||||
|
||||
[filament:Infinity3D PETG @Infinity3D]
|
||||
inherits = *PET*
|
||||
renamed_from = "Infinity3D PETG @Infinity3D"
|
||||
filament_vendor = Infinity3D
|
||||
temperature = 240
|
||||
bed_temperature = 70
|
||||
first_layer_temperature = 240
|
||||
first_layer_bed_temperature = 70
|
||||
max_fan_speed = 40
|
||||
min_fan_speed = 20
|
||||
filament_colour = #42BDD8
|
||||
|
||||
[filament:Infinity3D ABS @Infinity3D]
|
||||
inherits = *ABS*
|
||||
renamed_from = "Infinity3D ABS @Infinity3D"
|
||||
filament_vendor = Infinity3D
|
||||
temperature = 240
|
||||
bed_temperature = 90
|
||||
first_layer_temperature = 240
|
||||
first_layer_bed_temperature = 90
|
||||
filament_colour = #42BDD8
|
||||
|
||||
[filament:Prusament PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
renamed_from = "Prusament PLA @Infinity3D"
|
||||
filament_vendor = Prusa Polymers
|
||||
temperature = 210
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 24.99
|
||||
filament_density = 1.24
|
||||
filament_colour = #F94D0C
|
||||
|
||||
[filament:Prusament PETG @Infinity3D]
|
||||
inherits = *PET*
|
||||
renamed_from = "Prusament PETG @Infinity3D"
|
||||
filament_vendor = Prusa Polymers
|
||||
temperature = 245
|
||||
bed_temperature = 70
|
||||
first_layer_temperature = 245
|
||||
first_layer_bed_temperature = 70
|
||||
filament_cost = 24.99
|
||||
filament_density = 1.27
|
||||
filament_colour = #F94D0C
|
||||
|
||||
[filament:AzureFilm PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = AzureFilm
|
||||
temperature = 210
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 19.97
|
||||
filament_density = 1.24
|
||||
filament_colour = #006AA6
|
||||
|
||||
[filament:Devil Design PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Devil Design
|
||||
temperature = 215
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 19.00
|
||||
filament_density = 1.24
|
||||
filament_colour = #FF0000
|
||||
filament_spool_weight = 256
|
||||
|
||||
[filament:Devil Design PLA Matt @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Devil Design
|
||||
temperature = 205
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 205
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 20.00
|
||||
filament_density = 1.38
|
||||
filament_colour = #FF0000
|
||||
filament_spool_weight = 256
|
||||
|
||||
[filament:Devil Design PLA Galaxy @Infinity3D]
|
||||
inherits = *PLA*
|
||||
renamed_from = "Devil Design PLA (Galaxy) @Infinity3D"
|
||||
filament_vendor = Devil Design
|
||||
temperature = 225
|
||||
bed_temperature = 65
|
||||
first_layer_temperature = 225
|
||||
first_layer_bed_temperature = 65
|
||||
filament_cost = 19.00
|
||||
filament_density = 1.24
|
||||
filament_colour = #FF0000
|
||||
filament_spool_weight = 256
|
||||
|
||||
[filament:Extrudr PLA NX2 @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Extrudr
|
||||
temperature = 200
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 205
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 23.63
|
||||
filament_density = 1.3
|
||||
filament_colour = #3C4547
|
||||
filament_spool_weight = 256
|
||||
|
||||
[filament:Extrudr GreenTEC Pro @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Extrudr
|
||||
temperature = 210
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 56.24
|
||||
filament_density = 1.35
|
||||
filament_colour = #3C4547
|
||||
|
||||
[filament:Real Filament PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Real Filament
|
||||
temperature = 195
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 200
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 24.99
|
||||
filament_density = 1.24
|
||||
filament_colour = #007ABF
|
||||
|
||||
[filament:Velleman PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Velleman
|
||||
temperature = 200
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 205
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 27.99
|
||||
filament_density = 1.24
|
||||
filament_colour = #7EA60D
|
||||
|
||||
[filament:3DJAKE ecoPLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = 3DJAKE
|
||||
temperature = 200
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 205
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 21.99
|
||||
filament_density = 1.24
|
||||
filament_colour = #125467
|
||||
filament_spool_weight = 238
|
||||
|
||||
[filament:3DJAKE ecoPLA Matt @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = 3DJAKE
|
||||
temperature = 195
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 195
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 24.99
|
||||
filament_density = 1.38
|
||||
filament_colour = #125467
|
||||
filament_spool_weight = 238
|
||||
|
||||
[filament:3DJAKE ecoPLA Tough @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = 3DJAKE
|
||||
temperature = 215
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 29.99
|
||||
filament_density = 1.21
|
||||
filament_colour = #125467
|
||||
|
||||
[filament:FormFutura Tough PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = FormFutura
|
||||
temperature = 215
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 46.65
|
||||
filament_density = 1.21
|
||||
filament_colour = #ed000e
|
||||
|
||||
[filament:123-3D Jupiter PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = 123-3D
|
||||
temperature = 200
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 205
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 19.50
|
||||
filament_density = 1.24
|
||||
filament_colour = #FFE200
|
||||
|
||||
[filament:Das Filament PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Das Filament
|
||||
temperature = 210
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 20.56
|
||||
filament_density = 1.24
|
||||
filament_colour = #C7F935
|
||||
|
||||
[filament:Das Filament PETG @Infinity3D]
|
||||
inherits = *PET*
|
||||
filament_vendor = Das Filament
|
||||
temperature = 240
|
||||
bed_temperature = 70
|
||||
first_layer_temperature = 240
|
||||
first_layer_bed_temperature = 70
|
||||
filament_cost = 27.44
|
||||
filament_density = 1.29
|
||||
filament_colour = #C7F935
|
||||
|
||||
[filament:Verbatim PLA @Infinity3D]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Verbatim
|
||||
temperature = 205
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 210
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 22.99
|
||||
filament_density = 1.24
|
||||
filament_colour = #001ca8
|
||||
|
||||
# Common printer preset
|
||||
[printer:*common*]
|
||||
bed_shape = 0x0,350x0,350x350,0x350
|
||||
color_change_gcode = M600
|
||||
cooling_tube_length = 5
|
||||
cooling_tube_retraction = 91.5
|
||||
default_filament_profile = ""
|
||||
default_print_profile =
|
||||
end_gcode = ;End GCode begin\nM140 S0 ;Heated bed heater off\nM104 S0 ;Extruder heater off\nG90 ;absolute positioning\nG92 E0 ;Retract the filament\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z350 E-1 F3000 ;move Z up a bit and retract filament even more\nG1 X0 F3000 ;move X to min endstops, so the head is out of the way\nG1 Y350 F3000 ;so the head is out of the way and Plate is moved forward\nM84 ;stepper off\nM107 ; fan off\nM82 ; absolute extrusion\n;End GCode end
|
||||
extra_loading_move = -2
|
||||
extruder_colour = ""
|
||||
extruder_offset = 0x0
|
||||
gcode_flavor = marlin
|
||||
high_current_on_filament_swap = 0
|
||||
machine_limits_usage = time_estimate_only
|
||||
machine_max_acceleration_e = 10000
|
||||
machine_max_acceleration_extruding = 1000
|
||||
machine_max_acceleration_retracting = 1000
|
||||
machine_max_acceleration_travel = 1500
|
||||
machine_max_acceleration_x = 3000
|
||||
machine_max_acceleration_y = 3000
|
||||
machine_max_acceleration_z = 100
|
||||
machine_max_feedrate_e = 25
|
||||
machine_max_feedrate_x = 150
|
||||
machine_max_feedrate_y = 150
|
||||
machine_max_feedrate_z = 50
|
||||
machine_max_jerk_e = 2.5
|
||||
machine_max_jerk_x = 10
|
||||
machine_max_jerk_y = 10
|
||||
machine_max_jerk_z = 0.2
|
||||
machine_min_extruding_rate = 0
|
||||
machine_min_travel_rate = 0
|
||||
max_layer_height = 0.4
|
||||
max_print_height = 350
|
||||
min_layer_height = 0.08
|
||||
nozzle_diameter = 0.4
|
||||
parking_pos_retraction = 92
|
||||
pause_print_gcode =
|
||||
printer_technology = FFF
|
||||
remaining_times = 0
|
||||
retract_before_travel = 2
|
||||
retract_before_wipe = 0%
|
||||
retract_layer_change = 1
|
||||
retract_length = 2
|
||||
retract_length_toolchange = 10
|
||||
retract_lift = 0
|
||||
retract_lift_above = 0
|
||||
retract_lift_below = 328
|
||||
retract_restart_extra = 0
|
||||
retract_restart_extra_toolchange = 0
|
||||
retract_speed = 60
|
||||
deretract_speed = 40
|
||||
silent_mode = 0
|
||||
single_extruder_multi_material = 0
|
||||
start_gcode = Start GCode begin\nM140 S[first_layer_bed_temperature] ;Start Warming Bed\nM104 S[first_layer_temperature] ;Preheat\nG28 ;home\nG29 ;Auto Bed-level\nG90 ;absolute positioning\nG1 X-10 Y-10 F3000 ;Move to corner\nM190 S[first_layer_bed_temperature] ;Wait For Bed Temperature\nM109 S[first_layer_temperature] ;Wait for Hotend Temperature\nG92 E0 ;Zero set extruder position\nG1 E3 F200 ;Feed filament to clear nozzle\nG92 E0 ;Zero set extruder position
|
||||
thumbnails = 16x16,220x124
|
||||
use_firmware_retraction = 0
|
||||
use_relative_e_distances = 0
|
||||
use_volumetric_e = 0
|
||||
variable_layer_height = 1
|
||||
wipe = 0
|
||||
z_offset = 0
|
||||
|
||||
[printer:Infinity3D DEV-350]
|
||||
inherits = *common*
|
||||
printer_model = DEV-350
|
||||
printer_variant = 0.4
|
||||
default_filament_profile = Generic PLA @Infinity3D
|
||||
default_print_profile = 0.20mm GOOD @Infinity3D_DEV_350
|
||||
|
||||
[printer:Infinity3D DEV-200]
|
||||
inherits = *common*
|
||||
printer_model = DEV-200
|
||||
printer_variant = 0.4
|
||||
bed_shape = 0x0,200x0,200x200,0x200
|
||||
thumbnails =
|
||||
variable_layer_height = 0
|
||||
retract_lift_below = 0
|
||||
max_print_height = 235
|
||||
start_gcode = Start GCode begin\nM140 S[first_layer_bed_temperature] ;Start Warming Bed\nM104 S[first_layer_temperature] ;Preheat\nG28 ;home\nG29 ;Auto Bed-level\nG90 ;absolute positioning\nG1 X-10 Y-10 F3000 ;Move to corner\nM190 S[first_layer_bed_temperature] ;Wait For Bed Temperature\nM109 S[first_layer_temperature] ;Wait for Hotend Temperature\nG92 E0 ;Zero set extruder position\nG1 E3 F200 ;Feed filament to clear nozzle\nG92 E0 ;Zero set extruder position
|
||||
end_gcode = ;End GCode begin\nM140 S0 ;Heated bed heater off\nM104 S0 ;Extruder heater off\nG90 ;absolute positioning\nG92 E0 ;Retract the filament\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z240 E-1 F3000 ;move Z up a bit and retract filament even more\nG1 X0 F3000 ;move X to min endstops, so the head is out of the way\nG1 Y200 F3000 ;so the head is out of the way and Plate is moved forward\nM84 ;stepper off\nM107 ; fan off\nM82 ; absolute extrusion\n;End GCode end
|
||||
default_filament_profile = Generic PLA @Infinity3D
|
||||
default_print_profile = 0.20mm GOOD @Infinity3D_DEV_200
|
BIN
resources/profiles/Infinity3D/DEV-200_thumbnail.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
resources/profiles/Infinity3D/DEV-350_thumbnail.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
resources/profiles/Infinity3D/DEV_200_bed.stl
Normal file
487
resources/profiles/Infinity3D/DEV_200_texture.svg
Normal file
@ -0,0 +1,487 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="2717.000000pt" height="2953.000000pt" viewBox="0 0 2717.000000 2953.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0.000000,2953.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M1160 28950 l0 -580 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580
|
||||
-20 l580 0 0 -570 0 -570 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -570 0 -570 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -570 0 -570 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -570 0 -570 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -570 0 -570 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -570 0 -570 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -570 0 -570 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-509 0 -580 -2 -580 -15 0 -13 71 -15 580 -15
|
||||
l580 0 0 -575 0 -575 -580 0 c-573 0 -580 0 -580 -20 0 -20 7 -20 580 -20
|
||||
l580 0 0 -580 c0 -573 0 -580 20 -580 20 0 20 7 20 580 l0 580 575 0 575 0 0
|
||||
-580 c0 -509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0
|
||||
-509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0 -509 2
|
||||
-580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0 -509 2 -580 15
|
||||
-580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0 -573 0 -580 20 -580 20
|
||||
0 20 7 20 580 l0 580 570 0 570 0 0 -580 c0 -573 0 -580 20 -580 20 0 20 7 20
|
||||
580 l0 580 570 0 570 0 0 -580 c0 -573 0 -580 20 -580 20 0 20 7 20 580 l0
|
||||
580 570 0 570 0 0 -580 c0 -573 0 -580 20 -580 20 0 20 7 20 580 l0 580 575 0
|
||||
575 0 0 -580 c0 -509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0
|
||||
-580 c0 -509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0
|
||||
-509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0 -509 2
|
||||
-580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0 -573 0 -580 20
|
||||
-580 20 0 20 7 20 580 l0 580 570 0 570 0 0 -580 c0 -573 0 -580 20 -580 20 0
|
||||
20 7 20 580 l0 580 570 0 570 0 0 -580 c0 -573 0 -580 20 -580 20 0 20 7 20
|
||||
580 l0 580 570 0 570 0 0 -580 c0 -573 0 -580 20 -580 20 0 20 7 20 580 l0
|
||||
580 575 0 575 0 0 -580 c0 -509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575
|
||||
0 575 0 0 -580 c0 -509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0
|
||||
0 -580 c0 -509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580
|
||||
c0 -509 2 -580 15 -580 13 0 15 71 15 580 l0 580 575 0 575 0 0 -580 c0 -573
|
||||
0 -580 20 -580 20 0 20 7 20 580 l0 580 580 0 c573 0 580 0 580 20 0 20 -7 20
|
||||
-580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580 20 0 20 -7 20 -580 20
|
||||
l-580 0 0 575 0 575 580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0
|
||||
575 0 575 580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575
|
||||
580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575 580 0
|
||||
c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575 580 0 c573 0
|
||||
580 0 580 20 0 20 -7 20 -580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580
|
||||
20 0 20 -7 20 -580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580 20 0 20 -7
|
||||
20 -580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580 20 0 20 -7 20 -580 20
|
||||
l-580 0 0 575 0 575 580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0
|
||||
575 0 575 580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575
|
||||
580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575 580 0
|
||||
c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575 580 0 c573 0
|
||||
580 0 580 20 0 20 -7 20 -580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580
|
||||
20 0 20 -7 20 -580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580 20 0 20 -7
|
||||
20 -580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580 20 0 20 -7 20 -580 20
|
||||
l-580 0 0 575 0 575 580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0
|
||||
575 0 575 580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575
|
||||
580 0 c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575 580 0
|
||||
c509 0 580 2 580 15 0 13 -71 15 -580 15 l-580 0 0 575 0 575 580 0 c573 0
|
||||
580 0 580 20 0 20 -7 20 -580 20 l-580 0 0 570 0 570 580 0 c573 0 580 0 580
|
||||
20 0 20 -7 20 -580 20 l-580 0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20
|
||||
-580 l0 -580 -575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15
|
||||
-580 l0 -580 -575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15
|
||||
-580 l0 -580 -575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15
|
||||
-580 l0 -580 -575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15
|
||||
-580 l0 -580 -575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15
|
||||
-580 l0 -580 -575 0 -575 0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580
|
||||
l0 -580 -570 0 -570 0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580 l0
|
||||
-580 -570 0 -570 0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580 l0 -580
|
||||
-575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580
|
||||
-575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580
|
||||
-575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580
|
||||
-575 0 -575 0 0 580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580
|
||||
-575 0 -575 0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580 l0 -580 -570
|
||||
0 -570 0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580 l0 -580 -570 0
|
||||
-570 0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580 l0 -580 -570 0 -570
|
||||
0 0 580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580 l0 -580 -575 0 -575 0 0
|
||||
580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580 -575 0 -575 0 0
|
||||
580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580 -575 0 -575 0 0
|
||||
580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580 -575 0 -575 0 0
|
||||
580 c0 509 -2 580 -15 580 -13 0 -15 -71 -15 -580 l0 -580 -575 0 -575 0 0
|
||||
580 c0 573 0 580 -20 580 -20 0 -20 -7 -20 -580z m1190 -1190 l0 -570 -575 0
|
||||
-575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570
|
||||
0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0
|
||||
575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z
|
||||
m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0
|
||||
-570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0
|
||||
-570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570
|
||||
0 570 570 0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0
|
||||
575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z
|
||||
m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0
|
||||
-570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0
|
||||
-575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570
|
||||
0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570 0
|
||||
570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z
|
||||
m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0
|
||||
-570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0
|
||||
-575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570
|
||||
0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0
|
||||
575 0 0 -570z m-23620 -1185 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570
|
||||
0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1180 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575
|
||||
575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570
|
||||
0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570
|
||||
0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m-23620 -1180 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1180 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575
|
||||
575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570
|
||||
0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570
|
||||
0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m-23620 -1180 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1185 l0 -570
|
||||
-575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0
|
||||
0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570
|
||||
575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570
|
||||
0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570
|
||||
0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m-23620 -1180 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0
|
||||
0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180
|
||||
0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570
|
||||
-575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0
|
||||
0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570
|
||||
570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0
|
||||
-570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1190 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0
|
||||
l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1190 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m-23620 -1180 l0 -570
|
||||
-575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0
|
||||
0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570
|
||||
575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570
|
||||
0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570
|
||||
0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m-23620 -1185 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1180 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575
|
||||
575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570
|
||||
0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570
|
||||
0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m-23620 -1180 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1180 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575
|
||||
575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570
|
||||
0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570
|
||||
0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m-23620 -1180 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1185 l0 -570
|
||||
-575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0
|
||||
0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570
|
||||
575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570
|
||||
0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570
|
||||
0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m-23620 -1180 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0
|
||||
0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180
|
||||
0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570
|
||||
-575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0
|
||||
0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570
|
||||
570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0
|
||||
-570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1190 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0
|
||||
l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1190 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m-23620 -1180 l0 -570
|
||||
-575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0
|
||||
0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570
|
||||
575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -570 0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570
|
||||
0 -570 0 0 570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0
|
||||
570 0 570 570 0 570 0 0 -570z m1180 0 l0 -570 -570 0 -570 0 0 570 0 570 570
|
||||
0 570 0 0 -570z m1190 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0
|
||||
-570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0
|
||||
l0 -570 -575 0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575
|
||||
0 -575 0 0 570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0
|
||||
570 0 570 575 0 575 0 0 -570z m1180 0 l0 -570 -575 0 -575 0 0 570 0 570 575
|
||||
0 575 0 0 -570z m-23620 -1185 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1180 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575
|
||||
575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570
|
||||
0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570
|
||||
0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m-23620 -1180 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m-23620 -1180 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575
|
||||
575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570
|
||||
0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0
|
||||
575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570
|
||||
0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0
|
||||
-575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575
|
||||
0 575 0 0 -575z m-23620 -1180 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0
|
||||
0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180
|
||||
0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575
|
||||
-575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0
|
||||
0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575
|
||||
570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0
|
||||
-575z m1180 0 l0 -575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1190 0
|
||||
l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575
|
||||
0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0
|
||||
575 0 575 575 0 575 0 0 -575z m11810 -590 l0 -1165 -4705 0 c-4176 0 -4705 2
|
||||
-4705 15 0 8 -9 15 -20 15 -11 0 -20 -7 -20 -15 0 -13 -71 -15 -575 -15 -504
|
||||
0 -575 2 -575 15 0 8 -7 15 -15 15 -8 0 -15 -7 -15 -15 0 -13 -71 -15 -575
|
||||
-15 l-575 0 0 575 c0 377 3 575 10 575 6 0 10 7 10 15 0 8 -4 15 -10 15 -7 0
|
||||
-10 198 -10 575 l0 575 5890 0 5890 0 0 -1165z m-23620 -590 l0 -575 -575 0
|
||||
-575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575
|
||||
0 575 575 0 575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0
|
||||
575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z
|
||||
m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z m1180 0 l0
|
||||
-575 -570 0 -570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0
|
||||
-570 0 0 575 0 575 570 0 570 0 0 -575z m1180 0 l0 -575 -570 0 -570 0 0 575
|
||||
0 575 570 0 570 0 0 -575z m1190 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0
|
||||
575 0 0 -575z m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z
|
||||
m1180 0 l0 -575 -575 0 -575 0 0 575 0 575 575 0 575 0 0 -575z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 35 KiB |
BIN
resources/profiles/Infinity3D/DEV_350_bed.stl
Normal file
589
resources/profiles/Infinity3D/DEV_350_texture.svg
Normal file
@ -0,0 +1,589 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="3780.000000pt" height="4134.000000pt" viewBox="0 0 3780.000000 4134.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0.000000,4134.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M1618 40273 l-3 -808 -807 -3 c-799 -2 -808 -2 -808 -22 0 -20 9 -20
|
||||
808 -22 l807 -3 0 -795 0 -795 -808 -3 -807 -2 0 -25 0 -25 810 0 810 0 -2
|
||||
-797 -3 -798 -805 -2 c-800 -2 -805 -3 -808 -23 -3 -20 -1 -20 807 -20 l811 0
|
||||
-2 -797 -3 -798 -807 -3 c-800 -2 -808 -2 -808 -22 0 -20 7 -20 810 -20 l810
|
||||
0 0 -800 0 -800 -810 0 -810 0 0 -25 0 -25 810 0 810 0 0 -795 0 -795 -810 0
|
||||
-810 0 0 -25 0 -25 810 0 810 0 -2 -797 -3 -798 -808 -3 c-798 -2 -807 -2
|
||||
-807 -22 0 -20 9 -20 807 -22 l808 -3 0 -795 0 -795 -808 -3 c-805 -2 -808 -2
|
||||
-805 -22 3 -20 9 -21 808 -23 l805 -2 3 -797 2 -798 -810 0 -810 0 0 -25 0
|
||||
-25 810 0 810 0 -2 -797 -3 -798 -807 -3 c-799 -2 -808 -2 -808 -22 0 -20 9
|
||||
-20 808 -22 l807 -3 3 -797 2 -798 -810 0 -810 0 0 -25 0 -25 810 0 810 0 0
|
||||
-795 0 -795 -810 0 -810 0 0 -25 0 -25 810 0 810 0 0 -800 0 -800 -810 0
|
||||
c-803 0 -810 0 -810 -20 0 -20 8 -20 808 -22 l807 -3 3 -797 2 -798 -810 0
|
||||
c-803 0 -810 0 -810 -20 0 -20 8 -20 807 -22 l808 -3 3 -797 2 -798 -810 0
|
||||
-810 0 0 -25 0 -25 808 -2 807 -3 0 -795 0 -795 -808 -3 c-798 -2 -807 -2
|
||||
-807 -22 0 -20 9 -20 808 -22 l807 -3 3 -797 2 -798 -810 0 -810 0 0 -25 0
|
||||
-25 810 0 810 0 0 -795 0 -795 -810 0 -810 0 0 -25 0 -25 810 0 810 0 0 -800
|
||||
0 -800 -810 0 c-803 0 -810 0 -810 -20 0 -20 8 -20 808 -22 l807 -3 3 -797 2
|
||||
-798 -810 0 -810 0 0 -25 0 -25 810 0 810 0 -2 -797 -3 -798 -808 -3 c-799 -2
|
||||
-807 -2 -807 -22 0 -20 7 -20 810 -20 l810 0 -2 -797 -3 -798 -807 -3 c-799
|
||||
-2 -808 -2 -808 -22 0 -20 9 -20 807 -22 l808 -3 0 -800 0 -800 -807 -3 c-709
|
||||
-2 -808 -4 -808 -17 0 -13 98 -15 810 -15 l810 0 0 -800 0 -800 -810 0 -810 0
|
||||
0 -25 0 -25 810 0 810 0 0 -810 0 -810 25 0 25 0 0 808 0 807 795 0 795 0 0
|
||||
-807 0 -808 25 0 25 0 0 810 0 810 798 -2 797 -3 3 -807 c2 -800 2 -808 22
|
||||
-808 20 0 20 7 20 810 l0 810 800 0 800 0 0 -810 0 -810 25 0 25 0 0 808 0
|
||||
807 795 3 795 2 0 -810 0 -810 25 0 25 0 0 810 0 810 798 -2 797 -3 3 -807 c2
|
||||
-799 2 -808 22 -808 20 0 20 9 22 808 l3 807 798 3 797 2 0 -811 c0 -808 0
|
||||
-810 20 -807 20 3 21 8 23 808 l2 805 798 3 797 2 0 -810 0 -810 25 0 25 0 0
|
||||
810 0 810 798 -2 797 -3 3 -807 c2 -799 2 -808 22 -808 20 0 20 9 22 807 l3
|
||||
808 798 3 797 2 0 -810 0 -810 25 0 25 0 0 810 0 810 795 0 795 0 0 -810 0
|
||||
-810 25 0 25 0 0 810 0 810 800 0 800 0 0 -810 c0 -803 0 -810 20 -810 20 0
|
||||
20 8 22 808 l3 807 798 3 797 2 0 -810 c0 -803 0 -810 20 -810 20 0 20 8 22
|
||||
807 l3 808 798 3 797 2 0 -810 0 -810 25 0 25 0 0 810 0 810 798 -2 797 -3 2
|
||||
-805 c2 -799 3 -805 23 -808 20 -3 20 0 22 805 l3 808 798 3 797 2 0 -810 0
|
||||
-810 25 0 25 0 0 810 0 810 795 0 795 0 0 -810 0 -810 25 0 25 0 0 810 0 810
|
||||
800 0 800 0 0 -810 c0 -803 0 -810 20 -810 20 0 20 8 22 808 l3 807 798 3 797
|
||||
2 0 -810 0 -810 25 0 25 0 0 810 0 810 798 -2 797 -3 3 -807 c2 -800 2 -808
|
||||
22 -808 20 0 20 7 20 810 l0 810 798 -2 797 -3 3 -807 c2 -800 2 -808 22 -808
|
||||
20 0 20 7 20 810 l0 810 800 0 800 0 0 -810 0 -810 25 0 25 0 0 810 0 810 811
|
||||
0 810 0 -3 22 -3 23 -807 3 -808 2 0 795 0 795 808 2 807 3 3 23 3 22 -810 0
|
||||
-811 0 0 800 0 800 810 0 c803 0 810 0 810 20 0 20 -7 20 -810 20 l-810 0 0
|
||||
800 0 800 811 0 c808 0 810 0 807 20 -3 20 -8 21 -808 23 l-805 2 -3 797 -2
|
||||
798 807 2 808 3 3 23 3 22 -810 0 -811 0 2 798 3 797 808 3 c799 2 807 2 807
|
||||
22 0 20 -7 20 -810 20 l-810 0 0 800 0 800 811 0 810 0 -3 23 -3 22 -807 3
|
||||
-808 2 0 795 0 795 811 0 810 0 -3 23 -3 22 -807 3 -808 2 0 800 0 800 810 0
|
||||
c803 0 810 0 810 20 0 20 -8 20 -807 22 l-808 3 -3 798 -2 797 811 0 810 0 -3
|
||||
23 -3 22 -808 3 -807 2 2 798 3 797 805 2 c800 2 805 3 808 23 3 20 1 20 -807
|
||||
20 l-811 0 0 800 0 800 810 0 c803 0 810 0 810 20 0 20 -7 20 -810 20 l-810 0
|
||||
0 800 0 800 811 0 810 0 -3 23 -3 22 -807 3 -808 2 0 795 0 795 808 2 c799 3
|
||||
807 3 807 23 0 20 -8 20 -807 23 l-808 2 0 800 0 800 810 0 c803 0 810 0 810
|
||||
20 0 20 -8 20 -807 22 l-808 3 -3 798 -2 797 811 0 810 0 -3 23 -3 22 -805 2
|
||||
-805 3 0 797 0 798 805 2 c800 2 805 3 808 23 3 20 1 20 -807 20 l-811 0 2
|
||||
798 3 797 808 3 c799 2 807 2 807 22 0 20 -7 20 -810 20 l-810 0 0 800 0 800
|
||||
808 2 807 3 3 23 3 22 -810 0 -811 0 2 795 3 795 805 3 805 2 3 23 3 22 -810
|
||||
0 -811 0 0 800 0 800 810 0 c803 0 810 0 810 20 0 20 -7 20 -810 20 l-810 0 0
|
||||
800 0 800 811 0 c808 0 810 0 807 20 -3 20 -8 21 -808 23 l-805 2 0 798 0 797
|
||||
805 3 805 2 3 23 3 22 -810 0 -811 0 2 798 3 797 808 3 c799 2 807 2 807 22 0
|
||||
20 -7 20 -810 20 l-810 0 0 810 0 810 -25 0 -25 0 0 -810 0 -810 -797 2 -798
|
||||
3 -3 808 c-2 798 -2 807 -22 807 -20 0 -20 -9 -22 -807 l-3 -808 -797 -3 -798
|
||||
-2 0 810 c0 803 0 810 -20 810 -20 0 -20 -8 -22 -807 l-3 -808 -797 -3 -798
|
||||
-2 0 810 0 810 -25 0 -25 0 0 -810 0 -810 -797 2 -798 3 -3 808 c-2 798 -2
|
||||
807 -22 807 -20 0 -20 -9 -22 -807 l-3 -808 -797 -3 -798 -2 0 810 c0 803 0
|
||||
810 -20 810 -20 0 -20 -8 -22 -807 l-3 -808 -800 0 -800 0 -3 808 c-2 798 -2
|
||||
807 -22 807 -20 0 -20 -9 -22 -807 l-3 -808 -795 0 -795 0 -3 808 c-2 798 -2
|
||||
807 -22 807 -20 0 -20 -9 -22 -807 l-3 -808 -795 0 -795 0 -3 808 -2 807 -25
|
||||
0 -25 0 0 -810 0 -810 -797 2 -798 3 -3 808 c-2 799 -2 807 -22 807 -20 0 -20
|
||||
-7 -20 -810 l0 -810 -797 2 -798 3 -3 808 c-2 798 -2 807 -22 807 -20 0 -20
|
||||
-9 -22 -807 l-3 -808 -797 -3 -798 -2 0 810 0 810 -25 0 -25 0 0 -810 0 -810
|
||||
-795 0 -795 0 0 810 0 810 -25 0 -25 0 0 -810 0 -810 -797 2 -798 3 -3 808
|
||||
c-2 798 -2 807 -22 807 -20 0 -20 -9 -22 -807 l-3 -808 -795 0 -795 0 -3 808
|
||||
-2 807 -25 0 -25 0 0 -810 0 -810 -797 2 -798 3 0 808 0 807 -22 0 -23 0 -2
|
||||
-807 -3 -808 -795 0 -795 0 -3 808 c-2 798 -2 807 -22 807 -20 0 -20 -9 -22
|
||||
-807 l-3 -808 -797 -3 -798 -2 0 810 0 810 -25 0 -25 0 0 -810 0 -810 -795 0
|
||||
c-629 0 -795 3 -795 13 0 6 0 371 0 810 l0 797 -25 0 -25 0 0 -810 0 -810
|
||||
-800 0 -800 0 0 810 c0 803 0 810 -20 810 -20 0 -20 -8 -22 -807 l-3 -808
|
||||
-797 -3 -798 -2 0 810 0 810 -25 0 -25 0 0 -797 c0 -439 0 -804 0 -810 0 -10
|
||||
-166 -13 -795 -13 -629 0 -795 3 -795 13 0 6 0 371 0 810 l0 797 -25 0 -25 0
|
||||
-2 -807z m1642 -1648 c0 -434 0 -793 0 -797 0 -5 -358 -8 -795 -8 -437 0 -795
|
||||
3 -795 8 0 22 0 1578 0 1585 0 4 358 6 795 5 l795 -3 0 -790z m1645 -5 l0
|
||||
-795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -800
|
||||
0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1640 0 l0
|
||||
-800 -795 0 c-523 0 -795 3 -795 10 0 6 0 363 0 795 0 432 0 787 0 790 0 3
|
||||
358 5 795 5 l795 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798
|
||||
-2 797 -3 0 -795z m1640 0 l0 -795 -795 0 -795 0 -3 785 c-1 432 0 791 3 798
|
||||
3 10 168 12 797 10 l793 -3 0 -795z m1645 0 l0 -800 -797 2 -798 3 -3 785 c-1
|
||||
432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1645 0 l0 -795 -797 -3
|
||||
-798 -2 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 0 -795z m1645 0 l0
|
||||
-800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0
|
||||
-800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0 0 -800z m1648
|
||||
-2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z m1640 -1 l2 -797
|
||||
-797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 10 168 12 797 10 l793 -3 3 -798z
|
||||
m1642 3 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12
|
||||
l795 0 0 -800z m1648 -3 l2 -797 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3
|
||||
10 168 12 797 10 l793 -3 3 -798z m1640 0 l2 -797 -797 2 -798 3 -3 785 c-1
|
||||
432 0 791 3 798 3 10 168 12 797 10 l793 -3 3 -798z m1647 3 l0 -795 -800 0
|
||||
-800 0 -3 785 c-1 432 0 791 3 798 3 10 169 12 802 10 l798 -3 0 -795z m1643
|
||||
-2 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3
|
||||
-797z m1642 2 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 9 173 12
|
||||
800 12 l795 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798 -2
|
||||
797 -3 0 -795z m1643 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3
|
||||
-797z m1640 -1 l2 -797 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 10 168 12
|
||||
797 10 l793 -3 3 -798z m-31218 -1642 l0 -795 -22 -5 c-13 -3 -372 -4 -798 -3
|
||||
l-775 3 -3 790 c-1 435 0 795 2 800 2 7 276 9 800 7 l796 -2 0 -795z m1635 -2
|
||||
l0 -798 -795 0 -795 0 -3 790 c-1 435 0 795 2 800 2 7 275 9 797 8 l794 -3 0
|
||||
-797z m1645 -4 l0 -799 -789 0 c-473 0 -792 4 -796 9 -3 5 -5 364 -5 798 l0
|
||||
788 787 5 c434 3 791 4 796 2 4 -2 7 -363 7 -803z m1648 0 l-3 -794 -795 0
|
||||
-795 0 -3 797 -2 798 792 2 c436 2 796 0 801 -3 4 -3 6 -363 5 -800z m1637 4
|
||||
l0 -798 -775 -3 c-426 -1 -785 0 -797 3 l-23 5 0 794 c0 521 3 795 10 798 5 2
|
||||
364 2 797 1 l788 -3 0 -797z m1640 0 l0 -798 -784 -3 c-571 -1 -787 1 -797 9
|
||||
-12 10 -14 147 -14 799 0 517 3 789 10 792 5 2 364 2 797 1 l788 -3 0 -797z
|
||||
m1648 797 c4 0 7 -358 7 -795 l0 -795 -22 -5 c-13 -3 -372 -4 -798 -3 l-775 3
|
||||
-3 790 c-1 435 0 795 2 800 3 8 901 11 1589 5z m1645 -798 l-3 -797 -795 0
|
||||
-795 0 -3 790 c-1 435 0 795 2 800 2 7 276 9 800 7 l796 -2 -2 -798z m1640 0
|
||||
l-3 -797 -792 -3 -793 -2 0 802 0 803 795 -3 795 -2 -2 -798z m1647 1 l0 -798
|
||||
-797 -3 -798 -2 0 798 c0 439 2 801 4 803 2 2 361 3 798 2 l793 -3 0 -797z
|
||||
m1643 -4 l-3 -794 -775 -3 c-426 -1 -785 0 -797 3 l-23 5 0 795 0 795 793 2
|
||||
c435 2 795 0 800 -3 4 -3 6 -363 5 -800z m1640 0 l-3 -794 -775 -3 c-426 -1
|
||||
-785 0 -797 3 l-23 5 0 795 0 795 793 2 c435 2 795 0 800 -3 4 -3 6 -363 5
|
||||
-800z m3290 0 l-3 -794 -795 0 -795 0 -3 797 -2 798 792 2 c436 2 796 0 801
|
||||
-3 4 -3 6 -363 5 -800z m1652 7 c0 -715 -2 -794 -16 -800 -20 -8 -1558 -8
|
||||
-1578 0 -14 6 -16 85 -16 799 0 520 3 794 10 797 5 2 368 2 805 0 l795 -2 0
|
||||
-794z m1640 -1 l0 -795 -22 -5 c-13 -3 -372 -4 -798 -3 l-775 3 -3 790 c-1
|
||||
435 0 795 2 800 2 7 276 9 800 7 l796 -2 0 -795z m1640 -3 l0 -802 -797 2
|
||||
-798 3 -3 790 c-1 435 0 795 2 800 2 7 278 10 800 10 l796 0 0 -803z m1648 21
|
||||
c1 -428 0 -788 -3 -800 l-5 -23 -795 0 -795 0 0 803 0 802 797 -2 798 -3 3
|
||||
-777z m1637 -20 l0 -798 -797 -3 -798 -2 0 802 0 803 797 -2 798 -3 0 -797z
|
||||
m1643 -4 l-3 -794 -775 -3 c-426 -1 -785 0 -797 3 l-23 5 0 795 0 795 793 2
|
||||
c435 2 795 0 800 -3 4 -3 6 -363 5 -800z m-32865 10 c-2 -435 -5 -795 -9 -800
|
||||
-6 -11 -1584 -13 -1584 -1 0 4 -1 364 -3 800 l-2 792 800 0 800 0 -2 -791z
|
||||
m21365 -6 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m-21368
|
||||
-1635 c0 -434 0 -792 0 -798 0 -7 -272 -10 -795 -10 -523 0 -795 3 -795 10 0
|
||||
6 0 363 0 795 0 432 0 787 0 790 0 3 358 4 795 3 l795 -3 0 -787z m1648 -5
|
||||
l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1642 -3 l0 -800
|
||||
-797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 0 l0 -800 -795 0
|
||||
c-523 0 -795 3 -795 10 0 6 0 363 0 795 0 432 0 787 0 790 0 3 358 5 795 5
|
||||
l795 0 0 -800z m1648 3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2
|
||||
-797z m1640 0 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z
|
||||
m1643 793 c2 -2 3 -362 1 -800 l-2 -796 -794 0 c-715 0 -794 2 -800 16 -8 21
|
||||
-8 1569 1 1577 7 7 1587 10 1594 3z m1647 -793 l-3 -798 -795 0 -795 0 -3 798
|
||||
-2 797 800 0 800 0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2 797
|
||||
800 0 800 0 0 -800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0 0
|
||||
-800z m1648 3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z
|
||||
m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 0 l0
|
||||
-800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1648 3 l-3 -798 -795
|
||||
0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0
|
||||
-3 798 -2 797 800 0 800 0 -2 -797z m1650 0 l-3 -798 -800 0 -800 0 -3 798 -2
|
||||
797 805 0 805 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0
|
||||
800 0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0
|
||||
-800z m1648 20 c1 -426 0 -785 -3 -797 l-5 -23 -795 0 -795 0 0 800 0 800 798
|
||||
-2 797 -3 3 -775z m1640 -17 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800
|
||||
0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z
|
||||
m-32870 -1640 l0 -795 -795 0 -795 0 0 793 c0 435 0 794 0 797 0 3 358 4 795
|
||||
3 l795 -3 0 -795z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3
|
||||
3 -797z m1642 2 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640
|
||||
0 l0 -800 -795 2 -795 3 0 793 c0 435 0 794 0 797 0 3 358 5 795 5 l795 0 0
|
||||
-800z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z
|
||||
m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793
|
||||
0 0 -800z m1641 796 c2 -2 3 -362 1 -800 l-2 -796 -798 2 -797 3 -3 785 c-1
|
||||
432 0 791 3 798 3 9 172 12 798 12 437 0 796 -2 798 -4z m1647 -798 l2 -798
|
||||
-800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -800 0 -800
|
||||
0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800
|
||||
795 0 795 0 0 -800z m1650 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0
|
||||
-800z m1640 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0
|
||||
l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0
|
||||
-800z m1650 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0
|
||||
l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1650 0 l0 -800 -805
|
||||
0 -805 0 0 793 c0 437 3 797 7 800 3 4 366 7 805 7 l798 0 0 -800z m1640 0 l0
|
||||
-800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -800 0
|
||||
-800 0 0 800 0 800 800 0 800 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0
|
||||
800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 800 0 800
|
||||
800 0 800 0 0 -800z m1640 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0
|
||||
-800z m-31220 -1645 l0 -795 -800 0 -800 0 0 793 c0 437 2 796 4 798 2 2 362
|
||||
3 800 1 l796 -2 0 -795z m1638 0 l2 -795 -800 0 -800 0 0 793 c0 437 2 796 4
|
||||
798 2 2 361 3 798 2 l793 -3 3 -795z m3292 -1 l0 -794 -800 0 -800 0 0 795 0
|
||||
795 793 2 c435 2 795 2 800 0 4 -2 7 -361 7 -798z m1640 0 l0 -794 -800 0
|
||||
-800 0 0 795 0 795 793 2 c435 2 795 2 800 0 4 -2 7 -361 7 -798z m1638 1 l2
|
||||
-795 -800 0 -800 0 0 788 c0 484 4 792 9 798 6 5 310 8 798 7 l788 -3 3 -795z
|
||||
m1645 795 c4 0 7 -358 7 -795 l0 -795 -800 0 -800 0 0 793 c0 437 2 796 4 798
|
||||
3 3 1205 2 1589 -1z m1647 -795 l0 -795 -800 0 -800 0 0 793 c0 437 2 796 4
|
||||
798 2 2 362 3 800 1 l796 -2 0 -795z m1640 0 l0 -795 -795 0 -795 0 0 798 0
|
||||
797 795 -3 795 -2 0 -795z m1650 -1 l0 -794 -800 0 -800 0 0 795 0 795 793 2
|
||||
c435 2 795 2 800 0 4 -2 7 -361 7 -798z m1640 0 l0 -794 -800 0 -800 0 0 795
|
||||
0 795 793 2 c435 2 795 2 800 0 4 -2 7 -361 7 -798z m4930 0 l0 -794 -800 0
|
||||
-800 0 0 795 0 795 793 2 c435 2 795 2 800 0 4 -2 7 -361 7 -798z m3290 1 l0
|
||||
-795 -800 0 -800 0 0 793 c0 437 2 796 4 798 2 2 362 3 800 1 l796 -2 0 -795z
|
||||
m1640 3 l0 -798 -800 0 -800 0 0 793 c0 437 2 796 4 798 2 2 362 4 800 4 l796
|
||||
0 0 -797z m1642 787 c4 -5 8 -364 8 -797 l0 -788 -800 0 -800 0 0 798 0 797
|
||||
792 0 c517 0 796 -3 800 -10z m1646 -790 l2 -795 -800 0 -800 0 0 798 0 797
|
||||
797 -2 798 -3 3 -795z m1642 -1 l0 -794 -800 0 -800 0 0 795 0 795 793 2 c435
|
||||
2 795 2 800 0 4 -2 7 -361 7 -798z m-32867 -2 l2 -792 -800 0 -800 0 2 792 c2
|
||||
436 3 794 3 796 0 1 358 1 795 0 l795 -3 3 -793z m4927 3 l0 -795 -801 0
|
||||
c-726 0 -801 1 -795 16 3 9 6 366 6 795 l0 779 795 0 795 0 0 -795z m14790 0
|
||||
l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1650 0 l0 -795 -800
|
||||
0 -800 0 0 795 0 795 800 0 800 0 0 -795z m3290 0 l0 -795 -805 0 -805 0 0
|
||||
795 0 795 805 0 805 0 0 -795z m-24660 -855 c0 -5 0 -364 0 -797 l0 -788 -795
|
||||
0 -795 0 0 788 c0 433 0 792 0 797 0 7 272 10 795 10 523 0 795 -3 795 -10z
|
||||
m1648 -787 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1642
|
||||
-3 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800
|
||||
-793 0 c-437 0 -796 2 -798 4 -2 2 -3 362 -1 800 l2 796 795 0 795 0 0 -800z
|
||||
m1648 3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1640 0
|
||||
l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1642 7 c0 -434 0
|
||||
-793 0 -797 0 -5 -359 -8 -797 -8 l-798 0 -3 785 c-1 432 0 791 3 798 3 9 173
|
||||
12 800 12 l795 0 0 -790z m1645 -10 l0 -795 -795 0 -795 0 -3 798 -2 797 797
|
||||
-2 798 -3 0 -795z m1645 0 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0
|
||||
-800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0 0 -800z m1648 3
|
||||
l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1642 -3 l0 -800
|
||||
-797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 0 l0 -800 -797 2 -798
|
||||
3 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1648 3 l-3
|
||||
-798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1640 0 l-3 -798 -795
|
||||
0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1650 0 l-3 -798 -800 0 -800 0
|
||||
-3 798 -2 797 805 0 805 0 -2 -797z m1640 0 l-3 -798 -797 -3 -798 -2 0 800 0
|
||||
800 800 0 800 0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0
|
||||
800 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0
|
||||
-795z m1643 3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z
|
||||
m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m-32870
|
||||
-850 c0 -5 0 -364 0 -797 l0 -788 -795 0 -795 0 0 788 c0 433 0 792 0 797 0 7
|
||||
272 10 795 10 523 0 795 -3 795 -10z m1645 -790 l0 -795 -797 -3 -798 -2 0
|
||||
800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 793 c0 437
|
||||
3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1640 0 l0 -800 -795 2 -795 3 0
|
||||
788 c0 433 0 792 0 797 0 7 272 10 795 10 l795 0 0 -800z m1645 0 l0 -795
|
||||
-797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1640 0 l0 -795 -795 0
|
||||
-795 0 -3 785 c-1 432 0 791 3 798 3 10 168 12 797 10 l793 -3 0 -795z m1645
|
||||
10 c0 -434 0 -793 0 -797 0 -5 -359 -8 -797 -8 l-798 0 -3 775 c-1 426 0 785
|
||||
3 798 l5 22 795 0 795 0 0 -790z m1645 -10 l0 -795 -797 -3 -798 -2 0 793 c0
|
||||
437 3 797 7 800 3 4 362 6 797 5 l791 -3 0 -795z m1645 0 l0 -800 -797 2 -798
|
||||
3 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1640 0 l0
|
||||
-800 -795 0 -795 0 0 800 0 800 795 0 795 0 0 -800z m1648 -2 l2 -798 -800 0
|
||||
-800 0 0 800 0 800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -797 2 -798 3 -3
|
||||
785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1640 0 l0 -800
|
||||
-797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z
|
||||
m1648 -2 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5
|
||||
l791 -3 3 -797z m1640 -1 l2 -797 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3
|
||||
10 168 12 797 10 l793 -3 3 -798z m1647 3 l0 -795 -800 0 -800 0 -3 785 c-1
|
||||
432 0 791 3 798 3 10 169 12 802 10 l798 -3 0 -795z m1643 -2 l2 -798 -800 0
|
||||
-800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1642 2 l0
|
||||
-800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z
|
||||
m1645 778 c3 -13 4 -372 3 -798 l-3 -775 -797 -3 -798 -2 0 800 0 800 795 0
|
||||
795 0 5 -22z m1643 -780 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3
|
||||
-797z m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800
|
||||
7 l793 0 0 -800z m-32875 -849 c3 -5 5 -364 5 -798 l0 -788 -795 0 -795 0 0
|
||||
788 c0 433 0 792 0 797 0 13 1576 14 1585 1z m1639 3 c14 -6 16 -85 16 -800
|
||||
l0 -794 -796 -2 c-438 -2 -798 -1 -800 1 -7 7 -4 1587 3 1594 8 9 1556 9 1577
|
||||
1z m1651 -797 l0 -797 -795 0 -795 0 -3 787 c-1 434 0 794 3 801 3 10 168 12
|
||||
797 10 l793 -3 0 -798z m1645 3 l0 -800 -795 2 -795 3 0 788 c0 434 2 793 5
|
||||
798 4 5 323 9 796 9 l789 0 0 -800z m1645 -2 c0 -439 -3 -798 -7 -798 -5 0
|
||||
-363 0 -798 0 l-790 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 0
|
||||
-797z m1640 0 c0 -439 -3 -798 -7 -798 -5 0 -363 0 -798 0 l-790 0 0 794 c0
|
||||
626 3 795 13 799 6 3 365 5 797 4 l785 -2 0 -797z m1640 -1 l0 -797 -788 0
|
||||
c-434 0 -793 2 -798 5 -15 10 -12 1568 3 1583 9 9 195 12 798 10 l785 -3 0
|
||||
-798z m1643 791 c15 -15 18 -1573 3 -1583 -5 -3 -364 -5 -798 -5 l-788 0 -3
|
||||
787 c-1 434 0 794 3 801 6 17 1565 18 1583 0z m1650 -790 l2 -798 -796 -2
|
||||
c-438 -2 -798 -1 -800 1 -7 7 -4 1587 3 1594 3 4 362 6 797 5 l791 -3 3 -797z
|
||||
m1640 0 l2 -798 -795 -2 -795 -3 0 803 0 802 793 -2 792 -3 3 -797z m1647 -1
|
||||
l0 -797 -795 0 -795 0 -3 800 -2 800 797 -2 798 -3 0 -798z m1640 1 c0 -439
|
||||
-3 -798 -7 -798 -5 0 -363 0 -798 0 l-790 0 0 794 c0 626 3 795 13 799 6 3
|
||||
365 5 797 4 l785 -2 0 -797z m1640 -1 l0 -797 -789 0 c-433 0 -792 3 -797 6
|
||||
-5 3 -9 347 -9 794 0 621 3 789 13 793 6 3 365 5 797 4 l785 -2 0 -798z m1653
|
||||
1 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3
|
||||
-797z m1637 0 c0 -439 -3 -798 -7 -798 -5 0 -363 0 -798 0 l-790 0 0 793 c0
|
||||
437 3 797 7 800 3 4 362 6 797 5 l791 -3 0 -797z m1639 796 c14 -6 16 -85 16
|
||||
-800 l0 -794 -795 -2 c-437 -2 -800 -1 -805 0 -16 6 -14 1589 3 1595 18 8
|
||||
1562 8 1581 1z m1640 0 c14 -6 16 -85 16 -800 l0 -794 -796 -2 c-438 -2 -798
|
||||
-1 -800 1 -7 7 -4 1587 3 1594 8 9 1556 9 1577 1z m1656 -796 l0 -803 -797 2
|
||||
-798 3 -3 787 c-1 434 0 794 3 801 3 9 173 12 800 12 l795 0 0 -802z m1644
|
||||
786 c9 -23 7 -1567 -2 -1579 -4 -7 -283 -10 -800 -10 l-792 0 0 803 0 802 794
|
||||
0 c715 0 794 -2 800 -16z m1641 -787 l0 -797 -798 -3 -797 -2 0 803 0 802 798
|
||||
-2 797 -3 0 -798z m1640 1 c0 -439 -3 -798 -7 -798 -5 0 -363 0 -798 0 l-790
|
||||
0 0 794 c0 626 3 795 13 799 6 3 365 5 797 4 l785 -2 0 -797z m-32865 -1640
|
||||
c0 -434 0 -792 0 -798 0 -7 -272 -10 -795 -10 -523 0 -795 3 -795 10 0 6 0
|
||||
363 0 795 0 432 0 787 0 790 0 3 358 4 795 3 l795 -3 0 -787z m1645 -8 l0
|
||||
-795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -797
|
||||
2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 0 l0 -800 -795 0 c-523 0
|
||||
-795 3 -795 10 0 6 0 363 0 795 0 432 0 787 0 790 0 3 358 5 795 5 l795 0 0
|
||||
-800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z
|
||||
m1643 3 l-3 -798 -795 0 -795 0 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12
|
||||
l795 0 -2 -797z m1642 3 c0 -433 -3 -792 -6 -797 -3 -5 -347 -9 -794 -9 -709
|
||||
0 -788 2 -794 16 -8 22 -8 1569 1 1577 3 4 364 6 800 5 l793 -3 0 -789z m1645
|
||||
-6 l0 -795 -795 0 -795 0 -3 798 -2 797 797 -2 798 -3 0 -795z m1643 3 l-3
|
||||
-798 -795 0 -795 0 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 -2
|
||||
-797z m1642 -3 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0 0 -800z m1648
|
||||
3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1640 0 l-3
|
||||
-798 -795 0 -795 0 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 -2
|
||||
-797z m1642 -3 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 9 173 12
|
||||
800 12 l795 0 0 -800z m1648 3 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0
|
||||
800 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3 785 c-1 432 0 791 3 798 3
|
||||
9 173 12 800 12 l795 0 -2 -797z m1647 -3 l0 -795 -800 0 -800 0 -3 785 c-1
|
||||
432 0 791 3 798 3 10 169 12 802 10 l798 -3 0 -795z m1643 3 l-3 -798 -795 0
|
||||
-795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3
|
||||
798 -2 797 800 0 800 0 0 -800z m1648 20 c1 -426 0 -785 -3 -797 l-5 -23 -795
|
||||
0 -795 0 0 800 0 800 798 -2 797 -3 3 -775z m1640 -17 l-3 -798 -797 -3 -798
|
||||
-2 0 800 0 800 800 0 800 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3 798
|
||||
-2 797 800 0 800 0 -2 -797z m-32868 -1635 c0 -434 0 -792 0 -798 0 -7 -272
|
||||
-10 -795 -10 -523 0 -795 3 -795 10 0 6 0 363 0 795 0 432 0 787 0 790 0 3
|
||||
358 4 795 3 l795 -3 0 -787z m1648 -10 l2 -798 -800 0 -800 0 0 800 0 800 798
|
||||
-2 797 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0
|
||||
-800z m1640 0 l0 -800 -795 0 -795 0 -2 796 c-2 438 -1 798 1 800 2 2 361 4
|
||||
798 4 l793 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797
|
||||
-3 3 -797z m1640 0 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6
|
||||
797 5 l791 -3 3 -797z m1643 798 c2 -2 3 -362 1 -800 l-2 -796 -798 2 -797 3
|
||||
-3 785 c-1 432 0 791 3 798 3 9 172 12 798 12 437 0 796 -2 798 -4z m1644
|
||||
-796 l0 -795 -797 -3 -798 -2 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791
|
||||
-3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7
|
||||
800 7 l793 0 0 -800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0
|
||||
0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z
|
||||
m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793
|
||||
0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 9 173
|
||||
12 800 12 l795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 793 c0 437 3 797
|
||||
7 800 3 4 362 6 797 5 l791 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 793
|
||||
c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1648 -2 l2 -798 -805 0
|
||||
-805 0 0 793 c0 437 3 797 7 800 3 4 365 6 802 5 l796 -3 3 -797z m1640 0 l2
|
||||
-798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -800 0
|
||||
-800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1645 0 l0
|
||||
-795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1643 -2 l2 -798
|
||||
-800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -800 0 -800
|
||||
0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m-32867 -1642 l-3
|
||||
-793 -795 0 -795 0 -3 793 -2 792 800 0 800 0 -2 -792z m1647 -3 l0 -795 -800
|
||||
0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -800 0 -800 0 0
|
||||
795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -795 0 -795 0 0 779 c0 429 -3
|
||||
786 -6 795 -6 15 69 16 795 16 l801 0 0 -795z m1650 0 l0 -795 -800 0 -800 0
|
||||
0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -800 0 -800 0 0 795 0 795
|
||||
800 0 800 0 0 -795z m1640 0 l0 -795 -797 2 -798 3 -3 793 -2 792 800 0 800 0
|
||||
0 -795z m1650 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640
|
||||
0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795
|
||||
-795 0 -795 0 0 795 0 795 795 0 795 0 0 -795z m1650 0 l0 -795 -800 0 -800 0
|
||||
0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -800 0 -800 0 0 795 0 795
|
||||
800 0 800 0 0 -795z m1640 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0
|
||||
-795z m1650 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0
|
||||
l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1650 0 l0 -795 -805
|
||||
0 -805 0 0 795 0 795 805 0 805 0 0 -795z m1640 0 l0 -795 -800 0 -800 0 0
|
||||
795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -800 0 -800 0 0 795 0 795 800
|
||||
0 800 0 0 -795z m1648 3 l-3 -793 -797 -3 -798 -2 0 795 0 795 800 0 800 0 -2
|
||||
-792z m1642 -3 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640
|
||||
0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m-32870 -1645 l0
|
||||
-795 -795 0 -795 0 0 793 c0 435 0 794 0 797 0 3 358 4 795 3 l795 -3 0 -795z
|
||||
m1648 3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1642 -3
|
||||
l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -795
|
||||
2 -795 3 0 793 c0 435 0 794 0 797 0 3 358 5 795 5 l795 0 0 -800z m1648 3
|
||||
l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1642 -3 l0 -800
|
||||
-797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 10 c0 -434 0 -793 0
|
||||
-797 0 -5 -359 -8 -797 -8 l-798 0 -3 798 -2 797 800 0 800 0 0 -790z m1648
|
||||
-7 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1642 -3 l0
|
||||
-800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 0 l0 -800 -795 0
|
||||
-795 0 0 800 0 800 795 0 795 0 0 -800z m1650 0 l0 -800 -800 0 -800 0 0 800
|
||||
0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0
|
||||
800 0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0
|
||||
-800z m1650 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0
|
||||
l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1650 0 l0 -800
|
||||
-802 2 -803 3 -3 798 -2 797 805 0 805 0 0 -800z m1640 0 l0 -800 -800 0 -800
|
||||
0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -800 0 -800 0 0 800 0 800
|
||||
800 0 800 0 0 -800z m1648 3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800
|
||||
0 -2 -797z m1642 -3 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z
|
||||
m1640 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m-32870 -850
|
||||
c0 -5 0 -364 0 -797 l0 -788 -795 0 -795 0 0 788 c0 433 0 792 0 797 0 7 272
|
||||
10 795 10 523 0 795 -3 795 -10z m1648 -792 l2 -798 -800 0 -800 0 0 800 0
|
||||
800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 800 0 800 800 0
|
||||
800 0 0 -800z m1640 0 l0 -800 -795 2 -795 3 0 788 c0 433 0 792 0 797 0 7
|
||||
272 10 795 10 l795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798
|
||||
-2 797 -3 3 -797z m1640 0 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3
|
||||
4 362 6 797 5 l791 -3 3 -797z m1642 12 c0 -434 0 -793 0 -797 0 -5 -359 -8
|
||||
-797 -8 l-798 0 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -790z
|
||||
m1645 -10 l0 -795 -797 -3 -798 -2 0 793 c0 437 3 797 7 800 3 4 362 6 797 5
|
||||
l791 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4
|
||||
363 7 800 7 l793 0 0 -800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0
|
||||
795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3
|
||||
-797z m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800
|
||||
7 l793 0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3
|
||||
9 173 12 800 12 l795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 793 c0 437
|
||||
3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0
|
||||
793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1648 -2 l2 -798 -805
|
||||
0 -805 0 0 793 c0 437 3 797 7 800 3 4 365 6 802 5 l796 -3 3 -797z m1640 0
|
||||
l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z m1642 2 l0 -800
|
||||
-800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1645
|
||||
0 l0 -795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1643 -2 l2
|
||||
-798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -800 0
|
||||
-800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m-32870 -850
|
||||
c0 -5 0 -364 0 -797 l0 -788 -795 0 -795 0 0 788 c0 433 0 792 0 797 0 7 272
|
||||
10 795 10 523 0 795 -3 795 -10z m1648 -792 l2 -798 -800 0 -800 0 0 800 0
|
||||
800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797
|
||||
7 800 3 4 363 7 800 7 l793 0 0 -800z m1640 0 l0 -800 -795 2 -795 3 0 788 c0
|
||||
434 2 793 5 798 4 5 323 9 796 9 l789 0 0 -800z m1648 -2 l2 -798 -800 0 -800
|
||||
0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1640 0 l2 -798
|
||||
-800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z
|
||||
m1640 0 l2 -798 -800 0 -800 0 0 788 c0 602 3 791 12 800 9 9 195 12 798 10
|
||||
l785 -3 3 -797z m1636 796 c14 -6 16 -85 16 -800 l0 -794 -800 0 -800 0 0 793
|
||||
c0 437 3 797 7 800 8 9 1556 9 1577 1z m1654 -796 l2 -798 -800 0 -800 0 0
|
||||
793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1640 0 l2 -798 -795
|
||||
0 -795 0 0 800 0 800 793 -2 792 -3 3 -797z m1647 0 c0 -439 -3 -798 -7 -798
|
||||
-5 0 -363 0 -798 0 l-790 0 0 800 0 800 798 -2 797 -3 0 -797z m1643 0 l2
|
||||
-798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z
|
||||
m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793
|
||||
0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6
|
||||
797 5 l791 -3 3 -797z m1640 0 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7
|
||||
800 3 4 362 6 797 5 l791 -3 3 -797z m1650 0 l2 -798 -805 0 -805 0 0 793 c0
|
||||
437 3 797 7 800 3 4 365 6 802 5 l796 -3 3 -797z m1640 0 l2 -798 -800 0 -800
|
||||
0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1642 2 l0 -800
|
||||
-800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1645
|
||||
778 c8 -35 1 -1578 -7 -1578 -5 0 -363 0 -798 0 l-790 0 0 800 0 800 795 0
|
||||
795 0 5 -22z m1643 -780 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3
|
||||
-797z m1640 0 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797
|
||||
5 l791 -3 3 -797z m-32868 -1648 l0 -795 -795 0 -795 0 0 793 c0 435 0 794 0
|
||||
797 0 3 358 4 795 3 l795 -3 0 -795z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0
|
||||
800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0
|
||||
800 0 0 -800z m1640 0 l0 -800 -793 0 c-437 0 -796 2 -798 4 -2 2 -3 362 -1
|
||||
800 l2 796 795 0 795 0 0 -800z m1645 0 l0 -795 -795 0 -795 0 -3 798 -2 797
|
||||
797 -2 798 -3 0 -795z m1640 0 l0 -795 -795 0 -795 0 -3 785 c-1 432 0 791 3
|
||||
798 3 10 168 12 797 10 l793 -3 0 -795z m1643 3 l-3 -798 -775 -3 c-426 -1
|
||||
-785 0 -797 3 l-23 5 0 789 c0 433 3 791 7 794 3 4 363 7 800 7 l793 0 -2
|
||||
-797z m1647 -3 l0 -795 -795 0 -795 0 -3 798 -2 797 797 -2 798 -3 0 -795z
|
||||
m1643 3 l-3 -798 -795 0 -795 0 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12
|
||||
l795 0 -2 -797z m1640 0 l-3 -798 -792 -3 -793 -2 0 800 0 800 795 0 795 0 -2
|
||||
-797z m1650 0 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z
|
||||
m1640 0 l-3 -798 -795 0 -795 0 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12
|
||||
l795 0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3
|
||||
9 173 12 800 12 l795 0 0 -800z m1648 3 l-3 -798 -795 0 -795 0 -3 798 -2 797
|
||||
800 0 800 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3 785 c-1 432 0 791 3
|
||||
798 3 9 173 12 800 12 l795 0 -2 -797z m1647 -3 l0 -795 -800 0 -800 0 -3 785
|
||||
c-1 432 0 791 3 798 3 10 169 12 802 10 l798 -3 0 -795z m1643 3 l-3 -798
|
||||
-795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1642 -3 l0 -800 -797 2
|
||||
-798 3 -3 798 -2 797 800 0 800 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0
|
||||
800 0 800 798 -2 797 -3 0 -795z m1643 3 l-3 -798 -797 -3 -798 -2 0 800 0
|
||||
800 800 0 800 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0
|
||||
800 0 -2 -797z m-32868 -853 c0 -5 0 -364 0 -797 l0 -788 -795 0 -795 0 0 788
|
||||
c0 433 0 792 0 797 0 7 272 10 795 10 523 0 795 -3 795 -10z m1645 -790 l0
|
||||
-795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -800
|
||||
0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -795 2 -795 3 0
|
||||
788 c0 433 0 792 0 797 0 7 272 10 795 10 l795 0 0 -800z m1645 0 l0 -795
|
||||
-797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1643 -3 l2 -797 -797 2
|
||||
-798 3 -3 785 c-1 432 0 791 3 798 3 10 168 12 797 10 l793 -3 3 -798z m1642
|
||||
3 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0
|
||||
0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 793 c0 437 3 797 7 800 3 4 362 6
|
||||
797 5 l791 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7
|
||||
800 3 4 363 7 800 7 l793 0 0 -800z m1640 0 l0 -800 -795 0 -795 0 0 800 0
|
||||
800 795 0 795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2
|
||||
797 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4
|
||||
363 7 800 7 l793 0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3 785 c-1 432 0
|
||||
791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0
|
||||
793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1642 2 l0 -800 -800
|
||||
0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1648 -3
|
||||
l2 -797 -802 2 -803 3 -3 785 c-1 432 0 791 3 798 3 10 169 12 802 10 l798 -3
|
||||
3 -798z m1640 1 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z
|
||||
m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793
|
||||
0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z
|
||||
m1643 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z m1642 2 l0
|
||||
-800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z
|
||||
m-32870 -1645 l0 -790 -795 0 -795 0 0 788 c0 433 0 789 0 792 0 3 358 4 795
|
||||
3 l795 -3 0 -790z m1650 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0
|
||||
-795z m1640 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0
|
||||
l0 -795 -795 2 -795 3 0 788 c0 433 0 789 0 792 0 3 358 5 795 5 l795 0 0
|
||||
-795z m1650 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0
|
||||
l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1641 791 c2 -2 3
|
||||
-360 1 -795 l-2 -791 -798 2 -797 3 -3 780 c-1 429 0 786 3 793 3 9 172 12
|
||||
798 12 437 0 796 -2 798 -4z m1644 -791 l0 -790 -797 -3 -798 -2 0 795 0 795
|
||||
798 -2 797 -3 0 -790z m1645 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0
|
||||
0 -795z m1640 0 l0 -795 -795 0 -795 0 0 795 0 795 795 0 795 0 0 -795z m1650
|
||||
0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795
|
||||
-800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -797 2 -798 3
|
||||
-3 780 c-1 429 0 786 3 793 3 9 173 12 800 12 l795 0 0 -795z m1650 0 l0 -795
|
||||
-800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -800 0 -800 0
|
||||
0 795 0 795 800 0 800 0 0 -795z m1650 0 l0 -795 -802 2 -803 3 -3 793 -2 792
|
||||
805 0 805 0 0 -795z m1640 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0
|
||||
-795z m1640 0 l0 -795 -800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1645 0
|
||||
l0 -790 -797 -3 -798 -2 0 795 0 795 798 -2 797 -3 0 -790z m1645 0 l0 -795
|
||||
-800 0 -800 0 0 795 0 795 800 0 800 0 0 -795z m1640 0 l0 -795 -800 0 -800 0
|
||||
0 795 0 795 800 0 800 0 0 -795z m-32870 -1637 c0 -434 0 -792 0 -798 0 -7
|
||||
-272 -10 -795 -10 -523 0 -795 3 -795 10 0 6 0 363 0 795 0 432 0 787 0 790 0
|
||||
3 358 4 795 3 l795 -3 0 -787z m1645 -8 l0 -795 -797 -3 -798 -2 0 800 0 800
|
||||
798 -2 797 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0
|
||||
0 -800z m1640 0 l0 -800 -795 0 c-523 0 -795 3 -795 10 0 6 0 363 0 795 0 432
|
||||
0 787 0 790 0 3 358 5 795 5 l795 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2
|
||||
0 800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -797 2 -798 3 -3 785 c-1
|
||||
432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1641 796 c2 -2 3 -362 1
|
||||
-800 l-2 -796 -798 2 -797 3 -3 785 c-1 432 0 791 3 798 3 9 172 12 798 12
|
||||
437 0 796 -2 798 -4z m1644 -796 l0 -795 -797 -3 -798 -2 0 800 0 800 798 -2
|
||||
797 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z
|
||||
m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0 0 -800z m1650 0 l0
|
||||
-800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -797 2
|
||||
-798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3
|
||||
785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1650 0 l0 -800
|
||||
-800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -797 2 -798 3
|
||||
-3 798 -2 797 800 0 800 0 0 -800z m1650 0 l0 -800 -802 2 -803 3 -3 785 c-1
|
||||
432 0 791 3 798 3 9 174 12 805 12 l800 0 0 -800z m1640 0 l0 -800 -800 0
|
||||
-800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -800 0 -800 0 0 800
|
||||
0 800 800 0 800 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798
|
||||
-2 797 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0
|
||||
-800z m1640 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m-32870
|
||||
-1632 c0 -434 0 -792 0 -798 0 -7 -272 -10 -795 -10 -523 0 -795 3 -795 10 0
|
||||
6 0 363 0 795 0 432 0 787 0 790 0 3 358 4 795 3 l795 -3 0 -787z m1645 -8 l0
|
||||
-795 -797 -3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -800
|
||||
0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800 7 l793 0 0 -800z m1640 0 l0
|
||||
-800 -795 0 c-523 0 -795 3 -795 10 0 6 0 363 0 795 0 432 0 787 0 790 0 3
|
||||
358 5 795 5 l795 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798
|
||||
-2 797 -3 0 -795z m1643 -2 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3
|
||||
4 362 6 797 5 l791 -3 3 -797z m1643 798 c2 -2 3 -362 1 -800 l-2 -796 -798 2
|
||||
-797 3 -3 785 c-1 432 0 791 3 798 3 9 172 12 798 12 437 0 796 -2 798 -4z
|
||||
m1644 -796 l0 -795 -797 -3 -798 -2 0 793 c0 437 3 797 7 800 3 4 362 6 797 5
|
||||
l791 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4
|
||||
363 7 800 7 l793 0 0 -800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0
|
||||
795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3
|
||||
-797z m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7 800
|
||||
7 l793 0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3 785 c-1 432 0 791 3 798 3
|
||||
9 173 12 800 12 l795 0 0 -800z m1648 -2 l2 -798 -800 0 -800 0 0 793 c0 437
|
||||
3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1640 0 l2 -798 -800 0 -800 0 0
|
||||
793 c0 437 3 797 7 800 3 4 362 6 797 5 l791 -3 3 -797z m1650 -1 l2 -797
|
||||
-802 2 -803 3 -3 785 c-1 432 0 791 3 798 3 10 169 12 802 10 l798 -3 3 -798z
|
||||
m1640 1 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791
|
||||
-3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 363 7
|
||||
800 7 l793 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0 800 0 800 798 -2 797
|
||||
-3 0 -795z m1643 -2 l2 -798 -800 0 -800 0 0 800 0 800 798 -2 797 -3 3 -797z
|
||||
m1640 0 l2 -798 -800 0 -800 0 0 793 c0 437 3 797 7 800 3 4 362 6 797 5 l791
|
||||
-3 3 -797z m-16430 -1649 l-3 -794 -797 -3 -798 -2 0 800 0 800 793 2 c435 2
|
||||
795 0 800 -3 4 -3 6 -363 5 -800z m13150 0 l-3 -794 -797 -3 -798 -2 0 800 0
|
||||
800 793 2 c435 2 795 0 800 -3 4 -3 6 -363 5 -800z m-29585 4 l-3 -798 -795 0
|
||||
-795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1645 0 l-3 -798 -797 -3 -798 -2
|
||||
0 800 0 800 800 0 800 0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2
|
||||
797 800 0 800 0 0 -800z m1640 0 l0 -800 -795 2 -795 3 -3 798 -2 797 798 0
|
||||
797 0 0 -800z m1648 3 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2
|
||||
-797z m1640 0 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z
|
||||
m1647 5 c0 -517 -3 -796 -10 -800 -12 -9 -1556 -11 -1579 -2 -14 6 -16 85 -16
|
||||
800 l0 794 803 0 802 0 0 -792z m1643 -5 l-3 -798 -795 0 -795 0 -3 798 -2
|
||||
797 800 0 800 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0
|
||||
800 0 -2 -797z m1640 0 l-3 -798 -792 -3 -793 -2 0 800 0 800 795 0 795 0 -2
|
||||
-797z m3290 0 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z
|
||||
m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1648 3
|
||||
l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1640 0 l-3 -798
|
||||
-795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1650 0 l-3 -798 -800 0
|
||||
-800 0 -3 798 -2 797 805 0 805 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3
|
||||
798 -2 797 800 0 800 0 -2 -797z m1642 -3 l0 -800 -797 2 -798 3 -3 798 -2
|
||||
797 800 0 800 0 0 -800z m3288 3 l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0
|
||||
800 0 -2 -797z m1640 0 l-3 -798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2
|
||||
-797z m-32868 -853 c0 -5 0 -364 0 -797 l0 -788 -795 0 -795 0 0 788 c0 433 0
|
||||
792 0 797 0 7 272 10 795 10 523 0 795 -3 795 -10z m1645 -790 l0 -795 -797
|
||||
-3 -798 -2 0 800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0
|
||||
0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -795 2 -795 3 0 788 c0 433
|
||||
0 792 0 797 0 7 272 10 795 10 l795 0 0 -800z m1645 0 l0 -795 -797 -3 -798
|
||||
-2 0 800 0 800 798 -2 797 -3 0 -795z m1643 3 l-3 -798 -795 0 -795 0 -3 785
|
||||
c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 -2 -797z m1642 7 c0 -434 0
|
||||
-793 0 -797 0 -5 -359 -8 -797 -8 l-798 0 -3 785 c-1 432 0 791 3 798 3 9 173
|
||||
12 800 12 l795 0 0 -790z m1645 -10 l0 -795 -797 -3 -798 -2 0 800 0 800 798
|
||||
-2 797 -3 0 -795z m1645 0 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0 0
|
||||
-800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0 0 -800z m1648 3
|
||||
l-3 -798 -797 -3 -798 -2 0 800 0 800 800 0 800 0 -2 -797z m1642 -3 l0 -800
|
||||
-797 2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1640 0 l0 -800 -797 2 -798
|
||||
3 -3 785 c-1 432 0 791 3 798 3 9 173 12 800 12 l795 0 0 -800z m1648 3 l-3
|
||||
-798 -795 0 -795 0 -3 798 -2 797 800 0 800 0 -2 -797z m1642 -3 l0 -800 -797
|
||||
2 -798 3 -3 798 -2 797 800 0 800 0 0 -800z m1648 3 l-3 -798 -800 0 -800 0
|
||||
-3 785 c-1 432 0 791 3 798 3 9 174 12 805 12 l800 0 -2 -797z m1642 -3 l0
|
||||
-800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1640 0 l0 -800 -797 2
|
||||
-798 3 -3 798 -2 797 800 0 800 0 0 -800z m1645 0 l0 -795 -797 -3 -798 -2 0
|
||||
800 0 800 798 -2 797 -3 0 -795z m1645 0 l0 -800 -800 0 -800 0 0 800 0 800
|
||||
800 0 800 0 0 -800z m1640 0 l0 -800 -797 2 -798 3 -3 798 -2 797 800 0 800 0
|
||||
0 -800z m-32870 -850 c0 -5 0 -363 0 -795 0 -432 0 -789 0 -795 0 -7 -272 -10
|
||||
-795 -10 -523 0 -795 3 -795 10 0 6 0 363 0 795 0 432 0 790 0 795 0 7 272 10
|
||||
795 10 523 0 795 -3 795 -10z m1645 -795 l0 -800 -795 0 -795 0 -3 803 -2 802
|
||||
797 -2 798 -3 0 -800z m1645 0 l0 -805 -797 2 -798 3 -3 803 -2 802 800 0 800
|
||||
0 0 -805z m1640 0 l0 -805 -795 0 c-523 0 -795 3 -795 10 0 6 0 363 0 795 0
|
||||
432 0 790 0 795 0 7 272 10 795 10 l795 0 0 -805z m1645 0 l0 -800 -795 0
|
||||
-795 0 -3 803 -2 802 797 -2 798 -3 0 -800z m1640 0 l0 -800 -795 0 -795 0 -3
|
||||
790 c-1 435 0 796 3 803 3 10 168 12 797 10 l793 -3 0 -800z m1643 3 l-3 -803
|
||||
-784 -3 c-571 -1 -787 1 -797 9 -12 10 -14 147 -14 799 0 432 3 790 7 793 3 4
|
||||
363 7 800 7 l793 0 -2 -802z m1650 0 l2 -798 -22 -5 c-13 -3 -372 -4 -798 -3
|
||||
l-775 3 -3 803 -2 802 797 -2 798 -3 3 -797z m1640 0 l-3 -803 -795 0 -795 0
|
||||
-3 790 c-1 435 0 796 3 803 3 9 173 12 800 12 l795 0 -2 -802z m1640 0 l-3
|
||||
-803 -792 -3 -793 -2 0 805 0 805 795 0 795 0 -2 -802z m1650 0 l-3 -803 -797
|
||||
-3 -798 -2 0 805 0 805 800 0 800 0 -2 -802z m16432 -818 l0 -1620 -6550 0
|
||||
c-6543 0 -6550 0 -6550 20 0 15 -7 20 -25 20 -18 0 -25 -5 -25 -20 0 -20 -7
|
||||
-20 -800 -20 -793 0 -800 0 -800 20 0 13 -7 20 -20 20 -13 0 -20 -7 -20 -20 0
|
||||
-20 -7 -20 -800 -20 l-800 0 0 800 c0 704 2 800 15 800 8 0 15 7 15 15 0 9 -7
|
||||
18 -15 21 -13 5 -15 103 -15 798 0 436 3 796 7 799 3 4 3691 7 8195 7 l8188 0
|
||||
0 -1620z m-32870 -820 l0 -795 -795 0 -795 0 0 793 c0 435 0 794 0 797 0 3
|
||||
358 4 795 3 l795 -3 0 -795z m1648 -2 l2 -798 -800 0 -800 0 0 800 0 800 798
|
||||
-2 797 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0
|
||||
-800z m1640 0 l0 -800 -795 2 -795 3 0 793 c0 435 0 794 0 797 0 3 358 5 795
|
||||
5 l795 0 0 -800z m1650 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0
|
||||
-800z m1640 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z m1641
|
||||
796 c2 -2 3 -362 1 -800 l-2 -796 -798 2 -797 3 -3 785 c-1 432 0 791 3 798 3
|
||||
9 172 12 798 12 437 0 796 -2 798 -4z m1647 -798 l2 -798 -800 0 -800 0 0 800
|
||||
0 800 798 -2 797 -3 3 -797z m1642 2 l0 -800 -800 0 -800 0 0 800 0 800 800 0
|
||||
800 0 0 -800z m1640 0 l0 -800 -795 0 -795 0 0 800 0 800 795 0 795 0 0 -800z
|
||||
m1650 0 l0 -800 -800 0 -800 0 0 800 0 800 800 0 800 0 0 -800z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 42 KiB |
@ -1,4 +1,7 @@
|
||||
min_slic3r_version = 2.5.0-alpha0
|
||||
1.5.0-alpha0 Added parameters for Arachne perimeter generator. Changed default seam position. Updated output filename format.
|
||||
min_slic3r_version = 2.4.0-rc
|
||||
1.4.6 Added SLA materials. Updated filament profiles.
|
||||
1.4.5 Added MMU2/S profiles for 0.25mm nozzle. Updated FW version. Enabled g-code thumbnails for MK3 family printers. Updated end g-code.
|
||||
1.4.4 Added multiple Fiberlogy filament profiles. Updated Extrudr filament profiles.
|
||||
1.4.3 Added new filament profiles and SLA materials.
|
||||
|
@ -5,7 +5,7 @@
|
||||
name = Prusa Research
|
||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||
config_version = 1.4.5
|
||||
config_version = 1.5.0-alpha0
|
||||
# Where to get the updates from?
|
||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/
|
||||
changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
||||
@ -184,7 +184,7 @@ notes =
|
||||
overhangs = 1
|
||||
only_retract_when_crossing_perimeters = 0
|
||||
ooze_prevention = 0
|
||||
output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode
|
||||
output_filename_format = {input_filename_base}_{layer_height}mm_{initial_filament_type}_{printer_model}_{print_time}.gcode
|
||||
perimeters = 2
|
||||
perimeter_extruder = 1
|
||||
perimeter_extrusion_width = 0.45
|
||||
@ -193,7 +193,7 @@ print_settings_id =
|
||||
raft_layers = 0
|
||||
raft_first_layer_density = 90%
|
||||
resolution = 0
|
||||
seam_position = nearest
|
||||
seam_position = aligned
|
||||
single_extruder_multi_material_priming = 1
|
||||
skirts = 1
|
||||
skirt_distance = 2
|
||||
@ -243,6 +243,14 @@ bottom_solid_min_thickness = 0.5
|
||||
gcode_label_objects = 1
|
||||
infill_anchor = 2.5
|
||||
infill_anchor_max = 12
|
||||
wall_add_middle_threshold = 75%
|
||||
wall_split_middle_threshold = 50%
|
||||
wall_transition_angle = 10
|
||||
wall_transition_filter_deviation = 25%
|
||||
wall_transition_length = 0.4
|
||||
wall_distribution_count = 1
|
||||
min_bead_width = 85%
|
||||
min_feature_size = 0.1
|
||||
|
||||
[print:*MK3*]
|
||||
fill_pattern = grid
|
||||
@ -284,11 +292,19 @@ support_material_interface_spacing = 0.15
|
||||
support_material_spacing = 1
|
||||
support_material_xy_spacing = 150%
|
||||
support_material_contact_distance = 0.1
|
||||
output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode
|
||||
output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{initial_filament_type}_{printer_model}_{print_time}.gcode
|
||||
thick_bridges = 0
|
||||
bridge_flow_ratio = 1
|
||||
bridge_speed = 20
|
||||
wipe_tower_bridging = 6
|
||||
wall_add_middle_threshold = 85%
|
||||
wall_split_middle_threshold = 70%
|
||||
wall_transition_angle = 10
|
||||
wall_transition_filter_deviation = 25%
|
||||
wall_transition_length = 0.25
|
||||
wall_distribution_count = 1
|
||||
min_bead_width = 85%
|
||||
min_feature_size = 0.0625
|
||||
|
||||
[print:*0.25nozzleMK3*]
|
||||
inherits = *0.25nozzle*
|
||||
@ -330,13 +346,21 @@ support_material_extrusion_width = 0.55
|
||||
support_material_contact_distance = 0.15
|
||||
support_material_xy_spacing = 80%
|
||||
support_material_interface_spacing = 0.3
|
||||
output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode
|
||||
output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{initial_filament_type}_{printer_model}_{print_time}.gcode
|
||||
infill_anchor_max = 15
|
||||
top_solid_min_thickness = 0.9
|
||||
bottom_solid_min_thickness = 0.6
|
||||
thick_bridges = 1
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_speed = 25
|
||||
wall_add_middle_threshold = 85%
|
||||
wall_split_middle_threshold = 70%
|
||||
wall_transition_angle = 10
|
||||
wall_transition_filter_deviation = 25%
|
||||
wall_transition_length = 0.6
|
||||
wall_distribution_count = 1
|
||||
min_bead_width = 85%
|
||||
min_feature_size = 0.15
|
||||
|
||||
[print:*0.6nozzleMK3*]
|
||||
inherits = *0.6nozzle*
|
||||
@ -375,7 +399,7 @@ support_material_interface_speed = 100%
|
||||
support_material_spacing = 2
|
||||
support_material_xy_spacing = 80%
|
||||
support_material_threshold = 50
|
||||
output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode
|
||||
output_filename_format = {input_filename_base}_{nozzle_diameter[0]}n_{layer_height}mm_{initial_filament_type}_{printer_model}_{print_time}.gcode
|
||||
fill_pattern = gyroid
|
||||
fill_density = 15%
|
||||
infill_anchor_max = 20
|
||||
@ -398,6 +422,14 @@ bottom_solid_min_thickness = 0.8
|
||||
single_extruder_multi_material_priming = 0
|
||||
thick_bridges = 1
|
||||
overhangs = 0
|
||||
wall_add_middle_threshold = 85%
|
||||
wall_split_middle_threshold = 70%
|
||||
wall_transition_angle = 10
|
||||
wall_transition_filter_deviation = 25%
|
||||
wall_transition_length = 0.8
|
||||
wall_distribution_count = 1
|
||||
min_bead_width = 85%
|
||||
min_feature_size = 0.2
|
||||
|
||||
[print:*soluble_support*]
|
||||
overhangs = 1
|
||||
@ -1719,7 +1751,7 @@ filament_wipe = 0
|
||||
inherits = *PLA*
|
||||
filament_vendor = ColorFabb
|
||||
compatible_printers_condition = nozzle_diameter[0]>0.35 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material)
|
||||
extrusion_multiplier = 1.2
|
||||
extrusion_multiplier = 1.12
|
||||
filament_cost = 80.65
|
||||
filament_density = 3.9
|
||||
filament_spool_weight = 236
|
||||
@ -1730,7 +1762,7 @@ filament_max_volumetric_speed = 9
|
||||
inherits = *PLA*
|
||||
filament_vendor = ColorFabb
|
||||
compatible_printers_condition = nozzle_diameter[0]>0.35 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material)
|
||||
extrusion_multiplier = 1.2
|
||||
extrusion_multiplier = 1.15
|
||||
filament_cost = 80.65
|
||||
filament_density = 3.13
|
||||
filament_spool_weight = 236
|
||||
@ -1741,7 +1773,7 @@ filament_max_volumetric_speed = 8
|
||||
inherits = *PLA*
|
||||
filament_vendor = ColorFabb
|
||||
compatible_printers_condition = nozzle_diameter[0]>0.35 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material)
|
||||
extrusion_multiplier = 1.2
|
||||
extrusion_multiplier = 1.15
|
||||
filament_cost = 80.65
|
||||
filament_density = 3.9
|
||||
filament_spool_weight = 236
|
||||
@ -7319,6 +7351,70 @@ material_vendor = Ameralabs
|
||||
material_colour = #C0C0C0
|
||||
material_print_speed = slow
|
||||
|
||||
[sla_material:BASF Ultracur3D RG 35 @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 4
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFEEE6
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 45 @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 2.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 45 M @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 2.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 4.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFEEE6
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 White @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 4.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFFFFF
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 Black @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 4.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D EL 150 Black @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 2
|
||||
initial_exposure_time = 25
|
||||
material_type = Flexible
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D FL 300 Black @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 3
|
||||
initial_exposure_time = 25
|
||||
material_type = Flexible
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:PrimaCreator Tough Light Grey @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 1.8
|
||||
@ -7418,6 +7514,38 @@ material_type = Tough
|
||||
material_vendor = Peopoly
|
||||
material_colour = #F8F8F8
|
||||
|
||||
[sla_material:Liqcreate Clear Impact @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 7
|
||||
initial_exposure_time = 40
|
||||
material_type = Tough
|
||||
material_vendor = Liqcreate
|
||||
material_colour = #F8F8F8
|
||||
|
||||
[sla_material:Liqcreate Strong X @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 7
|
||||
initial_exposure_time = 40
|
||||
material_type = Tough
|
||||
material_vendor = Liqcreate
|
||||
material_colour = #C0C0C0
|
||||
|
||||
[sla_material:Resinworks 3D Green @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = Resinworks 3D
|
||||
material_colour = #00B900
|
||||
|
||||
[sla_material:3DJake Blue @0.025 SL1S]
|
||||
inherits = *0.025_sl1s*
|
||||
exposure_time = 1.8
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = 3DJake
|
||||
material_colour = #007EFD
|
||||
|
||||
## 0.05 SL1S
|
||||
|
||||
## Prusa Polymers 0.05
|
||||
@ -7641,6 +7769,70 @@ material_vendor = Ameralabs
|
||||
material_colour = #C0C0C0
|
||||
material_print_speed = slow
|
||||
|
||||
[sla_material:BASF Ultracur3D RG 35 @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 4.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFEEE6
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 45 @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 3
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 45 M @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 3
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 5.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFEEE6
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 White @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 5.9
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFFFFF
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 Black @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 5.9
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D EL 150 Black @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 3.8
|
||||
initial_exposure_time = 25
|
||||
material_type = Flexible
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D FL 300 Black @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 4.8
|
||||
initial_exposure_time = 25
|
||||
material_type = Flexible
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:PrimaCreator Tough Light Grey @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 2.4
|
||||
@ -8044,6 +8236,38 @@ material_type = Tough
|
||||
material_vendor = Photocentric
|
||||
material_colour = #808080
|
||||
|
||||
[sla_material:Liqcreate Clear Impact @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 10
|
||||
initial_exposure_time = 40
|
||||
material_type = Tough
|
||||
material_vendor = Liqcreate
|
||||
material_colour = #F8F8F8
|
||||
|
||||
[sla_material:Liqcreate Strong X @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 10
|
||||
initial_exposure_time = 40
|
||||
material_type = Tough
|
||||
material_vendor = Liqcreate
|
||||
material_colour = #C0C0C0
|
||||
|
||||
[sla_material:Resinworks 3D Green @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 7
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = Resinworks 3D
|
||||
material_colour = #00B900
|
||||
|
||||
[sla_material:3DJake Blue @0.05 SL1S]
|
||||
inherits = *0.05_sl1s*
|
||||
exposure_time = 2
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = 3DJake
|
||||
material_colour = #007EFD
|
||||
|
||||
## 0.1 SL1S
|
||||
|
||||
## Prusa Polymers 0.1
|
||||
@ -8267,6 +8491,70 @@ material_vendor = Ameralabs
|
||||
material_colour = #C0C0C0
|
||||
material_print_speed = slow
|
||||
|
||||
[sla_material:BASF Ultracur3D RG 35 @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 10
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFEEE6
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 45 @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 7.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 45 M @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 4.5
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 9
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFEEE6
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 White @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 9
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #FFFFFF
|
||||
|
||||
[sla_material:BASF Ultracur3D ST 80 Black @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 9
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D EL 150 Black @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 5
|
||||
initial_exposure_time = 25
|
||||
material_type = Flexible
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:BASF Ultracur3D FL 300 Black @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 6
|
||||
initial_exposure_time = 25
|
||||
material_type = Flexible
|
||||
material_vendor = BASF
|
||||
material_colour = #595959
|
||||
|
||||
[sla_material:PrimaCreator Tough Light Grey @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 3
|
||||
@ -8348,6 +8636,38 @@ material_type = Tough
|
||||
material_vendor = Peopoly
|
||||
material_colour = #F8F8F8
|
||||
|
||||
[sla_material:Liqcreate Clear Impact @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 20
|
||||
initial_exposure_time = 40
|
||||
material_type = Tough
|
||||
material_vendor = Liqcreate
|
||||
material_colour = #F8F8F8
|
||||
|
||||
[sla_material:Liqcreate Strong X @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 20
|
||||
initial_exposure_time = 40
|
||||
material_type = Tough
|
||||
material_vendor = Liqcreate
|
||||
material_colour = #C0C0C0
|
||||
|
||||
[sla_material:Resinworks 3D Green @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 13
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = Resinworks 3D
|
||||
material_colour = #00B900
|
||||
|
||||
[sla_material:3DJake Blue @0.1 SL1S]
|
||||
inherits = *0.1_sl1s*
|
||||
exposure_time = 3
|
||||
initial_exposure_time = 25
|
||||
material_type = Tough
|
||||
material_vendor = 3DJake
|
||||
material_colour = #007EFD
|
||||
|
||||
[printer:*common*]
|
||||
printer_technology = FFF
|
||||
bed_shape = 0x0,250x0,250x210,0x210
|
||||
|
@ -1,4 +1,5 @@
|
||||
min_slic3r_version = 2.4.1-rc1
|
||||
1.0.1 Fix missing AzteQ Industrial ABS material for 0.6, 0.8 nozzle, enabled elefant foot compensation
|
||||
1.0.0 Added AzteQ Industrial profiles for 0.8 nozzle, updated spool weight and filament cost, some minor setting improvements
|
||||
min_slic3r_version = 2.3.2-alpha0
|
||||
0.0.9 Added AzteQ Industrial materials PC/ABS (Fillamentum), PC-Max (Polymaker), Nylon FX256 (Fillamentum), Added DeltiQ 2 materials Nylon PA12 (Fiberlogy), Nylon CF15 Carbon (Fillamentum), PEBA 90A - FlexFill (Fillamentum), MoldLay (Wax-Alike), disabled retract only when crossing perimeters, some minor setting improvements
|
||||
|
@ -6,7 +6,7 @@
|
||||
name = TriLAB
|
||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||
config_version = 1.0.0
|
||||
config_version = 1.0.1
|
||||
# Where to get the updates from?
|
||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/TriLAB/
|
||||
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
||||
@ -118,7 +118,7 @@ complete_objects = 0
|
||||
default_acceleration = 2000
|
||||
dont_support_bridges = 0
|
||||
draft_shield = 0
|
||||
elefant_foot_compensation = 0.0
|
||||
elefant_foot_compensation = 0.1
|
||||
ensure_vertical_shell_thickness = 0
|
||||
external_perimeter_extrusion_width = 0.45
|
||||
external_perimeter_speed = 30
|
||||
@ -338,6 +338,7 @@ support_material_extrusion_width = 0.55
|
||||
support_material_interface_spacing = 0.6
|
||||
support_material_xy_spacing = 0.9
|
||||
top_infill_extrusion_width = 0.6
|
||||
elefant_foot_compensation = 0.2
|
||||
|
||||
[print:DeltiQ 0.30mm Strong @0.6 nozzle]
|
||||
inherits = DeltiQ 0.30mm Normal @0.6 nozzle
|
||||
@ -356,7 +357,7 @@ bottom_solid_min_thickness = 1.2
|
||||
bridge_flow_ratio = 0.90
|
||||
bridge_speed = 20
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_FAMILY_DQ.*/ and nozzle_diameter[0]==0.8
|
||||
elefant_foot_compensation = 0.0
|
||||
elefant_foot_compensation = 0.2
|
||||
external_perimeter_extrusion_width = 0.80
|
||||
external_perimeter_speed = 30
|
||||
extrusion_width = 0.80
|
||||
@ -415,7 +416,7 @@ complete_objects = 0
|
||||
default_acceleration = 2000
|
||||
dont_support_bridges = 0
|
||||
draft_shield = 0
|
||||
elefant_foot_compensation = 0
|
||||
elefant_foot_compensation = 0.1
|
||||
ensure_vertical_shell_thickness = 0
|
||||
external_perimeter_extrusion_width = 0.45
|
||||
external_perimeter_speed = 30
|
||||
@ -558,6 +559,7 @@ support_material_extrusion_width = 0.55
|
||||
support_material_interface_spacing = 0.6
|
||||
support_material_xy_spacing = 0.9
|
||||
top_infill_extrusion_width = 0.6
|
||||
elefant_foot_compensation = 0.2
|
||||
|
||||
[print:AzteQ Industrial 0.30mm Strong @0.6 nozzle]
|
||||
inherits = AzteQ Industrial 0.30mm Normal @0.6 nozzle
|
||||
@ -579,7 +581,7 @@ bottom_solid_min_thickness = 0.7
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_speed = 30
|
||||
dont_support_bridges = 0
|
||||
elefant_foot_compensation = 0
|
||||
elefant_foot_compensation = 0.2
|
||||
ensure_vertical_shell_thickness = 0
|
||||
external_perimeter_extrusion_width = 0.8
|
||||
external_perimeter_speed = 30
|
||||
@ -1413,9 +1415,11 @@ filament_spool_weight = 229
|
||||
|
||||
[filament:AzteQ Industrial - ABS - ExtraFill (Fillamentum) @0.6 nozzle]
|
||||
inherits = AzteQ Industrial - ABS - ExtraFill (Fillamentum)
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.6
|
||||
|
||||
[filament:AzteQ Industrial - ABS - ExtraFill (Fillamentum) @0.8 nozzle]
|
||||
inherits = AzteQ Industrial - ABS - ExtraFill (Fillamentum)
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_TRILAB.*/ and printer_notes=~/.*PRINTER_MODEL_AQI.*/ and nozzle_diameter[0]==0.8
|
||||
extrusion_multiplier = 0.95
|
||||
|
||||
[filament:AzteQ Industrial - PC/ABS - (Fillamentum)]
|
||||
|
@ -1,2 +1,4 @@
|
||||
min_slic3r_version = 2.4.2
|
||||
1.0.1 Added 350mm Voron v1 variant. Updated max print heights. Removed redundant v1 volcano nozzle variants.
|
||||
min_slic3r_version = 2.4.0-beta0
|
||||
1.0.0 Initial version
|
||||
|
@ -7,7 +7,7 @@
|
||||
name = Voron
|
||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||
config_version = 1.0.0
|
||||
config_version = 1.0.1
|
||||
# Where to get the updates from?
|
||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Voron/
|
||||
|
||||
@ -72,21 +72,30 @@ default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON
|
||||
|
||||
[printer_model:Voron_v1_250_afterburner]
|
||||
name = Voron v1 250mm3
|
||||
variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2
|
||||
variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8
|
||||
technology = FFF
|
||||
family = Voron v1 Afterburner
|
||||
bed_model = printbed-v1-250.stl
|
||||
bed_texture = bedtexture-v1-250.png
|
||||
default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON
|
||||
default_materials = Basic PLA @VORON; Basic PET @VORON; Basic ABS @VORON
|
||||
|
||||
[printer_model:Voron_v1_300_afterburner]
|
||||
name = Voron v1 300mm3
|
||||
variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2
|
||||
variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8
|
||||
technology = FFF
|
||||
family = Voron v1 Afterburner
|
||||
bed_model = printbed-v1-300.stl
|
||||
bed_texture = bedtexture-v1-300.png
|
||||
default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON
|
||||
default_materials = Basic PLA @VORON; Basic PET @VORON; Basic ABS @VORON
|
||||
|
||||
[printer_model:Voron_v1_350_afterburner]
|
||||
name = Voron v1 350mm3
|
||||
variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8
|
||||
technology = FFF
|
||||
family = Voron v1 Afterburner
|
||||
bed_model = printbed-v1-350.stl
|
||||
bed_texture = bedtexture-v2-350.png
|
||||
default_materials = Basic PLA @VORON; Basic PET @VORON; Basic ABS @VORON
|
||||
|
||||
[printer_model:Voron_v0_120]
|
||||
name = Voron Zero 120mm3
|
||||
@ -239,21 +248,21 @@ retract_speed = 50
|
||||
[printer:*Voron_v2_250*]
|
||||
inherits = *common*
|
||||
bed_shape = 0x0,250x0,250x250,0x250
|
||||
max_print_height = 250
|
||||
max_print_height = 230
|
||||
printer_model = Voron_v2_250
|
||||
printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6
|
||||
|
||||
[printer:*Voron_v2_300*]
|
||||
inherits = *common*
|
||||
bed_shape = 0x0,300x0,300x300,0x300
|
||||
max_print_height = 300
|
||||
max_print_height = 280
|
||||
printer_model = Voron_v2_300
|
||||
printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6
|
||||
|
||||
[printer:*Voron_v2_350*]
|
||||
inherits = *common*
|
||||
bed_shape = 0x0,350x0,350x350,0x350
|
||||
max_print_height = 350
|
||||
max_print_height = 330
|
||||
printer_model = Voron_v2_350
|
||||
printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6
|
||||
|
||||
@ -282,10 +291,17 @@ printer_notes = Unoffical profile.\nE3DV6
|
||||
[printer:*Voron_v1_300_afterburner*]
|
||||
inherits = *common*; *afterburner*
|
||||
bed_shape = 0x0,300x0,300x300,0x300
|
||||
max_print_height = 230
|
||||
max_print_height = 280
|
||||
printer_model = Voron_v1_300_afterburner
|
||||
printer_notes = Unoffical profile.\nE3DV6
|
||||
|
||||
[printer:*Voron_v1_350_afterburner*]
|
||||
inherits = *common*; *afterburner*
|
||||
bed_shape = 0x0,350x0,350x350,0x350
|
||||
max_print_height = 330
|
||||
printer_model = Voron_v1_350_afterburner
|
||||
printer_notes = Unoffical profile.\nE3DV6
|
||||
|
||||
[printer:*Voron_v0_120*]
|
||||
inherits = *common*
|
||||
bed_shape = 0x0,120x0,120x120,0x120
|
||||
@ -455,6 +471,24 @@ inherits = *Voron_v1_300_afterburner*; *0.6nozzle*
|
||||
[printer:Voron_v1_300_afterburner 0.8 nozzle]
|
||||
inherits = *Voron_v1_300_afterburner*; *0.8nozzle*
|
||||
|
||||
[printer:Voron_v1_350_afterburner 0.25 nozzle]
|
||||
inherits = *Voron_v1_350_afterburner*; *0.25nozzle*
|
||||
|
||||
[printer:Voron_v1_350_afterburner 0.3 nozzle]
|
||||
inherits = *Voron_v1_350_afterburner*; *0.3nozzle*
|
||||
|
||||
[printer:Voron_v1_350_afterburner 0.4 nozzle]
|
||||
inherits = *Voron_v1_350_afterburner*; *0.4nozzle*
|
||||
|
||||
[printer:Voron_v1_350_afterburner 0.5 nozzle]
|
||||
inherits = *Voron_v1_350_afterburner*; *0.5nozzle*
|
||||
|
||||
[printer:Voron_v1_350_afterburner 0.6 nozzle]
|
||||
inherits = *Voron_v1_350_afterburner*; *0.6nozzle*
|
||||
|
||||
[printer:Voron_v1_350_afterburner 0.8 nozzle]
|
||||
inherits = *Voron_v1_350_afterburner*; *0.8nozzle*
|
||||
|
||||
[printer:Voron_v2_250_afterburner 0.25 nozzle]
|
||||
inherits = *Voron_v2_250_afterburner*; *0.25nozzle*
|
||||
|
||||
@ -652,7 +686,7 @@ fill_angle = 45
|
||||
fill_density = 15%
|
||||
fill_pattern = gyroid
|
||||
first_layer_acceleration = 1000
|
||||
first_layer_height = 75%
|
||||
first_layer_height = 0.2
|
||||
first_layer_speed = 30
|
||||
gap_fill_speed = 40
|
||||
gcode_comments = 0
|
||||
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 39 KiB |
@ -4,3 +4,4 @@
|
||||
add_subdirectory(its_neighbor_index)
|
||||
# add_subdirectory(opencsg)
|
||||
#add_subdirectory(aabb-evaluation)
|
||||
add_subdirectory(wx_gl_test)
|
24
sandboxes/wx_gl_test/CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
project(wxGL_Test)
|
||||
|
||||
add_executable(wxgltest WIN32 main.cpp )
|
||||
|
||||
set (wxWidgets_CONFIG_OPTIONS "--toolkit=gtk${SLIC3R_GTK}")
|
||||
find_package(wxWidgets 3.1 REQUIRED COMPONENTS core base gl html)
|
||||
find_package(OpenGL REQUIRED)
|
||||
find_package(NanoSVG REQUIRED)
|
||||
include(${wxWidgets_USE_FILE})
|
||||
|
||||
target_include_directories(wxgltest PRIVATE ${wxWidgets_INCLUDE_DIRS})
|
||||
target_compile_definitions(wxgltest PRIVATE ${wxWidgets_DEFINITIONS})
|
||||
target_compile_definitions(wxgltest PUBLIC -DwxDEBUG_LEVEL=0)
|
||||
|
||||
target_link_libraries(wxgltest ${wxWidgets_LIBRARIES}
|
||||
OpenGL::GL
|
||||
OpenGL::EGL
|
||||
NanoSVG::nanosvgrast
|
||||
# png16
|
||||
# X11
|
||||
X11 wayland-client wayland-egl
|
||||
)
|
221
sandboxes/wx_gl_test/main.cpp
Normal file
@ -0,0 +1,221 @@
|
||||
#include <iostream>
|
||||
#include <utility>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
// For compilers that support precompilation, includes "wx/wx.h".
|
||||
#include <wx/wxprec.h>
|
||||
#ifndef WX_PRECOMP
|
||||
#include <wx/wx.h>
|
||||
#endif
|
||||
|
||||
#include <wx/tglbtn.h>
|
||||
#include <wx/combobox.h>
|
||||
#include <wx/msgdlg.h>
|
||||
#include <wx/glcanvas.h>
|
||||
#include <wx/notebook.h>
|
||||
|
||||
class Renderer {
|
||||
protected:
|
||||
wxGLCanvas *m_canvas;
|
||||
std::unique_ptr<wxGLContext> m_context;
|
||||
public:
|
||||
|
||||
Renderer(wxGLCanvas *c): m_canvas{c} {
|
||||
m_context = std::make_unique<wxGLContext>(m_canvas);
|
||||
}
|
||||
|
||||
wxGLContext * context() { return m_context.get(); }
|
||||
const wxGLContext * context() const { return m_context.get(); }
|
||||
|
||||
void set_active()
|
||||
{
|
||||
m_canvas->SetCurrent(*m_context);
|
||||
|
||||
// Set the current clear color to sky blue and the current drawing color to
|
||||
// white.
|
||||
glClearColor(0.1, 0.39, 0.88, 1.0);
|
||||
glColor3f(1.0, 1.0, 1.0);
|
||||
|
||||
// Tell the rendering engine not to draw backfaces. Without this code,
|
||||
// all four faces of the tetrahedron would be drawn and it is possible
|
||||
// that faces farther away could be drawn after nearer to the viewer.
|
||||
// Since there is only one closed polyhedron in the whole scene,
|
||||
// eliminating the drawing of backfaces gives us the realism we need.
|
||||
// THIS DOES NOT WORK IN GENERAL.
|
||||
glEnable(GL_CULL_FACE);
|
||||
glCullFace(GL_BACK);
|
||||
|
||||
// Set the camera lens so that we have a perspective viewing volume whose
|
||||
// horizontal bounds at the near clipping plane are -2..2 and vertical
|
||||
// bounds are -1.5..1.5. The near clipping plane is 1 unit from the camera
|
||||
// and the far clipping plane is 40 units away.
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glFrustum(-2, 2, -1.5, 1.5, 1, 40);
|
||||
|
||||
// Set up transforms so that the tetrahedron which is defined right at
|
||||
// the origin will be rotated and moved into the view volume. First we
|
||||
// rotate 70 degrees around y so we can see a lot of the left side.
|
||||
// Then we rotate 50 degrees around x to "drop" the top of the pyramid
|
||||
// down a bit. Then we move the object back 3 units "into the screen".
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0, 0, -3);
|
||||
glRotatef(50, 1, 0, 0);
|
||||
glRotatef(70, 0, 1, 0);
|
||||
}
|
||||
|
||||
void draw_scene(long w, long h)
|
||||
{
|
||||
glViewport(0, 0, GLsizei(w), GLsizei(h));
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
// Draw a white grid "floor" for the tetrahedron to sit on.
|
||||
glColor3f(1.0, 1.0, 1.0);
|
||||
glBegin(GL_LINES);
|
||||
for (GLfloat i = -2.5; i <= 2.5; i += 0.25) {
|
||||
glVertex3f(i, 0, 2.5); glVertex3f(i, 0, -2.5);
|
||||
glVertex3f(2.5, 0, i); glVertex3f(-2.5, 0, i);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
// Draw the tetrahedron. It is a four sided figure, so when defining it
|
||||
// with a triangle strip we have to repeat the last two vertices.
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glColor3f(1, 1, 1); glVertex3f(0, 2, 0);
|
||||
glColor3f(1, 0, 0); glVertex3f(-1, 0, 1);
|
||||
glColor3f(0, 1, 0); glVertex3f(1, 0, 1);
|
||||
glColor3f(0, 0, 1); glVertex3f(0, 0, -1.4);
|
||||
glColor3f(1, 1, 1); glVertex3f(0, 2, 0);
|
||||
glColor3f(1, 0, 0); glVertex3f(-1, 0, 1);
|
||||
glEnd();
|
||||
|
||||
glFlush();
|
||||
}
|
||||
|
||||
void swap_buffers() { m_canvas->SwapBuffers(); }
|
||||
};
|
||||
|
||||
// The top level frame of the application.
|
||||
class MyFrame: public wxFrame
|
||||
{
|
||||
wxGLCanvas *m_canvas;
|
||||
std::unique_ptr<Renderer> m_renderer;
|
||||
|
||||
public:
|
||||
MyFrame(const wxString & title,
|
||||
const wxPoint & pos,
|
||||
const wxSize & size);
|
||||
|
||||
wxGLCanvas * canvas() { return m_canvas; }
|
||||
const wxGLCanvas * canvas() const { return m_canvas; }
|
||||
};
|
||||
|
||||
class App : public wxApp {
|
||||
MyFrame *m_frame = nullptr;
|
||||
wxString m_fname;
|
||||
public:
|
||||
bool OnInit() override {
|
||||
|
||||
m_frame = new MyFrame("Wayland wxNotebook issue", wxDefaultPosition, wxSize(1024, 768));
|
||||
m_frame->Show( true );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
wxIMPLEMENT_APP(App);
|
||||
|
||||
MyFrame::MyFrame(const wxString &title, const wxPoint &pos, const wxSize &size):
|
||||
wxFrame(nullptr, wxID_ANY, title, pos, size)
|
||||
{
|
||||
wxMenu *menuFile = new wxMenu;
|
||||
menuFile->Append(wxID_OPEN);
|
||||
menuFile->Append(wxID_EXIT);
|
||||
wxMenuBar *menuBar = new wxMenuBar;
|
||||
menuBar->Append( menuFile, "&File" );
|
||||
SetMenuBar( menuBar );
|
||||
|
||||
auto notebookpanel = new wxPanel(this);
|
||||
auto notebook = new wxNotebook(notebookpanel, wxID_ANY);
|
||||
auto maintab = new wxPanel(notebook);
|
||||
|
||||
m_canvas = new wxGLCanvas(maintab,
|
||||
wxID_ANY,
|
||||
nullptr,
|
||||
wxDefaultPosition,
|
||||
wxDefaultSize,
|
||||
wxWANTS_CHARS | wxFULL_REPAINT_ON_RESIZE);
|
||||
|
||||
m_renderer = std::make_unique<Renderer>(m_canvas);
|
||||
|
||||
wxPanel *control_panel = new wxPanel(maintab);
|
||||
|
||||
auto controlsizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
auto console_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
std::vector<wxString> combolist = {"One", "Two", "Three"};
|
||||
auto combobox = new wxComboBox(control_panel, wxID_ANY, combolist[0],
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
int(combolist.size()), combolist.data());
|
||||
|
||||
auto sz = new wxBoxSizer(wxHORIZONTAL);
|
||||
sz->Add(new wxStaticText(control_panel, wxID_ANY, "Choose number"), 0,
|
||||
wxALL | wxALIGN_CENTER, 5);
|
||||
sz->Add(combobox, 1, wxALL | wxEXPAND, 5);
|
||||
console_sizer->Add(sz, 0, wxEXPAND);
|
||||
|
||||
auto btn1 = new wxToggleButton(control_panel, wxID_ANY, "Button1");
|
||||
console_sizer->Add(btn1, 0, wxALL | wxEXPAND, 5);
|
||||
|
||||
auto btn2 = new wxToggleButton(control_panel, wxID_ANY, "Button2");
|
||||
btn2->SetValue(true);
|
||||
console_sizer->Add(btn2, 0, wxALL | wxEXPAND, 5);
|
||||
|
||||
controlsizer->Add(console_sizer, 1, wxEXPAND);
|
||||
|
||||
control_panel->SetSizer(controlsizer);
|
||||
|
||||
auto maintab_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
maintab_sizer->Add(m_canvas, 1, wxEXPAND);
|
||||
maintab_sizer->Add(control_panel, 0);
|
||||
maintab->SetSizer(maintab_sizer);
|
||||
|
||||
notebook->AddPage(maintab, "Main");
|
||||
|
||||
wxTextCtrl* textCtrl1 = new wxTextCtrl(notebook, wxID_ANY, L"Tab 2 Contents");
|
||||
notebook->AddPage(textCtrl1, "Dummy");
|
||||
|
||||
auto notebooksizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
notebooksizer->Add(notebook, 1, wxEXPAND);
|
||||
notebookpanel->SetSizer(notebooksizer);
|
||||
|
||||
auto topsizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
topsizer->Add(notebookpanel, 1, wxEXPAND);
|
||||
SetSizer(topsizer);
|
||||
SetMinSize(size);
|
||||
|
||||
Bind(wxEVT_MENU, [this](wxCommandEvent &) {
|
||||
wxFileDialog dlg(this, "Select file", wxEmptyString,
|
||||
wxEmptyString, "*.*", wxFD_OPEN|wxFD_FILE_MUST_EXIST);
|
||||
dlg.ShowModal();
|
||||
}, wxID_OPEN);
|
||||
|
||||
Bind(wxEVT_MENU, [this](wxCommandEvent &) {
|
||||
Close();
|
||||
}, wxID_EXIT);
|
||||
|
||||
Bind(wxEVT_SHOW, [this](wxShowEvent &) {
|
||||
m_renderer->set_active();
|
||||
|
||||
m_canvas->Bind(wxEVT_PAINT, [this](wxPaintEvent &){
|
||||
wxPaintDC dc(m_canvas);
|
||||
|
||||
const wxSize sz = m_canvas->GetClientSize();
|
||||
m_renderer->draw_scene(sz.x, sz.y);
|
||||
m_renderer->swap_buffers();
|
||||
});
|
||||
});
|
||||
}
|
@ -92,7 +92,7 @@ if (SLIC3R_GUI)
|
||||
string(REGEX MATCH "wxexpat" WX_EXPAT_BUILTIN ${wxWidgets_LIBRARIES})
|
||||
if (EXPAT_FOUND AND NOT WX_EXPAT_BUILTIN)
|
||||
list(FILTER wxWidgets_LIBRARIES EXCLUDE REGEX expat)
|
||||
list(APPEND wxWidgets_LIBRARIES EXPAT::EXPAT)
|
||||
list(APPEND wxWidgets_LIBRARIES libexpat)
|
||||
endif ()
|
||||
|
||||
# This is an issue in the new wxWidgets cmake build, doesn't deal with librt
|
||||
|
@ -837,6 +837,9 @@ extern "C" {
|
||||
"leak:libnvidia-tls.so\n" // For NVidia driver.
|
||||
"leak:terminator_CreateDevice\n" // For Intel Vulkan drivers.
|
||||
"leak:swrast_dri.so\n" // For Mesa 3D software driver.
|
||||
"leak:amdgpu_dri.so\n" // For AMD driver.
|
||||
"leak:libdrm_amdgpu.so\n" // For AMD driver.
|
||||
"leak:libdbus-1.so\n" // For D-Bus library. Unsure if it is a leak or not.
|
||||
;
|
||||
}
|
||||
}
|
||||
|
@ -66,16 +66,25 @@ public:
|
||||
return this->success;
|
||||
}
|
||||
|
||||
void unload_opengl_dll()
|
||||
bool unload_opengl_dll()
|
||||
{
|
||||
if (this->hOpenGL) {
|
||||
BOOL released = FreeLibrary(this->hOpenGL);
|
||||
if (released)
|
||||
printf("System OpenGL library released\n");
|
||||
if (this->hOpenGL != nullptr) {
|
||||
if (::FreeLibrary(this->hOpenGL) != FALSE) {
|
||||
if (::GetModuleHandle(L"opengl32.dll") == nullptr) {
|
||||
printf("System OpenGL library successfully released\n");
|
||||
this->hOpenGL = nullptr;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
printf("System OpenGL library released but not removed\n");
|
||||
}
|
||||
else
|
||||
printf("System OpenGL library NOT released\n");
|
||||
this->hOpenGL = nullptr;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool is_version_greater_or_equal_to(unsigned int major, unsigned int minor) const
|
||||
@ -270,20 +279,26 @@ int wmain(int argc, wchar_t **argv)
|
||||
// https://wiki.qt.io/Cross_compiling_Mesa_for_Windows
|
||||
// http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/
|
||||
if (load_mesa) {
|
||||
opengl_version_check.unload_opengl_dll();
|
||||
wchar_t path_to_mesa[MAX_PATH + 1] = { 0 };
|
||||
wcscpy(path_to_mesa, path_to_exe);
|
||||
wcscat(path_to_mesa, L"mesa\\opengl32.dll");
|
||||
printf("Loading MESA OpenGL library: %S\n", path_to_mesa);
|
||||
HINSTANCE hInstance_OpenGL = LoadLibraryExW(path_to_mesa, nullptr, 0);
|
||||
if (hInstance_OpenGL == nullptr) {
|
||||
printf("MESA OpenGL library was not loaded\n");
|
||||
} else
|
||||
printf("MESA OpenGL library was loaded sucessfully\n");
|
||||
bool res = opengl_version_check.unload_opengl_dll();
|
||||
if (!res) {
|
||||
MessageBox(nullptr, L"PrusaSlicer was unable to automatically switch to MESA OpenGL library\nPlease, try to run the application using the '--sw-renderer' option.\n",
|
||||
L"PrusaSlicer Warning", MB_OK);
|
||||
return -1;
|
||||
}
|
||||
else {
|
||||
wchar_t path_to_mesa[MAX_PATH + 1] = { 0 };
|
||||
wcscpy(path_to_mesa, path_to_exe);
|
||||
wcscat(path_to_mesa, L"mesa\\opengl32.dll");
|
||||
printf("Loading MESA OpenGL library: %S\n", path_to_mesa);
|
||||
HINSTANCE hInstance_OpenGL = LoadLibraryExW(path_to_mesa, nullptr, 0);
|
||||
if (hInstance_OpenGL == nullptr)
|
||||
printf("MESA OpenGL library was not loaded\n");
|
||||
else
|
||||
printf("MESA OpenGL library was loaded sucessfully\n");
|
||||
}
|
||||
}
|
||||
#endif /* SLIC3R_GUI */
|
||||
|
||||
|
||||
wchar_t path_to_slic3r[MAX_PATH + 1] = { 0 };
|
||||
wcscpy(path_to_slic3r, path_to_exe);
|
||||
wcscat(path_to_slic3r, L"PrusaSlicer.dll");
|
||||
|
@ -2290,6 +2290,12 @@ void Clipper::ProcessHorizontal(TEdge *horzEdge)
|
||||
|
||||
if (horzEdge->OutIdx >= 0 && !IsOpen) //note: may be done multiple times
|
||||
{
|
||||
#ifdef CLIPPERLIB_USE_XYZ
|
||||
if (dir == dLeftToRight)
|
||||
SetZ(e->Curr, *horzEdge, *e);
|
||||
else
|
||||
SetZ(e->Curr, *e, *horzEdge);
|
||||
#endif
|
||||
op1 = AddOutPt(horzEdge, e->Curr);
|
||||
TEdge* eNextHorz = m_SortedEdges;
|
||||
while (eNextHorz)
|
||||
@ -2614,6 +2620,9 @@ void Clipper::ProcessEdgesAtTopOfScanbeam(const cInt topY)
|
||||
{
|
||||
e->Curr.x() = TopX( *e, topY );
|
||||
e->Curr.y() = topY;
|
||||
#ifdef CLIPPERLIB_USE_XYZ
|
||||
e->Curr.z() = topY == e->Top.y() ? e->Top.z() : (topY == e->Bot.y() ? e->Bot.z() : 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
//When StrictlySimple and 'e' is being touched by another edge, then
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "IndexedMesh.hpp"
|
||||
#include "Concurrency.hpp"
|
||||
#include "AABBMesh.hpp"
|
||||
#include <Execution/ExecutionTBB.hpp>
|
||||
|
||||
#include <libslic3r/AABBTreeIndirect.hpp>
|
||||
#include <libslic3r/TriangleMesh.hpp>
|
||||
@ -12,9 +12,7 @@
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
namespace sla {
|
||||
|
||||
class IndexedMesh::AABBImpl {
|
||||
class AABBMesh::AABBImpl {
|
||||
private:
|
||||
AABBTreeIndirect::Tree3f m_tree;
|
||||
double m_triangle_ray_epsilon;
|
||||
@ -68,7 +66,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
template<class M> void IndexedMesh::init(const M &mesh, bool calculate_epsilon)
|
||||
template<class M> void AABBMesh::init(const M &mesh, bool calculate_epsilon)
|
||||
{
|
||||
BoundingBoxf3 bb = bounding_box(mesh);
|
||||
m_ground_level += bb.min(Z);
|
||||
@ -77,73 +75,86 @@ template<class M> void IndexedMesh::init(const M &mesh, bool calculate_epsilon)
|
||||
m_aabb->init(*m_tm, calculate_epsilon);
|
||||
}
|
||||
|
||||
IndexedMesh::IndexedMesh(const indexed_triangle_set& tmesh, bool calculate_epsilon)
|
||||
: m_aabb(new AABBImpl()), m_tm(&tmesh)
|
||||
AABBMesh::AABBMesh(const indexed_triangle_set &tmesh, bool calculate_epsilon)
|
||||
: m_tm(&tmesh)
|
||||
, m_aabb(new AABBImpl())
|
||||
, m_vfidx{tmesh}
|
||||
, m_fnidx{its_face_neighbors(tmesh)}
|
||||
{
|
||||
init(tmesh, calculate_epsilon);
|
||||
}
|
||||
|
||||
IndexedMesh::IndexedMesh(const TriangleMesh &mesh, bool calculate_epsilon)
|
||||
: m_aabb(new AABBImpl()), m_tm(&mesh.its)
|
||||
AABBMesh::AABBMesh(const TriangleMesh &mesh, bool calculate_epsilon)
|
||||
: m_tm(&mesh.its)
|
||||
, m_aabb(new AABBImpl())
|
||||
, m_vfidx{mesh.its}
|
||||
, m_fnidx{its_face_neighbors(mesh.its)}
|
||||
{
|
||||
init(mesh, calculate_epsilon);
|
||||
}
|
||||
|
||||
IndexedMesh::~IndexedMesh() {}
|
||||
AABBMesh::~AABBMesh() {}
|
||||
|
||||
IndexedMesh::IndexedMesh(const IndexedMesh &other):
|
||||
m_tm(other.m_tm), m_ground_level(other.m_ground_level),
|
||||
m_aabb( new AABBImpl(*other.m_aabb) ) {}
|
||||
AABBMesh::AABBMesh(const AABBMesh &other)
|
||||
: m_tm(other.m_tm)
|
||||
, m_ground_level(other.m_ground_level)
|
||||
, m_aabb(new AABBImpl(*other.m_aabb))
|
||||
, m_vfidx{other.m_vfidx}
|
||||
, m_fnidx{other.m_fnidx}
|
||||
{}
|
||||
|
||||
|
||||
IndexedMesh &IndexedMesh::operator=(const IndexedMesh &other)
|
||||
AABBMesh &AABBMesh::operator=(const AABBMesh &other)
|
||||
{
|
||||
m_tm = other.m_tm;
|
||||
m_ground_level = other.m_ground_level;
|
||||
m_aabb.reset(new AABBImpl(*other.m_aabb)); return *this;
|
||||
m_aabb.reset(new AABBImpl(*other.m_aabb));
|
||||
m_vfidx = other.m_vfidx;
|
||||
m_fnidx = other.m_fnidx;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
IndexedMesh &IndexedMesh::operator=(IndexedMesh &&other) = default;
|
||||
AABBMesh &AABBMesh::operator=(AABBMesh &&other) = default;
|
||||
|
||||
IndexedMesh::IndexedMesh(IndexedMesh &&other) = default;
|
||||
AABBMesh::AABBMesh(AABBMesh &&other) = default;
|
||||
|
||||
|
||||
|
||||
const std::vector<Vec3f>& IndexedMesh::vertices() const
|
||||
const std::vector<Vec3f>& AABBMesh::vertices() const
|
||||
{
|
||||
return m_tm->vertices;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const std::vector<Vec3i>& IndexedMesh::indices() const
|
||||
const std::vector<Vec3i>& AABBMesh::indices() const
|
||||
{
|
||||
return m_tm->indices;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const Vec3f& IndexedMesh::vertices(size_t idx) const
|
||||
const Vec3f& AABBMesh::vertices(size_t idx) const
|
||||
{
|
||||
return m_tm->vertices[idx];
|
||||
}
|
||||
|
||||
|
||||
|
||||
const Vec3i& IndexedMesh::indices(size_t idx) const
|
||||
const Vec3i& AABBMesh::indices(size_t idx) const
|
||||
{
|
||||
return m_tm->indices[idx];
|
||||
}
|
||||
|
||||
|
||||
Vec3d IndexedMesh::normal_by_face_id(int face_id) const {
|
||||
Vec3d AABBMesh::normal_by_face_id(int face_id) const {
|
||||
|
||||
return its_unnormalized_normal(*m_tm, face_id).cast<double>().normalized();
|
||||
}
|
||||
|
||||
|
||||
IndexedMesh::hit_result
|
||||
IndexedMesh::query_ray_hit(const Vec3d &s, const Vec3d &dir) const
|
||||
AABBMesh::hit_result
|
||||
AABBMesh::query_ray_hit(const Vec3d &s, const Vec3d &dir) const
|
||||
{
|
||||
assert(is_approx(dir.norm(), 1.));
|
||||
igl::Hit hit{-1, -1, 0.f, 0.f, 0.f};
|
||||
@ -171,10 +182,10 @@ IndexedMesh::query_ray_hit(const Vec3d &s, const Vec3d &dir) const
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::vector<IndexedMesh::hit_result>
|
||||
IndexedMesh::query_ray_hits(const Vec3d &s, const Vec3d &dir) const
|
||||
std::vector<AABBMesh::hit_result>
|
||||
AABBMesh::query_ray_hits(const Vec3d &s, const Vec3d &dir) const
|
||||
{
|
||||
std::vector<IndexedMesh::hit_result> outs;
|
||||
std::vector<AABBMesh::hit_result> outs;
|
||||
std::vector<igl::Hit> hits;
|
||||
m_aabb->intersect_ray(*m_tm, s, dir, hits);
|
||||
|
||||
@ -192,7 +203,7 @@ IndexedMesh::query_ray_hits(const Vec3d &s, const Vec3d &dir) const
|
||||
// Convert the igl::Hit into hit_result
|
||||
outs.reserve(hits.size());
|
||||
for (const igl::Hit& hit : hits) {
|
||||
outs.emplace_back(IndexedMesh::hit_result(*this));
|
||||
outs.emplace_back(AABBMesh::hit_result(*this));
|
||||
outs.back().m_t = double(hit.t);
|
||||
outs.back().m_dir = dir;
|
||||
outs.back().m_source = s;
|
||||
@ -207,8 +218,8 @@ IndexedMesh::query_ray_hits(const Vec3d &s, const Vec3d &dir) const
|
||||
|
||||
|
||||
#ifdef SLIC3R_HOLE_RAYCASTER
|
||||
IndexedMesh::hit_result IndexedMesh::filter_hits(
|
||||
const std::vector<IndexedMesh::hit_result>& object_hits) const
|
||||
AABBMesh::hit_result IndexedMesh::filter_hits(
|
||||
const std::vector<AABBMesh::hit_result>& object_hits) const
|
||||
{
|
||||
assert(! m_holes.empty());
|
||||
hit_result out(*this);
|
||||
@ -304,7 +315,7 @@ IndexedMesh::hit_result IndexedMesh::filter_hits(
|
||||
#endif
|
||||
|
||||
|
||||
double IndexedMesh::squared_distance(const Vec3d &p, int& i, Vec3d& c) const {
|
||||
double AABBMesh::squared_distance(const Vec3d &p, int& i, Vec3d& c) const {
|
||||
double sqdst = 0;
|
||||
Eigen::Matrix<double, 1, 3> pp = p;
|
||||
Eigen::Matrix<double, 1, 3> cc;
|
||||
@ -313,143 +324,4 @@ double IndexedMesh::squared_distance(const Vec3d &p, int& i, Vec3d& c) const {
|
||||
return sqdst;
|
||||
}
|
||||
|
||||
|
||||
static bool point_on_edge(const Vec3d& p, const Vec3d& e1, const Vec3d& e2,
|
||||
double eps = 0.05)
|
||||
{
|
||||
using Line3D = Eigen::ParametrizedLine<double, 3>;
|
||||
|
||||
auto line = Line3D::Through(e1, e2);
|
||||
double d = line.distance(p);
|
||||
return std::abs(d) < eps;
|
||||
}
|
||||
|
||||
PointSet normals(const PointSet& points,
|
||||
const IndexedMesh& mesh,
|
||||
double eps,
|
||||
std::function<void()> thr, // throw on cancel
|
||||
const std::vector<unsigned>& pt_indices)
|
||||
{
|
||||
if (points.rows() == 0 || mesh.vertices().empty() || mesh.indices().empty())
|
||||
return {};
|
||||
|
||||
std::vector<unsigned> range = pt_indices;
|
||||
if (range.empty()) {
|
||||
range.resize(size_t(points.rows()), 0);
|
||||
std::iota(range.begin(), range.end(), 0);
|
||||
}
|
||||
|
||||
PointSet ret(range.size(), 3);
|
||||
|
||||
// for (size_t ridx = 0; ridx < range.size(); ++ridx)
|
||||
ccr::for_each(size_t(0), range.size(),
|
||||
[&ret, &mesh, &points, thr, eps, &range](size_t ridx) {
|
||||
thr();
|
||||
unsigned el = range[ridx];
|
||||
auto eidx = Eigen::Index(el);
|
||||
int faceid = 0;
|
||||
Vec3d p;
|
||||
|
||||
mesh.squared_distance(points.row(eidx), faceid, p);
|
||||
|
||||
auto trindex = mesh.indices(faceid);
|
||||
|
||||
const Vec3d &p1 = mesh.vertices(trindex(0)).cast<double>();
|
||||
const Vec3d &p2 = mesh.vertices(trindex(1)).cast<double>();
|
||||
const Vec3d &p3 = mesh.vertices(trindex(2)).cast<double>();
|
||||
|
||||
// We should check if the point lies on an edge of the hosting
|
||||
// triangle. If it does then all the other triangles using the
|
||||
// same two points have to be searched and the final normal should
|
||||
// be some kind of aggregation of the participating triangle
|
||||
// normals. We should also consider the cases where the support
|
||||
// point lies right on a vertex of its triangle. The procedure is
|
||||
// the same, get the neighbor triangles and calculate an average
|
||||
// normal.
|
||||
|
||||
// mark the vertex indices of the edge. ia and ib marks and edge
|
||||
// ic will mark a single vertex.
|
||||
int ia = -1, ib = -1, ic = -1;
|
||||
|
||||
if (std::abs((p - p1).norm()) < eps) {
|
||||
ic = trindex(0);
|
||||
} else if (std::abs((p - p2).norm()) < eps) {
|
||||
ic = trindex(1);
|
||||
} else if (std::abs((p - p3).norm()) < eps) {
|
||||
ic = trindex(2);
|
||||
} else if (point_on_edge(p, p1, p2, eps)) {
|
||||
ia = trindex(0);
|
||||
ib = trindex(1);
|
||||
} else if (point_on_edge(p, p2, p3, eps)) {
|
||||
ia = trindex(1);
|
||||
ib = trindex(2);
|
||||
} else if (point_on_edge(p, p1, p3, eps)) {
|
||||
ia = trindex(0);
|
||||
ib = trindex(2);
|
||||
}
|
||||
|
||||
// vector for the neigboring triangles including the detected one.
|
||||
std::vector<size_t> neigh;
|
||||
if (ic >= 0) { // The point is right on a vertex of the triangle
|
||||
for (size_t n = 0; n < mesh.indices().size(); ++n) {
|
||||
thr();
|
||||
Vec3i ni = mesh.indices(n);
|
||||
if ((ni(X) == ic || ni(Y) == ic || ni(Z) == ic))
|
||||
neigh.emplace_back(n);
|
||||
}
|
||||
} else if (ia >= 0 && ib >= 0) { // the point is on and edge
|
||||
// now get all the neigboring triangles
|
||||
for (size_t n = 0; n < mesh.indices().size(); ++n) {
|
||||
thr();
|
||||
Vec3i ni = mesh.indices(n);
|
||||
if ((ni(X) == ia || ni(Y) == ia || ni(Z) == ia) &&
|
||||
(ni(X) == ib || ni(Y) == ib || ni(Z) == ib))
|
||||
neigh.emplace_back(n);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate the normals for the neighboring triangles
|
||||
std::vector<Vec3d> neighnorms;
|
||||
neighnorms.reserve(neigh.size());
|
||||
for (size_t &tri_id : neigh)
|
||||
neighnorms.emplace_back(mesh.normal_by_face_id(tri_id));
|
||||
|
||||
// Throw out duplicates. They would cause trouble with summing. We
|
||||
// will use std::unique which works on sorted ranges. We will sort
|
||||
// by the coefficient-wise sum of the normals. It should force the
|
||||
// same elements to be consecutive.
|
||||
std::sort(neighnorms.begin(), neighnorms.end(),
|
||||
[](const Vec3d &v1, const Vec3d &v2) {
|
||||
return v1.sum() < v2.sum();
|
||||
});
|
||||
|
||||
auto lend = std::unique(neighnorms.begin(), neighnorms.end(),
|
||||
[](const Vec3d &n1, const Vec3d &n2) {
|
||||
// Compare normals for equivalence.
|
||||
// This is controvers stuff.
|
||||
auto deq = [](double a, double b) {
|
||||
return std::abs(a - b) < 1e-3;
|
||||
};
|
||||
return deq(n1(X), n2(X)) &&
|
||||
deq(n1(Y), n2(Y)) &&
|
||||
deq(n1(Z), n2(Z));
|
||||
});
|
||||
|
||||
if (!neighnorms.empty()) { // there were neighbors to count with
|
||||
// sum up the normals and then normalize the result again.
|
||||
// This unification seems to be enough.
|
||||
Vec3d sumnorm(0, 0, 0);
|
||||
sumnorm = std::accumulate(neighnorms.begin(), lend, sumnorm);
|
||||
sumnorm.normalize();
|
||||
ret.row(long(ridx)) = sumnorm;
|
||||
} else { // point lies safely within its triangle
|
||||
Eigen::Vector3d U = p2 - p1;
|
||||
Eigen::Vector3d V = p3 - p1;
|
||||
ret.row(long(ridx)) = U.cross(V).normalized();
|
||||
}
|
||||
});
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
}} // namespace Slic3r::sla
|
||||
} // namespace Slic3r
|
@ -1,10 +1,11 @@
|
||||
#ifndef SLA_INDEXEDMESH_H
|
||||
#define SLA_INDEXEDMESH_H
|
||||
#ifndef PRUSASLICER_AABBMESH_H
|
||||
#define PRUSASLICER_AABBMESH_H
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include <libslic3r/Point.hpp>
|
||||
#include <libslic3r/TriangleMesh.hpp>
|
||||
|
||||
// There is an implementation of a hole-aware raycaster that was eventually
|
||||
// not used in production version. It is now hidden under following define
|
||||
@ -21,25 +22,22 @@ namespace Slic3r {
|
||||
|
||||
class TriangleMesh;
|
||||
|
||||
namespace sla {
|
||||
|
||||
using PointSet = Eigen::MatrixXd;
|
||||
|
||||
/// An index-triangle structure for libIGL functions. Also serves as an
|
||||
/// alternative (raw) input format for the SLASupportTree.
|
||||
// Implemented in libslic3r/SLA/Common.cpp
|
||||
class IndexedMesh {
|
||||
// An index-triangle structure coupled with an AABB index to support ray
|
||||
// casting and other higher level operations.
|
||||
class AABBMesh {
|
||||
class AABBImpl;
|
||||
|
||||
const indexed_triangle_set* m_tm;
|
||||
double m_ground_level = 0, m_gnd_offset = 0;
|
||||
double m_ground_level = 0/*, m_gnd_offset = 0*/;
|
||||
|
||||
std::unique_ptr<AABBImpl> m_aabb;
|
||||
VertexFaceIndex m_vfidx; // vertex-face index
|
||||
std::vector<Vec3i> m_fnidx; // face-neighbor index
|
||||
|
||||
#ifdef SLIC3R_HOLE_RAYCASTER
|
||||
// This holds a copy of holes in the mesh. Initialized externally
|
||||
// by load_mesh setter.
|
||||
std::vector<DrainHole> m_holes;
|
||||
std::vector<sla::DrainHole> m_holes;
|
||||
#endif
|
||||
|
||||
template<class M> void init(const M &mesh, bool calculate_epsilon);
|
||||
@ -48,20 +46,20 @@ public:
|
||||
|
||||
// calculate_epsilon ... calculate epsilon for triangle-ray intersection from an average triangle edge length.
|
||||
// If set to false, a default epsilon is used, which works for "reasonable" meshes.
|
||||
explicit IndexedMesh(const indexed_triangle_set &tmesh, bool calculate_epsilon = false);
|
||||
explicit IndexedMesh(const TriangleMesh &mesh, bool calculate_epsilon = false);
|
||||
explicit AABBMesh(const indexed_triangle_set &tmesh, bool calculate_epsilon = false);
|
||||
explicit AABBMesh(const TriangleMesh &mesh, bool calculate_epsilon = false);
|
||||
|
||||
IndexedMesh(const IndexedMesh& other);
|
||||
IndexedMesh& operator=(const IndexedMesh&);
|
||||
AABBMesh(const AABBMesh& other);
|
||||
AABBMesh& operator=(const AABBMesh&);
|
||||
|
||||
IndexedMesh(IndexedMesh &&other);
|
||||
IndexedMesh& operator=(IndexedMesh &&other);
|
||||
AABBMesh(AABBMesh &&other);
|
||||
AABBMesh& operator=(AABBMesh &&other);
|
||||
|
||||
~IndexedMesh();
|
||||
~AABBMesh();
|
||||
|
||||
inline double ground_level() const { return m_ground_level + m_gnd_offset; }
|
||||
inline void ground_level_offset(double o) { m_gnd_offset = o; }
|
||||
inline double ground_level_offset() const { return m_gnd_offset; }
|
||||
inline double ground_level() const { return m_ground_level /*+ m_gnd_offset*/; }
|
||||
// inline void ground_level_offset(double o) { m_gnd_offset = o; }
|
||||
// inline double ground_level_offset() const { return m_gnd_offset; }
|
||||
|
||||
const std::vector<Vec3f>& vertices() const;
|
||||
const std::vector<Vec3i>& indices() const;
|
||||
@ -73,15 +71,15 @@ public:
|
||||
// m_t holds a distance from m_source to the intersection.
|
||||
double m_t = infty();
|
||||
int m_face_id = -1;
|
||||
const IndexedMesh *m_mesh = nullptr;
|
||||
const AABBMesh *m_mesh = nullptr;
|
||||
Vec3d m_dir;
|
||||
Vec3d m_source;
|
||||
Vec3d m_normal;
|
||||
friend class IndexedMesh;
|
||||
friend class AABBMesh;
|
||||
|
||||
// A valid object of this class can only be obtained from
|
||||
// IndexedMesh::query_ray_hit method.
|
||||
explicit inline hit_result(const IndexedMesh& em): m_mesh(&em) {}
|
||||
explicit inline hit_result(const AABBMesh& em): m_mesh(&em) {}
|
||||
public:
|
||||
// This denotes no hit on the mesh.
|
||||
static inline constexpr double infty() { return std::numeric_limits<double>::infinity(); }
|
||||
@ -109,7 +107,7 @@ public:
|
||||
#ifdef SLIC3R_HOLE_RAYCASTER
|
||||
// Inform the object about location of holes
|
||||
// creates internal copy of the vector
|
||||
void load_holes(const std::vector<DrainHole>& holes) {
|
||||
void load_holes(const std::vector<sla::DrainHole>& holes) {
|
||||
m_holes = holes;
|
||||
}
|
||||
|
||||
@ -118,7 +116,7 @@ public:
|
||||
// This function is currently not used anywhere, it was written when the
|
||||
// holes were subtracted on slices, that is, before we started using CGAL
|
||||
// to actually cut the holes into the mesh.
|
||||
hit_result filter_hits(const std::vector<IndexedMesh::hit_result>& obj_hits) const;
|
||||
hit_result filter_hits(const std::vector<AABBMesh::hit_result>& obj_hits) const;
|
||||
#endif
|
||||
|
||||
// Casting a ray on the mesh, returns the distance where the hit occures.
|
||||
@ -138,16 +136,12 @@ public:
|
||||
Vec3d normal_by_face_id(int face_id) const;
|
||||
|
||||
const indexed_triangle_set * get_triangle_mesh() const { return m_tm; }
|
||||
|
||||
const VertexFaceIndex &vertex_face_index() const { return m_vfidx; }
|
||||
const std::vector<Vec3i> &face_neighbor_index() const { return m_fnidx; }
|
||||
};
|
||||
|
||||
// Calculate the normals for the selected points (from 'points' set) on the
|
||||
// mesh. This will call squared distance for each point.
|
||||
PointSet normals(const PointSet& points,
|
||||
const IndexedMesh& convert_mesh,
|
||||
double eps = 0.05, // min distance from edges
|
||||
std::function<void()> throw_on_cancel = [](){},
|
||||
const std::vector<unsigned>& selected_points = {});
|
||||
|
||||
}} // namespace Slic3r::sla
|
||||
} // namespace Slic3r::sla
|
||||
|
||||
#endif // INDEXEDMESH_H
|
@ -446,6 +446,57 @@ namespace detail {
|
||||
}
|
||||
}
|
||||
|
||||
// Real-time collision detection, Ericson, Chapter 5
|
||||
template<typename Vector>
|
||||
static inline Vector closest_point_to_triangle(const Vector &p, const Vector &a, const Vector &b, const Vector &c)
|
||||
{
|
||||
using Scalar = typename Vector::Scalar;
|
||||
// Check if P in vertex region outside A
|
||||
Vector ab = b - a;
|
||||
Vector ac = c - a;
|
||||
Vector ap = p - a;
|
||||
Scalar d1 = ab.dot(ap);
|
||||
Scalar d2 = ac.dot(ap);
|
||||
if (d1 <= 0 && d2 <= 0)
|
||||
return a;
|
||||
// Check if P in vertex region outside B
|
||||
Vector bp = p - b;
|
||||
Scalar d3 = ab.dot(bp);
|
||||
Scalar d4 = ac.dot(bp);
|
||||
if (d3 >= 0 && d4 <= d3)
|
||||
return b;
|
||||
// Check if P in edge region of AB, if so return projection of P onto AB
|
||||
Scalar vc = d1*d4 - d3*d2;
|
||||
if (a != b && vc <= 0 && d1 >= 0 && d3 <= 0) {
|
||||
Scalar v = d1 / (d1 - d3);
|
||||
return a + v * ab;
|
||||
}
|
||||
// Check if P in vertex region outside C
|
||||
Vector cp = p - c;
|
||||
Scalar d5 = ab.dot(cp);
|
||||
Scalar d6 = ac.dot(cp);
|
||||
if (d6 >= 0 && d5 <= d6)
|
||||
return c;
|
||||
// Check if P in edge region of AC, if so return projection of P onto AC
|
||||
Scalar vb = d5*d2 - d1*d6;
|
||||
if (vb <= 0 && d2 >= 0 && d6 <= 0) {
|
||||
Scalar w = d2 / (d2 - d6);
|
||||
return a + w * ac;
|
||||
}
|
||||
// Check if P in edge region of BC, if so return projection of P onto BC
|
||||
Scalar va = d3*d6 - d5*d4;
|
||||
if (va <= 0 && (d4 - d3) >= 0 && (d5 - d6) >= 0) {
|
||||
Scalar w = (d4 - d3) / ((d4 - d3) + (d5 - d6));
|
||||
return b + w * (c - b);
|
||||
}
|
||||
// P inside face region. Compute Q through its barycentric coordinates (u,v,w)
|
||||
Scalar denom = Scalar(1.0) / (va + vb + vc);
|
||||
Scalar v = vb * denom;
|
||||
Scalar w = vc * denom;
|
||||
return a + ab * v + ac * w; // = u*a + v*b + w*c, u = va * denom = 1.0-v-w
|
||||
};
|
||||
|
||||
|
||||
// Nothing to do with COVID-19 social distancing.
|
||||
template<typename AVertexType, typename AIndexedFaceType, typename ATreeType, typename AVectorType>
|
||||
struct IndexedTriangleSetDistancer {
|
||||
@ -453,74 +504,36 @@ namespace detail {
|
||||
using IndexedFaceType = AIndexedFaceType;
|
||||
using TreeType = ATreeType;
|
||||
using VectorType = AVectorType;
|
||||
using ScalarType = typename VectorType::Scalar;
|
||||
|
||||
const std::vector<VertexType> &vertices;
|
||||
const std::vector<IndexedFaceType> &faces;
|
||||
const TreeType &tree;
|
||||
|
||||
const VectorType origin;
|
||||
|
||||
inline VectorType closest_point_to_origin(size_t primitive_index,
|
||||
ScalarType& squared_distance){
|
||||
const auto &triangle = this->faces[primitive_index];
|
||||
VectorType closest_point = closest_point_to_triangle<VectorType>(origin,
|
||||
this->vertices[triangle(0)].template cast<ScalarType>(),
|
||||
this->vertices[triangle(1)].template cast<ScalarType>(),
|
||||
this->vertices[triangle(2)].template cast<ScalarType>());
|
||||
squared_distance = (origin - closest_point).squaredNorm();
|
||||
return closest_point;
|
||||
}
|
||||
};
|
||||
|
||||
// Real-time collision detection, Ericson, Chapter 5
|
||||
template<typename Vector>
|
||||
static inline Vector closest_point_to_triangle(const Vector &p, const Vector &a, const Vector &b, const Vector &c)
|
||||
{
|
||||
using Scalar = typename Vector::Scalar;
|
||||
// Check if P in vertex region outside A
|
||||
Vector ab = b - a;
|
||||
Vector ac = c - a;
|
||||
Vector ap = p - a;
|
||||
Scalar d1 = ab.dot(ap);
|
||||
Scalar d2 = ac.dot(ap);
|
||||
if (d1 <= 0 && d2 <= 0)
|
||||
return a;
|
||||
// Check if P in vertex region outside B
|
||||
Vector bp = p - b;
|
||||
Scalar d3 = ab.dot(bp);
|
||||
Scalar d4 = ac.dot(bp);
|
||||
if (d3 >= 0 && d4 <= d3)
|
||||
return b;
|
||||
// Check if P in edge region of AB, if so return projection of P onto AB
|
||||
Scalar vc = d1*d4 - d3*d2;
|
||||
if (a != b && vc <= 0 && d1 >= 0 && d3 <= 0) {
|
||||
Scalar v = d1 / (d1 - d3);
|
||||
return a + v * ab;
|
||||
}
|
||||
// Check if P in vertex region outside C
|
||||
Vector cp = p - c;
|
||||
Scalar d5 = ab.dot(cp);
|
||||
Scalar d6 = ac.dot(cp);
|
||||
if (d6 >= 0 && d5 <= d6)
|
||||
return c;
|
||||
// Check if P in edge region of AC, if so return projection of P onto AC
|
||||
Scalar vb = d5*d2 - d1*d6;
|
||||
if (vb <= 0 && d2 >= 0 && d6 <= 0) {
|
||||
Scalar w = d2 / (d2 - d6);
|
||||
return a + w * ac;
|
||||
}
|
||||
// Check if P in edge region of BC, if so return projection of P onto BC
|
||||
Scalar va = d3*d6 - d5*d4;
|
||||
if (va <= 0 && (d4 - d3) >= 0 && (d5 - d6) >= 0) {
|
||||
Scalar w = (d4 - d3) / ((d4 - d3) + (d5 - d6));
|
||||
return b + w * (c - b);
|
||||
}
|
||||
// P inside face region. Compute Q through its barycentric coordinates (u,v,w)
|
||||
Scalar denom = Scalar(1.0) / (va + vb + vc);
|
||||
Scalar v = vb * denom;
|
||||
Scalar w = vc * denom;
|
||||
return a + ab * v + ac * w; // = u*a + v*b + w*c, u = va * denom = 1.0-v-w
|
||||
};
|
||||
|
||||
template<typename IndexedTriangleSetDistancerType, typename Scalar>
|
||||
static inline Scalar squared_distance_to_indexed_triangle_set_recursive(
|
||||
IndexedTriangleSetDistancerType &distancer,
|
||||
template<typename IndexedPrimitivesDistancerType, typename Scalar>
|
||||
static inline Scalar squared_distance_to_indexed_primitives_recursive(
|
||||
IndexedPrimitivesDistancerType &distancer,
|
||||
size_t node_idx,
|
||||
Scalar low_sqr_d,
|
||||
Scalar up_sqr_d,
|
||||
size_t &i,
|
||||
Eigen::PlainObjectBase<typename IndexedTriangleSetDistancerType::VectorType> &c)
|
||||
Eigen::PlainObjectBase<typename IndexedPrimitivesDistancerType::VectorType> &c)
|
||||
{
|
||||
using Vector = typename IndexedTriangleSetDistancerType::VectorType;
|
||||
using Vector = typename IndexedPrimitivesDistancerType::VectorType;
|
||||
|
||||
if (low_sqr_d > up_sqr_d)
|
||||
return low_sqr_d;
|
||||
@ -538,13 +551,9 @@ namespace detail {
|
||||
assert(node.is_valid());
|
||||
if (node.is_leaf())
|
||||
{
|
||||
const auto &triangle = distancer.faces[node.idx];
|
||||
Vector c_candidate = closest_point_to_triangle<Vector>(
|
||||
distancer.origin,
|
||||
distancer.vertices[triangle(0)].template cast<Scalar>(),
|
||||
distancer.vertices[triangle(1)].template cast<Scalar>(),
|
||||
distancer.vertices[triangle(2)].template cast<Scalar>());
|
||||
set_min((c_candidate - distancer.origin).squaredNorm(), node.idx, c_candidate);
|
||||
Scalar sqr_dist;
|
||||
Vector c_candidate = distancer.closest_point_to_origin(node.idx, sqr_dist);
|
||||
set_min(sqr_dist, node.idx, c_candidate);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -561,7 +570,7 @@ namespace detail {
|
||||
{
|
||||
size_t i_left;
|
||||
Vector c_left = c;
|
||||
Scalar sqr_d_left = squared_distance_to_indexed_triangle_set_recursive(distancer, left_node_idx, low_sqr_d, up_sqr_d, i_left, c_left);
|
||||
Scalar sqr_d_left = squared_distance_to_indexed_primitives_recursive(distancer, left_node_idx, low_sqr_d, up_sqr_d, i_left, c_left);
|
||||
set_min(sqr_d_left, i_left, c_left);
|
||||
looked_left = true;
|
||||
};
|
||||
@ -569,13 +578,13 @@ namespace detail {
|
||||
{
|
||||
size_t i_right;
|
||||
Vector c_right = c;
|
||||
Scalar sqr_d_right = squared_distance_to_indexed_triangle_set_recursive(distancer, right_node_idx, low_sqr_d, up_sqr_d, i_right, c_right);
|
||||
Scalar sqr_d_right = squared_distance_to_indexed_primitives_recursive(distancer, right_node_idx, low_sqr_d, up_sqr_d, i_right, c_right);
|
||||
set_min(sqr_d_right, i_right, c_right);
|
||||
looked_right = true;
|
||||
};
|
||||
|
||||
// must look left or right if in box
|
||||
using BBoxScalar = typename IndexedTriangleSetDistancerType::TreeType::BoundingBox::Scalar;
|
||||
using BBoxScalar = typename IndexedPrimitivesDistancerType::TreeType::BoundingBox::Scalar;
|
||||
if (node_left.bbox.contains(distancer.origin.template cast<BBoxScalar>()))
|
||||
look_left();
|
||||
if (node_right.bbox.contains(distancer.origin.template cast<BBoxScalar>()))
|
||||
@ -747,7 +756,7 @@ inline typename VectorType::Scalar squared_distance_to_indexed_triangle_set(
|
||||
auto distancer = detail::IndexedTriangleSetDistancer<VertexType, IndexedFaceType, TreeType, VectorType>
|
||||
{ vertices, faces, tree, point };
|
||||
return tree.empty() ? Scalar(-1) :
|
||||
detail::squared_distance_to_indexed_triangle_set_recursive(distancer, size_t(0), Scalar(0), std::numeric_limits<Scalar>::infinity(), hit_idx_out, hit_point_out);
|
||||
detail::squared_distance_to_indexed_primitives_recursive(distancer, size_t(0), Scalar(0), std::numeric_limits<Scalar>::infinity(), hit_idx_out, hit_point_out);
|
||||
}
|
||||
|
||||
// Decides if exists some triangle in defined radius on a 3D indexed triangle set using a pre-built AABBTreeIndirect::Tree.
|
||||
@ -771,15 +780,15 @@ inline bool is_any_triangle_in_radius(
|
||||
auto distancer = detail::IndexedTriangleSetDistancer<VertexType, IndexedFaceType, TreeType, VectorType>
|
||||
{ vertices, faces, tree, point };
|
||||
|
||||
size_t hit_idx;
|
||||
VectorType hit_point = VectorType::Ones() * (std::nan(""));
|
||||
size_t hit_idx;
|
||||
VectorType hit_point = VectorType::Ones() * (NaN<typename VectorType::Scalar>);
|
||||
|
||||
if(tree.empty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
detail::squared_distance_to_indexed_triangle_set_recursive(distancer, size_t(0), Scalar(0), max_distance_squared, hit_idx, hit_point);
|
||||
detail::squared_distance_to_indexed_primitives_recursive(distancer, size_t(0), Scalar(0), max_distance_squared, hit_idx, hit_point);
|
||||
|
||||
return hit_point.allFinite();
|
||||
}
|
||||
@ -828,22 +837,22 @@ struct Intersecting<Eigen::AlignedBox<CoordType, NumD>> {
|
||||
|
||||
template<class G> auto intersecting(const G &g) { return Intersecting<G>{g}; }
|
||||
|
||||
template<class G> struct Containing {};
|
||||
template<class G> struct Within {};
|
||||
|
||||
// Intersection predicate specialization for box-box intersections
|
||||
template<class CoordType, int NumD>
|
||||
struct Containing<Eigen::AlignedBox<CoordType, NumD>> {
|
||||
struct Within<Eigen::AlignedBox<CoordType, NumD>> {
|
||||
Eigen::AlignedBox<CoordType, NumD> box;
|
||||
|
||||
Containing(const Eigen::AlignedBox<CoordType, NumD> &bb): box{bb} {}
|
||||
Within(const Eigen::AlignedBox<CoordType, NumD> &bb): box{bb} {}
|
||||
|
||||
bool operator() (const typename Tree<NumD, CoordType>::Node &node) const
|
||||
{
|
||||
return box.contains(node.bbox);
|
||||
return node.is_leaf() ? box.contains(node.bbox) : box.intersects(node.bbox);
|
||||
}
|
||||
};
|
||||
|
||||
template<class G> auto containing(const G &g) { return Containing<G>{g}; }
|
||||
template<class G> auto within(const G &g) { return Within<G>{g}; }
|
||||
|
||||
namespace detail {
|
||||
|
||||
@ -858,7 +867,7 @@ void traverse_recurse(const Tree<Dims, T> &tree,
|
||||
if (!pred(tree.node(idx))) return;
|
||||
|
||||
if (tree.node(idx).is_leaf()) {
|
||||
callback(tree.node(idx).idx);
|
||||
callback(tree.node(idx));
|
||||
} else {
|
||||
|
||||
// call this with left and right node idx:
|
||||
|
112
src/libslic3r/AABBTreeLines.hpp
Normal file
@ -0,0 +1,112 @@
|
||||
#ifndef SRC_LIBSLIC3R_AABBTREELINES_HPP_
|
||||
#define SRC_LIBSLIC3R_AABBTREELINES_HPP_
|
||||
|
||||
#include "libslic3r/Point.hpp"
|
||||
#include "libslic3r/EdgeGrid.hpp"
|
||||
#include "libslic3r/AABBTreeIndirect.hpp"
|
||||
#include "libslic3r/Line.hpp"
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
namespace AABBTreeLines {
|
||||
|
||||
namespace detail {
|
||||
|
||||
template<typename ALineType, typename ATreeType, typename AVectorType>
|
||||
struct IndexedLinesDistancer {
|
||||
using LineType = ALineType;
|
||||
using TreeType = ATreeType;
|
||||
using VectorType = AVectorType;
|
||||
using ScalarType = typename VectorType::Scalar;
|
||||
|
||||
const std::vector<LineType> &lines;
|
||||
const TreeType &tree;
|
||||
|
||||
const VectorType origin;
|
||||
|
||||
inline VectorType closest_point_to_origin(size_t primitive_index,
|
||||
ScalarType &squared_distance) {
|
||||
VectorType nearest_point;
|
||||
const LineType &line = lines[primitive_index];
|
||||
squared_distance = line_alg::distance_to_squared(line, origin, &nearest_point);
|
||||
return nearest_point;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// Build a balanced AABB Tree over a vector of float lines, balancing the tree
|
||||
// on centroids of the lines.
|
||||
// Epsilon is applied to the bounding boxes of the AABB Tree to cope with numeric inaccuracies
|
||||
// during tree traversal.
|
||||
template<typename LineType>
|
||||
inline AABBTreeIndirect::Tree<2, typename LineType::Scalar> build_aabb_tree_over_indexed_lines(
|
||||
const std::vector<LineType> &lines,
|
||||
//FIXME do we want to apply an epsilon?
|
||||
const float eps = 0)
|
||||
{
|
||||
using TreeType = AABBTreeIndirect::Tree<2, typename LineType::Scalar>;
|
||||
// using CoordType = typename TreeType::CoordType;
|
||||
using VectorType = typename TreeType::VectorType;
|
||||
using BoundingBox = typename TreeType::BoundingBox;
|
||||
|
||||
struct InputType {
|
||||
size_t idx() const {
|
||||
return m_idx;
|
||||
}
|
||||
const BoundingBox& bbox() const {
|
||||
return m_bbox;
|
||||
}
|
||||
const VectorType& centroid() const {
|
||||
return m_centroid;
|
||||
}
|
||||
|
||||
size_t m_idx;
|
||||
BoundingBox m_bbox;
|
||||
VectorType m_centroid;
|
||||
};
|
||||
|
||||
std::vector<InputType> input;
|
||||
input.reserve(lines.size());
|
||||
const VectorType veps(eps, eps);
|
||||
for (size_t i = 0; i < lines.size(); ++i) {
|
||||
const LineType &line = lines[i];
|
||||
InputType n;
|
||||
n.m_idx = i;
|
||||
n.m_centroid = (line.a + line.b) * 0.5;
|
||||
n.m_bbox = BoundingBox(line.a, line.a);
|
||||
n.m_bbox.extend(line.b);
|
||||
n.m_bbox.min() -= veps;
|
||||
n.m_bbox.max() += veps;
|
||||
input.emplace_back(n);
|
||||
}
|
||||
|
||||
TreeType out;
|
||||
out.build(std::move(input));
|
||||
return out;
|
||||
}
|
||||
|
||||
// Finding a closest line, its closest point and squared distance to the closest point
|
||||
// Returns squared distance to the closest point or -1 if the input is empty.
|
||||
template<typename LineType, typename TreeType, typename VectorType>
|
||||
inline typename VectorType::Scalar squared_distance_to_indexed_lines(
|
||||
const std::vector<LineType> &lines,
|
||||
const TreeType &tree,
|
||||
const VectorType &point,
|
||||
size_t &hit_idx_out,
|
||||
Eigen::PlainObjectBase<VectorType> &hit_point_out)
|
||||
{
|
||||
using Scalar = typename VectorType::Scalar;
|
||||
auto distancer = detail::IndexedLinesDistancer<LineType, TreeType, VectorType>
|
||||
{ lines, tree, point };
|
||||
return tree.empty() ?
|
||||
Scalar(-1) :
|
||||
AABBTreeIndirect::detail::squared_distance_to_indexed_primitives_recursive(distancer, size_t(0), Scalar(0),
|
||||
std::numeric_limits<Scalar>::infinity(), hit_idx_out, hit_point_out);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif /* SRC_LIBSLIC3R_AABBTREELINES_HPP_ */
|
190
src/libslic3r/AStar.hpp
Normal file
@ -0,0 +1,190 @@
|
||||
#ifndef ASTAR_HPP
|
||||
#define ASTAR_HPP
|
||||
|
||||
#include <cmath> // std::isinf() is here
|
||||
#include <unordered_map>
|
||||
|
||||
#include "libslic3r/Point.hpp"
|
||||
#include "libslic3r/MutablePriorityQueue.hpp"
|
||||
|
||||
namespace Slic3r { namespace astar {
|
||||
|
||||
// Input interface for the Astar algorithm. Specialize this struct for a
|
||||
// particular type and implement all the 4 methods and specify the Node type
|
||||
// to register the new type for the astar implementation.
|
||||
template<class T> struct TracerTraits_
|
||||
{
|
||||
// The type of a node used by this tracer. Usually a point in space.
|
||||
using Node = typename T::Node;
|
||||
|
||||
// Call fn for every new node reachable from node 'src'. fn should have the
|
||||
// candidate node as its only argument.
|
||||
template<class Fn>
|
||||
static void foreach_reachable(const T &tracer, const Node &src, Fn &&fn)
|
||||
{
|
||||
tracer.foreach_reachable(src, fn);
|
||||
}
|
||||
|
||||
// Get the distance from node 'a' to node 'b'. This is sometimes referred
|
||||
// to as the g value of a node in AStar context.
|
||||
static float distance(const T &tracer, const Node &a, const Node &b)
|
||||
{
|
||||
return tracer.distance(a, b);
|
||||
}
|
||||
|
||||
// Get the estimated distance heuristic from node 'n' to the destination.
|
||||
// This is referred to as the h value in AStar context.
|
||||
// If node 'n' is the goal, this function should return a negative value.
|
||||
// Note that this heuristic should be admissible (never bigger than the real
|
||||
// cost) in order for Astar to work.
|
||||
static float goal_heuristic(const T &tracer, const Node &n)
|
||||
{
|
||||
return tracer.goal_heuristic(n);
|
||||
}
|
||||
|
||||
// Return a unique identifier (hash) for node 'n'.
|
||||
static size_t unique_id(const T &tracer, const Node &n)
|
||||
{
|
||||
return tracer.unique_id(n);
|
||||
}
|
||||
};
|
||||
|
||||
// Helper definition to get the node type of a tracer
|
||||
template<class T>
|
||||
using TracerNodeT = typename TracerTraits_<remove_cvref_t<T>>::Node;
|
||||
|
||||
constexpr auto Unassigned = std::numeric_limits<size_t>::max();
|
||||
|
||||
template<class Tracer>
|
||||
struct QNode // Queue node. Keeps track of scores g, and h
|
||||
{
|
||||
TracerNodeT<Tracer> node; // The actual node itself
|
||||
size_t queue_id; // Position in the open queue or Unassigned if closed
|
||||
size_t parent; // unique id of the parent or Unassigned
|
||||
|
||||
float g, h;
|
||||
float f() const { return g + h; }
|
||||
|
||||
QNode(TracerNodeT<Tracer> n = {},
|
||||
size_t p = Unassigned,
|
||||
float gval = std::numeric_limits<float>::infinity(),
|
||||
float hval = 0.f)
|
||||
: node{std::move(n)}
|
||||
, parent{p}
|
||||
, queue_id{InvalidQueueID}
|
||||
, g{gval}
|
||||
, h{hval}
|
||||
{}
|
||||
};
|
||||
|
||||
// Run the AStar algorithm on a tracer implementation.
|
||||
// The 'tracer' argument encapsulates the domain (grid, point cloud, etc...)
|
||||
// The 'source' argument is the starting node.
|
||||
// The 'out' argument is the output iterator into which the output nodes are
|
||||
// written. For performance reasons, the order is reverse, from the destination
|
||||
// to the source -- (destination included, source is not).
|
||||
// The 'cached_nodes' argument is an optional associative container to hold a
|
||||
// QNode entry for each visited node. Any compatible container can be used
|
||||
// (like std::map or maps with different allocators, even a sufficiently large
|
||||
// std::vector).
|
||||
//
|
||||
// Note that no destination node is given in the signature. The tracer's
|
||||
// goal_heuristic() method should return a negative value if a node is a
|
||||
// destination node.
|
||||
template<class Tracer,
|
||||
class It,
|
||||
class NodeMap = std::unordered_map<size_t, QNode<Tracer>>>
|
||||
bool search_route(const Tracer &tracer,
|
||||
const TracerNodeT<Tracer> &source,
|
||||
It out,
|
||||
NodeMap &&cached_nodes = {})
|
||||
{
|
||||
using Node = TracerNodeT<Tracer>;
|
||||
using QNode = QNode<Tracer>;
|
||||
using TracerTraits = TracerTraits_<remove_cvref_t<Tracer>>;
|
||||
|
||||
struct LessPred { // Comparison functor needed by the priority queue
|
||||
NodeMap &m;
|
||||
bool operator ()(size_t node_a, size_t node_b) {
|
||||
return m[node_a].f() < m[node_b].f();
|
||||
}
|
||||
};
|
||||
|
||||
auto qopen = make_mutable_priority_queue<size_t, true>(
|
||||
[&cached_nodes](size_t el, size_t qidx) {
|
||||
cached_nodes[el].queue_id = qidx;
|
||||
},
|
||||
LessPred{cached_nodes});
|
||||
|
||||
QNode initial{source, /*parent = */ Unassigned, /*g = */0.f};
|
||||
size_t source_id = TracerTraits::unique_id(tracer, source);
|
||||
cached_nodes[source_id] = initial;
|
||||
qopen.push(source_id);
|
||||
|
||||
size_t goal_id = TracerTraits::goal_heuristic(tracer, source) < 0.f ?
|
||||
source_id :
|
||||
Unassigned;
|
||||
|
||||
while (goal_id == Unassigned && !qopen.empty()) {
|
||||
size_t q_id = qopen.top();
|
||||
qopen.pop();
|
||||
QNode &q = cached_nodes[q_id];
|
||||
|
||||
// This should absolutely be initialized in the cache already
|
||||
assert(!std::isinf(q.g));
|
||||
|
||||
TracerTraits::foreach_reachable(tracer, q.node, [&](const Node &succ_nd) {
|
||||
if (goal_id != Unassigned)
|
||||
return true;
|
||||
|
||||
float h = TracerTraits::goal_heuristic(tracer, succ_nd);
|
||||
float dst = TracerTraits::distance(tracer, q.node, succ_nd);
|
||||
size_t succ_id = TracerTraits::unique_id(tracer, succ_nd);
|
||||
QNode qsucc_nd{succ_nd, q_id, q.g + dst, h};
|
||||
|
||||
if (h < 0.f) {
|
||||
goal_id = succ_id;
|
||||
cached_nodes[succ_id] = qsucc_nd;
|
||||
} else {
|
||||
// If succ_id is not in cache, it gets created with g = infinity
|
||||
QNode &prev_nd = cached_nodes[succ_id];
|
||||
|
||||
if (qsucc_nd.g < prev_nd.g) {
|
||||
// new route is better, apply it:
|
||||
|
||||
// Save the old queue id, it would be lost after the next line
|
||||
size_t queue_id = prev_nd.queue_id;
|
||||
|
||||
// The cache needs to be updated either way
|
||||
prev_nd = qsucc_nd;
|
||||
|
||||
if (queue_id == InvalidQueueID)
|
||||
// was in closed or unqueued, rescheduling
|
||||
qopen.push(succ_id);
|
||||
else // was in open, updating
|
||||
qopen.update(queue_id);
|
||||
}
|
||||
}
|
||||
|
||||
return goal_id != Unassigned;
|
||||
});
|
||||
}
|
||||
|
||||
// Write the output, do not reverse. Clients can do so if they need to.
|
||||
if (goal_id != Unassigned) {
|
||||
const QNode *q = &cached_nodes[goal_id];
|
||||
while (q->parent != Unassigned) {
|
||||
assert(!std::isinf(q->g)); // Uninitialized nodes are NOT allowed
|
||||
|
||||
*out = q->node;
|
||||
++out;
|
||||
q = &cached_nodes[q->parent];
|
||||
}
|
||||
}
|
||||
|
||||
return goal_id != Unassigned;
|
||||
}
|
||||
|
||||
}} // namespace Slic3r::astar
|
||||
|
||||
#endif // ASTAR_HPP
|
@ -230,8 +230,13 @@ static std::string appconfig_md5_hash_line(const std::string_view data)
|
||||
return "# MD5 checksum " + md5_digest_str + "\n";
|
||||
};
|
||||
|
||||
struct ConfigFileInfo {
|
||||
bool correct_checksum {false};
|
||||
bool contains_null {false};
|
||||
};
|
||||
|
||||
// Assume that the last line with the comment inside the config file contains a checksum and that the user didn't modify the config file.
|
||||
static bool verify_config_file_checksum(boost::nowide::ifstream &ifs)
|
||||
static ConfigFileInfo check_config_file_and_verify_checksum(boost::nowide::ifstream &ifs)
|
||||
{
|
||||
auto read_whole_config_file = [&ifs]() -> std::string {
|
||||
std::stringstream ss;
|
||||
@ -240,7 +245,8 @@ static bool verify_config_file_checksum(boost::nowide::ifstream &ifs)
|
||||
};
|
||||
|
||||
ifs.seekg(0, boost::nowide::ifstream::beg);
|
||||
std::string whole_config = read_whole_config_file();
|
||||
const std::string whole_config = read_whole_config_file();
|
||||
const bool contains_null = whole_config.find_first_of('\0') != std::string::npos;
|
||||
|
||||
// The checksum should be on the last line in the config file.
|
||||
if (size_t last_comment_pos = whole_config.find_last_of('#'); last_comment_pos != std::string::npos) {
|
||||
@ -249,9 +255,9 @@ static bool verify_config_file_checksum(boost::nowide::ifstream &ifs)
|
||||
// When the checksum isn't found, the checksum was not saved correctly, it was removed or it is an older config file without the checksum.
|
||||
// If the checksum is incorrect, then the file was either not saved correctly or modified.
|
||||
if (std::string_view(whole_config.c_str() + last_comment_pos, whole_config.size() - last_comment_pos) == appconfig_md5_hash_line({ whole_config.data(), last_comment_pos }))
|
||||
return true;
|
||||
return {true, contains_null};
|
||||
}
|
||||
return false;
|
||||
return {false, contains_null};
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -269,14 +275,25 @@ std::string AppConfig::load(const std::string &path)
|
||||
ifs.open(path);
|
||||
#ifdef WIN32
|
||||
// Verify the checksum of the config file without taking just for debugging purpose.
|
||||
if (!verify_config_file_checksum(ifs))
|
||||
BOOST_LOG_TRIVIAL(info) << "The configuration file " << path <<
|
||||
" has a wrong MD5 checksum or the checksum is missing. This may indicate a file corruption or a harmless user edit.";
|
||||
const ConfigFileInfo config_file_info = check_config_file_and_verify_checksum(ifs);
|
||||
if (!config_file_info.correct_checksum)
|
||||
BOOST_LOG_TRIVIAL(info)
|
||||
<< "The configuration file " << path
|
||||
<< " has a wrong MD5 checksum or the checksum is missing. This may indicate a file corruption or a harmless user edit.";
|
||||
|
||||
if (!config_file_info.correct_checksum && config_file_info.contains_null) {
|
||||
BOOST_LOG_TRIVIAL(info) << "The configuration file " + path + " is corrupted, because it is contains null characters.";
|
||||
throw Slic3r::CriticalException("The configuration file contains null characters.");
|
||||
}
|
||||
|
||||
ifs.seekg(0, boost::nowide::ifstream::beg);
|
||||
#endif
|
||||
pt::read_ini(ifs, tree);
|
||||
} catch (pt::ptree_error& ex) {
|
||||
try {
|
||||
pt::read_ini(ifs, tree);
|
||||
} catch (pt::ptree_error &ex) {
|
||||
throw Slic3r::CriticalException(ex.what());
|
||||
}
|
||||
} catch (Slic3r::CriticalException &ex) {
|
||||
#ifdef WIN32
|
||||
// The configuration file is corrupted, try replacing it with the backup configuration.
|
||||
ifs.close();
|
||||
@ -284,29 +301,29 @@ std::string AppConfig::load(const std::string &path)
|
||||
if (boost::filesystem::exists(backup_path)) {
|
||||
// Compute checksum of the configuration backup file and try to load configuration from it when the checksum is correct.
|
||||
boost::nowide::ifstream backup_ifs(backup_path);
|
||||
if (!verify_config_file_checksum(backup_ifs)) {
|
||||
BOOST_LOG_TRIVIAL(error) << format("Both \"%1%\" and \"%2%\" are corrupted. It isn't possible to restore configuration from the backup.", path, backup_path);
|
||||
if (const ConfigFileInfo config_file_info = check_config_file_and_verify_checksum(backup_ifs); !config_file_info.correct_checksum || config_file_info.contains_null) {
|
||||
BOOST_LOG_TRIVIAL(error) << format(R"(Both "%1%" and "%2%" are corrupted. It isn't possible to restore configuration from the backup.)", path, backup_path);
|
||||
backup_ifs.close();
|
||||
boost::filesystem::remove(backup_path);
|
||||
} else if (std::string error_message; copy_file(backup_path, path, error_message, false) != SUCCESS) {
|
||||
BOOST_LOG_TRIVIAL(error) << format("Configuration file \"%1%\" is corrupted. Failed to restore from backup \"%2%\": %3%", path, backup_path, error_message);
|
||||
BOOST_LOG_TRIVIAL(error) << format(R"(Configuration file "%1%" is corrupted. Failed to restore from backup "%2%": %3%)", path, backup_path, error_message);
|
||||
backup_ifs.close();
|
||||
boost::filesystem::remove(backup_path);
|
||||
} else {
|
||||
BOOST_LOG_TRIVIAL(info) << format("Configuration file \"%1%\" was corrupted. It has been succesfully restored from the backup \"%2%\".", path, backup_path);
|
||||
BOOST_LOG_TRIVIAL(info) << format(R"(Configuration file "%1%" was corrupted. It has been successfully restored from the backup "%2%".)", path, backup_path);
|
||||
// Try parse configuration file after restore from backup.
|
||||
try {
|
||||
ifs.open(path);
|
||||
pt::read_ini(ifs, tree);
|
||||
recovered = true;
|
||||
} catch (pt::ptree_error& ex) {
|
||||
BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\" after it has been restored from backup: %2%", path, ex.what());
|
||||
BOOST_LOG_TRIVIAL(info) << format(R"(Failed to parse configuration file "%1%" after it has been restored from backup: %2%)", path, ex.what());
|
||||
}
|
||||
}
|
||||
} else
|
||||
#endif // WIN32
|
||||
BOOST_LOG_TRIVIAL(info) << format("Failed to parse configuration file \"%1%\": %2%", path, ex.what());
|
||||
if (! recovered) {
|
||||
BOOST_LOG_TRIVIAL(info) << format(R"(Failed to parse configuration file "%1%": %2%)", path, ex.what());
|
||||
if (!recovered) {
|
||||
// Report the initial error of parsing PrusaSlicer.ini.
|
||||
// Error while parsing config file. We'll customize the error message and rethrow to be displayed.
|
||||
// ! But to avoid the use of _utf8 (related to use of wxWidgets)
|
||||
|
79
src/libslic3r/Arachne/BeadingStrategy/BeadingStrategy.cpp
Normal file
@ -0,0 +1,79 @@
|
||||
//Copyright (c) 2022 Ultimaker B.V.
|
||||
//CuraEngine is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
#include <cassert>
|
||||
|
||||
#include "BeadingStrategy.hpp"
|
||||
#include "Point.hpp"
|
||||
|
||||
namespace Slic3r::Arachne
|
||||
{
|
||||
|
||||
BeadingStrategy::BeadingStrategy(coord_t optimal_width, double wall_split_middle_threshold, double wall_add_middle_threshold, coord_t default_transition_length, float transitioning_angle)
|
||||
: optimal_width(optimal_width)
|
||||
, wall_split_middle_threshold(wall_split_middle_threshold)
|
||||
, wall_add_middle_threshold(wall_add_middle_threshold)
|
||||
, default_transition_length(default_transition_length)
|
||||
, transitioning_angle(transitioning_angle)
|
||||
{
|
||||
name = "Unknown";
|
||||
}
|
||||
|
||||
BeadingStrategy::BeadingStrategy(const BeadingStrategy &other)
|
||||
: optimal_width(other.optimal_width)
|
||||
, wall_split_middle_threshold(other.wall_split_middle_threshold)
|
||||
, wall_add_middle_threshold(other.wall_add_middle_threshold)
|
||||
, default_transition_length(other.default_transition_length)
|
||||
, transitioning_angle(other.transitioning_angle)
|
||||
, name(other.name)
|
||||
{}
|
||||
|
||||
coord_t BeadingStrategy::getTransitioningLength(coord_t lower_bead_count) const
|
||||
{
|
||||
if (lower_bead_count == 0)
|
||||
return scaled<coord_t>(0.01);
|
||||
return default_transition_length;
|
||||
}
|
||||
|
||||
float BeadingStrategy::getTransitionAnchorPos(coord_t lower_bead_count) const
|
||||
{
|
||||
coord_t lower_optimum = getOptimalThickness(lower_bead_count);
|
||||
coord_t transition_point = getTransitionThickness(lower_bead_count);
|
||||
coord_t upper_optimum = getOptimalThickness(lower_bead_count + 1);
|
||||
return 1.0 - float(transition_point - lower_optimum) / float(upper_optimum - lower_optimum);
|
||||
}
|
||||
|
||||
std::vector<coord_t> BeadingStrategy::getNonlinearThicknesses(coord_t lower_bead_count) const
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
std::string BeadingStrategy::toString() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
double BeadingStrategy::getSplitMiddleThreshold() const
|
||||
{
|
||||
return wall_split_middle_threshold;
|
||||
}
|
||||
|
||||
double BeadingStrategy::getTransitioningAngle() const
|
||||
{
|
||||
return transitioning_angle;
|
||||
}
|
||||
|
||||
coord_t BeadingStrategy::getOptimalThickness(coord_t bead_count) const
|
||||
{
|
||||
return optimal_width * bead_count;
|
||||
}
|
||||
|
||||
coord_t BeadingStrategy::getTransitionThickness(coord_t lower_bead_count) const
|
||||
{
|
||||
const coord_t lower_ideal_width = getOptimalThickness(lower_bead_count);
|
||||
const coord_t higher_ideal_width = getOptimalThickness(lower_bead_count + 1);
|
||||
const double threshold = lower_bead_count % 2 == 1 ? wall_split_middle_threshold : wall_add_middle_threshold;
|
||||
return lower_ideal_width + threshold * (higher_ideal_width - lower_ideal_width);
|
||||
}
|
||||
|
||||
} // namespace Slic3r::Arachne
|