BasicIslandHatcher

class pyslm.hatching.BasicIslandHatcher

Bases: Hatcher

The class extends the standard Hatcher but generates a set of islands of fixed size ( islandWidth) which covers a region. This a common scan strategy adopted across numerous L-PBF (SLM) systems. This scan strategy in particular is designed to have effect of limiting the maximum length of the scan whilst by orientating the scan vectors orthogonal to each other mitigating any preferential distortion or curling due to residual stress in a single direction and any effects to microstructure.

The extension of the base class involves simply overriding the generateHatching() method for creating an infill for the boundaries provided in the primary method within Hatcher.hatch(). The infill must cover the entire boundary. Other attribute and properties can be added to the class to provide further user definable behavior such as:

  • Island Size (islandWidth) - the length of each size of the square island

  • Island Overlap (islandOverlap) - the overlap between adjacent islands

Warning

This method is not optimal and is provided as a reference for the user to improve their own understanding and develop their own form island scan strategies. For optimal performance, it is recommended that the user should refer instead to IslandHatcher.

Attributes Summary

islandOffset

The island offset is the relative distance (hatch spacing) to move the scan vectors between adjacent islands.

islandOverlap

The length of overlap between adjacent islands

islandWidth

The island width

Methods Summary

generateHatching(paths, hatchSpacing[, ...])

Generates un-clipped hatches which is guaranteed to cover the entire polygon region base on the maximum extent of the polygon bounding box.

Attributes Documentation

islandOffset

The island offset is the relative distance (hatch spacing) to move the scan vectors between adjacent islands.

islandOverlap

The length of overlap between adjacent islands

islandWidth

The island width

Methods Documentation

generateHatching(paths, hatchSpacing, hatchAngle=90.0)

Generates un-clipped hatches which is guaranteed to cover the entire polygon region base on the maximum extent of the polygon bounding box.

Parameters:
  • paths (List[ndarray]) – The boundaries that the hatches should fill entirely

  • hatchSpacing (float) – The hatch spacing

  • hatchAngle (float) – The hatch angle (degrees) to rotate the scan vectors

Return type:

ndarray

Returns:

Returns the list of unclipped scan vectors covering the region