diff --git a/resources/icons/bed/ender3.svg b/resources/icons/bed/ender3.svg
new file mode 100644
index 000000000..06910afdf
--- /dev/null
+++ b/resources/icons/bed/ender3.svg
@@ -0,0 +1,47 @@
+
diff --git a/resources/icons/bed/mini.svg b/resources/icons/bed/mini.svg
new file mode 100644
index 000000000..93c3437bd
--- /dev/null
+++ b/resources/icons/bed/mini.svg
@@ -0,0 +1,70 @@
+
diff --git a/resources/models/ender3_bed.stl b/resources/models/ender3_bed.stl
new file mode 100644
index 000000000..fb8f86d09
Binary files /dev/null and b/resources/models/ender3_bed.stl differ
diff --git a/resources/models/mini_bed.stl b/resources/models/mini_bed.stl
new file mode 100644
index 000000000..a189f851f
Binary files /dev/null and b/resources/models/mini_bed.stl differ
diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp
index 82b512270..d0bab50c6 100644
--- a/src/slic3r/GUI/3DBed.cpp
+++ b/src/slic3r/GUI/3DBed.cpp
@@ -272,27 +272,13 @@ void Bed3D::render(GLCanvas3D& canvas, float theta, float scale_factor) const
switch (m_type)
{
- case MK2:
- {
- render_prusa(canvas, "mk2", theta > 90.0f);
- break;
- }
- case MK3:
- {
- render_prusa(canvas, "mk3", theta > 90.0f);
- break;
- }
- case SL1:
- {
- render_prusa(canvas, "sl1", theta > 90.0f);
- break;
- }
+ case MK2: { render_prusa(canvas, "mk2", theta > 90.0f); break; }
+ case MK3: { render_prusa(canvas, "mk3", theta > 90.0f); break; }
+ case SL1: { render_prusa(canvas, "sl1", theta > 90.0f); break; }
+ case MINI: { render_prusa(canvas, "mini", theta > 90.0f); break; }
+ case ENDER3: { render_prusa(canvas, "ender3", theta > 90.0f); break; }
default:
- case Custom:
- {
- render_custom(canvas, theta > 90.0f);
- break;
- }
+ case Custom: { render_custom(canvas, theta > 90.0f); break; }
}
}
@@ -364,22 +350,38 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const
{
if (curr->config.has("bed_shape"))
{
- if ((curr->vendor != nullptr) && (curr->vendor->name == "Prusa Research") && (shape == dynamic_cast(curr->config.option("bed_shape"))->values))
+ if (curr->vendor != nullptr)
{
- if (boost::contains(curr->name, "SL1"))
+ if ((curr->vendor->name == "Prusa Research") && (shape == dynamic_cast(curr->config.option("bed_shape"))->values))
{
- type = SL1;
- break;
+ if (boost::contains(curr->name, "SL1"))
+ {
+ type = SL1;
+ break;
+ }
+ else if (boost::contains(curr->name, "MK3") || boost::contains(curr->name, "MK2.5"))
+ {
+ type = MK3;
+ break;
+ }
+ else if (boost::contains(curr->name, "MK2"))
+ {
+ type = MK2;
+ break;
+ }
+ else if (boost::contains(curr->name, "MINI"))
+ {
+ type = MINI;
+ break;
+ }
}
- else if (boost::contains(curr->name, "MK3") || boost::contains(curr->name, "MK2.5"))
+ else if ((curr->vendor->name == "Creality") && (shape == dynamic_cast(curr->config.option("bed_shape"))->values))
{
- type = MK3;
- break;
- }
- else if (boost::contains(curr->name, "MK2"))
- {
- type = MK2;
- break;
+ if (boost::contains(curr->name, "ENDER-3"))
+ {
+ type = ENDER3;
+ break;
+ }
}
}
}
diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp
index c9a30e6ec..132836711 100644
--- a/src/slic3r/GUI/3DBed.hpp
+++ b/src/slic3r/GUI/3DBed.hpp
@@ -67,6 +67,8 @@ public:
MK2,
MK3,
SL1,
+ MINI,
+ ENDER3,
Custom,
Num_Types
};