Fixed Print::validate() to allow for objects protruding below the print bed.

The part of the object below the print bed will simply not be sliced.
This fix also fixes integration tests, which often work with boxes
centered around (0,0,0).
This commit is contained in:
bubnikv 2018-03-14 18:16:17 +01:00
parent 5812ca06d6
commit 4351187ce5

View File

@ -510,6 +510,8 @@ std::string Print::validate() const
{
BoundingBox bed_box_2D = get_extents(Polygon::new_scale(config.bed_shape.values));
BoundingBoxf3 print_volume(Pointf3(unscale(bed_box_2D.min.x), unscale(bed_box_2D.min.y), 0.0), Pointf3(unscale(bed_box_2D.max.x), unscale(bed_box_2D.max.y), config.max_print_height));
// Allow the objects to protrude below the print bed, only the part of the object above the print bed will be sliced.
print_volume.min.z = -1e10;
for (PrintObject *po : this->objects) {
if (! print_volume.contains(po->model_object()->tight_bounding_box(false)))
return "Some objects are outside of the print volume.";