Skip to content

Commit

Permalink
Merge branch '5.9' into CURA-12275_retract-before-outer-wall-only-wor…
Browse files Browse the repository at this point in the history
…ks-on-the-initial-layer
  • Loading branch information
HellAholic authored Nov 12, 2024
2 parents 3607b06 + f32cb0f commit 57f8e1d
Show file tree
Hide file tree
Showing 5 changed files with 135 additions and 121 deletions.
18 changes: 16 additions & 2 deletions include/LayerPlan.h
Original file line number Diff line number Diff line change
Expand Up @@ -886,9 +886,10 @@ class LayerPlan : public NoCopy
* \param compute_distance_to_bridge_start Whether we should compute the distance to start of bridge. This is
* possible only if PathType is ExtrusionLine and will be ignored otherwise.
* \param func_add_segment The function to be called to actually add an extrusion segment with the given parameters
* \return The index of the last traversed point, and the final position with the scarf seam
*/
template<class PathType>
void addSplitWall(
std::tuple<size_t, Point2LL> addSplitWall(
const PathAdapter<PathType>& wall,
const coord_t wall_length,
const size_t start_idx,
Expand Down Expand Up @@ -931,9 +932,10 @@ class LayerPlan : public NoCopy
* \param scarf_seam Indicates whether we may use a scarf seam for the path
* \param smooth_speed Indicates whether we may use a speed gradient for the path
* \param func_add_segment The function to be called to actually add an extrusion segment with the given parameters
* \return The index of the last traversed point, and the final position with the scarf seam
*/
template<class PathType>
void addWallWithScarfSeam(
std::tuple<size_t, Point2LL> addWallWithScarfSeam(
const PathAdapter<PathType>& wall,
size_t start_idx,
const Settings& settings,
Expand All @@ -947,6 +949,18 @@ class LayerPlan : public NoCopy
const bool smooth_speed,
const AddExtrusionSegmentFunction& func_add_segment);

/*!
* \brief Add a wipe travel after the given path has been extruded
* \tparam PathType The type of path to be processed, either ExtrusionLine or some subclass of Polyline
* \param path The path that has just been extruded
* \param wipe_distance The length of the wipe move to be added
* \param backwards Indicates if the path has been processed backwards
* \param start_index The index of the point where o start printing the path
* \param last_path_position The actual last position of the extruder, which may be slightly forwards on the last printed segment
*/
template<class PathType>
void addWipeTravel(const PathAdapter<PathType>& path, const coord_t wipe_distance, const bool backwards, const size_t start_index, const Point2LL& last_path_position);

/*!
* Pre-calculates the coasting to be applied on the paths
*
Expand Down
9 changes: 2 additions & 7 deletions include/skin.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,14 +135,9 @@ class SkinInfillAreaComputation
void generateRoofingFillAndSkinFill(SliceLayerPart& part);

/*!
* Remove the areas which are directly under air in the top-most surface and directly above air in bottom-most
* surfaces from the \ref SkinPart::inner_infill and save them in the \ref SkinPart::bottom_most_surface_fill and
* \ref SkinPart::top_most_surface_fill (respectively) of the \p part.
*
* \param[in,out] part Where to get the SkinParts to get the outline info from and to store the top and bottom-most
* infill areas
* Generate the top and bottom-most surfaces of the given \p part, i.e. the surfaces that have nothing above or below
*/
void generateTopAndBottomMostSkinFill(SliceLayerPart& part);
void generateTopAndBottomMostSurfaces(SliceLayerPart& part);

/*!
* Helper function to calculate and return the areas which are 'directly' under air.
Expand Down
4 changes: 2 additions & 2 deletions include/sliceDataStorage.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ class SkinPart
//!< roofing and non-roofing.
Shape skin_fill; //!< The part of the skin which is not roofing.
Shape roofing_fill; //!< The inner infill which has air directly above
Shape top_most_surface_fill; //!< The inner infill of the uppermost top layer which has air directly above.
Shape bottom_most_surface_fill; //!< The inner infill of the bottommost bottom layer which has air directly below.
};

/*!
Expand All @@ -69,6 +67,8 @@ class SliceLayerPart
std::vector<SkinPart> skin_parts; //!< The skin parts which are filled for 100% with lines and/or insets.
std::vector<VariableWidthLines> wall_toolpaths; //!< toolpaths for walls, will replace(?) the insets. Binned by inset_idx.
std::vector<VariableWidthLines> infill_wall_toolpaths; //!< toolpaths for the walls of the infill areas. Binned by inset_idx.
Shape top_most_surface; //!< Sub-part of the outline containing the area that is not covered by something above
Shape bottom_most_surface; //!< Sub-part of the outline containing the area that has nothing below

/*!
* The areas inside of the mesh.
Expand Down
Loading

0 comments on commit 57f8e1d

Please sign in to comment.