mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
Merge remote-tracking branch 'remote/main' into dev/h2d-2
# Conflicts: # src/libslic3r/PrintConfig.cpp # src/slic3r/GUI/ConfigManipulation.cpp
This commit is contained in:
169
src/libslic3r/MaterialType.cpp
Normal file
169
src/libslic3r/MaterialType.cpp
Normal file
@@ -0,0 +1,169 @@
|
||||
#include "MaterialType.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
namespace Slic3r {
|
||||
namespace {
|
||||
constexpr int DEFAULT_MIN_TEMP = 190;
|
||||
constexpr int DEFAULT_MAX_TEMP = 300;
|
||||
constexpr int DEFAULT_CHAMBER_MIN_TEMP = 0;
|
||||
constexpr int DEFAULT_CHAMBER_MAX_TEMP = 100;
|
||||
constexpr double DEFAULT_ADHESION_COEFFICIENT = 1.0;
|
||||
constexpr double DEFAULT_YIELD_STRENGTH = 0.02;
|
||||
constexpr double DEFAULT_THERMAL_LENGTH = 200.0;
|
||||
} // namespace
|
||||
|
||||
const std::vector<MaterialTypeInfo>& MaterialType::all()
|
||||
{
|
||||
static const std::vector<MaterialTypeInfo> material_types = {
|
||||
{"ABS", 190, 300, 50, 65, 1, 0.1 , 100},
|
||||
{"ABS-CF", 220, 300, 50, 65, 1, 0.1 , 100},
|
||||
{"ABS-GF", 240, 280, 50, 65, 1, 0.1 , 100},
|
||||
{"ASA", 220, 300, 50, 65, 1, 0.1 , 100},
|
||||
{"ASA-CF", 230, 300, 50, 65, 1, 0.1 , 100},
|
||||
{"ASA-GF", 240, 300, 50, 65, 1, 0.1 , 100},
|
||||
{"ASA-AERO", 240, 280, 50, 65, 1, 0.1 , 100},
|
||||
{"BVOH", 190, 240, 0, 70, 1, 0.02, 200},
|
||||
{"EVA", 175, 220, 0, 50, 1, 0.02, 200},
|
||||
{"FLEX", 210, 230, 0, 50, 0.5, 0.02, 1000},
|
||||
{"HIPS", 220, 270, 50, 60, 1, 0.02, 200},
|
||||
{"PA", 235, 280, 50, 60, 1, 0.02, 100},
|
||||
{"PA-CF", 240, 315, 50, 60, 1, 0.02, 100},
|
||||
{"PA-GF", 240, 290, 50, 60, 1, 0.02, 100},
|
||||
{"PA6", 260, 300, 50, 60, 1, 0.02, 100},
|
||||
{"PA6-CF", 230, 300, 50, 60, 1, 0.02, 100},
|
||||
{"PA6-GF", 260, 300, 50, 60, 1, 0.02, 100},
|
||||
{"PA11", 275, 295, 50, 60, 1, 0.02, 100},
|
||||
{"PA11-CF", 275, 295, 50, 60, 1, 0.02, 100},
|
||||
{"PA11-GF", 275, 295, 50, 60, 1, 0.02, 100},
|
||||
{"PA12", 250, 270, 50, 60, 1, 0.02, 100},
|
||||
{"PA12-CF", 250, 300, 50, 60, 1, 0.02, 100},
|
||||
{"PA12-GF", 255, 270, 50, 60, 1, 0.02, 100},
|
||||
{"PAHT", 260, 310, 55, 65, 1, 0.02, 200},
|
||||
{"PAHT-CF", 270, 310, 55, 65, 1, 0.02, 200},
|
||||
{"PAHT-GF", 270, 310, 55, 65, 1, 0.02, 200},
|
||||
{"PC", 240, 300, 60, 70, 1, 0.02, 40},
|
||||
{"PC-ABS", 230, 270, 60, 70, 1, 0.02, 80},
|
||||
{"PC-CF", 270, 295, 60, 70, 1, 0.02, 80},
|
||||
{"PC-PBT", 260, 300, 60, 70, 1, 0.02, 40},
|
||||
{"PCL", 130, 170, 0, 45, 1, 0.02, 200},
|
||||
{"PCTG", 220, 300, 0, 55, 2, 0.02, 200},
|
||||
{"PE", 175, 260, 45, 60, 1, 0.02, 200},
|
||||
{"PE-CF", 175, 260, 45, 60, 1, 0.02, 200},
|
||||
{"PE-GF", 230, 270, 45, 60, 1, 0.02, 200},
|
||||
{"PEI-1010", 370, 430, 80, 100, 1, 0.02, 200},
|
||||
{"PEI-1010-CF", 380, 430, 80, 100, 1, 0.02, 200},
|
||||
{"PEI-1010-GF", 380, 430, 80, 100, 1, 0.02, 200},
|
||||
{"PEI-9085", 350, 390, 80, 100, 1, 0.02, 200},
|
||||
{"PEI-9085-CF", 365, 390, 80, 100, 1, 0.02, 200},
|
||||
{"PEI-9085-GF", 370, 390, 80, 100, 1, 0.02, 200},
|
||||
{"PEEK", 350, 460, 80, 100, 1, 0.02, 200},
|
||||
{"PEEK-CF", 380, 410, 80, 100, 1, 0.02, 200},
|
||||
{"PEEK-GF", 375, 410, 80, 100, 1, 0.02, 200},
|
||||
{"PEKK", 325, 400, 80, 100, 1, 0.02, 200},
|
||||
{"PEKK-CF", 360, 400, 80, 100, 1, 0.02, 200},
|
||||
{"PES", 340, 390, 80, 100, 1, 0.02, 200},
|
||||
{"PET", 200, 290, 0, 55, 2, 0.3 , 100},
|
||||
{"PET-CF", 240, 320, 0, 55, 2, 0.3 , 100},
|
||||
{"PET-GF", 280, 320, 0, 55, 2, 0.3 , 100},
|
||||
{"PETG", 190, 260, 0, 55, 2, 0.3 , 100},
|
||||
{"PETG-CF", 230, 290, 0, 55, 1, 0.3 , 100},
|
||||
{"PETG-GF", 210, 270, 0, 55, 1, 0.3 , 100},
|
||||
{"PHA", 190, 250, 0, 55, 1, 0.02, 200},
|
||||
{"PI", 390, 410, 90, 100, 1, 0.02, 200},
|
||||
{"PLA", 180, 240, 0, 45, 1, 0.02, 200},
|
||||
{"PLA-AERO", 220, 270, 0, 55, 1, 0.02, 200},
|
||||
{"PLA-CF", 190, 250, 0, 50, 1, 0.02, 200},
|
||||
{"POM", 210, 250, 50, 65, 1, 0.02, 200},
|
||||
{"PP", 200, 240, 45, 60, 1, 0.02, 200},
|
||||
{"PP-CF", 210, 250, 45, 60, 1, 0.02, 200},
|
||||
{"PP-GF", 220, 260, 45, 60, 1, 0.02, 200},
|
||||
{"PPA-CF", 260, 300, 55, 70, 1, 0.02, 200},
|
||||
{"PPA-GF", 260, 290, 55, 70, 1, 0.02, 200},
|
||||
{"PPS", 300, 345, 90, 100, 1, 0.02, 200},
|
||||
{"PPS-CF", 295, 350, 90, 100, 1, 0.02, 200},
|
||||
{"PPSU", 360, 420, 90, 100, 1, 0.02, 200},
|
||||
{"PSU", 350, 380, 90, 100, 1, 0.02, 200},
|
||||
{"PVA", 185, 250, 0, 60, 1, 0.02, 200},
|
||||
{"PVB", 190, 250, 0, 55, 1, 0.02, 200},
|
||||
{"PVDF", 245, 265, 40, 60, 1, 0.02, 200},
|
||||
{"SBS", 195, 250, 0, 55, 1, 0.02, 200},
|
||||
{"TPI", 420, 445, 90, 100, 1, 0.02, 200},
|
||||
{"TPU", 175, 260, 0, 50, 0.5, 0.02, 1000}
|
||||
};
|
||||
|
||||
return material_types;
|
||||
}
|
||||
|
||||
const MaterialTypeInfo* MaterialType::find(const std::string& name)
|
||||
{
|
||||
const auto& types = all();
|
||||
const auto it = std::find_if(types.begin(), types.end(), [&name](const MaterialTypeInfo& info) { return info.name == name; });
|
||||
return it != types.end() ? &(*it) : nullptr;
|
||||
}
|
||||
|
||||
bool MaterialType::get_temperature_range(const std::string& type, int& min_temp, int& max_temp)
|
||||
{
|
||||
min_temp = DEFAULT_MIN_TEMP;
|
||||
max_temp = DEFAULT_MAX_TEMP;
|
||||
|
||||
if (const auto* info = find(type)) {
|
||||
min_temp = info->min_temp;
|
||||
max_temp = info->max_temp;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MaterialType::get_chamber_temperature_range(const std::string& type, int& chamber_min_temp, int& chamber_max_temp)
|
||||
{
|
||||
chamber_min_temp = DEFAULT_CHAMBER_MIN_TEMP;
|
||||
chamber_max_temp = DEFAULT_CHAMBER_MAX_TEMP;
|
||||
|
||||
if (const auto* info = find(type)) {
|
||||
chamber_min_temp = info->chamber_min_temp;
|
||||
chamber_max_temp = info->chamber_max_temp;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MaterialType::get_adhesion_coefficient(const std::string& type, double& adhesion_coefficient)
|
||||
{
|
||||
adhesion_coefficient = DEFAULT_ADHESION_COEFFICIENT;
|
||||
|
||||
if (const auto* info = find(type)) {
|
||||
adhesion_coefficient = info->adhesion_coefficient;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MaterialType::get_yield_strength(const std::string& type, double& yield_strength)
|
||||
{
|
||||
yield_strength = DEFAULT_YIELD_STRENGTH;
|
||||
|
||||
if (const auto* info = find(type)) {
|
||||
yield_strength = info->yield_strength;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MaterialType::get_thermal_length(const std::string& type, double& thermal_length)
|
||||
{
|
||||
thermal_length = DEFAULT_THERMAL_LENGTH;
|
||||
|
||||
if (const auto* info = find(type)) {
|
||||
thermal_length = info->thermal_length;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace Slic3r
|
||||
Reference in New Issue
Block a user