Fixed crash if toolchange G-code modifies final position,

because the extruder was not set yet.
This commit is contained in:
Vojtech Bubnik 2023-03-29 17:53:23 +02:00
parent ab1813bdc8
commit 7a5639f322

View file

@ -3385,10 +3385,12 @@ Vec2d GCode::point_to_gcode_quantized(const Point &point) const
// convert a model-space scaled point into G-code coordinates
Point GCode::gcode_to_point(const Vec2d &point) const
{
Vec2d extruder_offset = EXTRUDER_CONFIG(extruder_offset);
return Point(
scale_(point(0) - m_origin(0) + extruder_offset(0)),
scale_(point(1) - m_origin(1) + extruder_offset(1)));
Vec2d pt = point - m_origin;
if (const Extruder *extruder = m_writer.extruder(); extruder)
// This function may be called at the very start from toolchange G-code when the extruder is not assigned yet.
pt += m_config.extruder_offset.get_at(extruder->id());
return scaled<coord_t>(pt);
}
} // namespace Slic3r