IslandHatcher

class pyslm.hatching.IslandHatcher

Bases: pyslm.hatching.hatching.Hatcher

IslandHatcher 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 SLM systems. This has the 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 in a single direction and any effects to micro-structure.

Attributes Summary

islandOffset

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

islandOverlap

The length of overlap between adjacent islands in both directions

islandWidth

The island width

Methods Summary

clipIslands(paths, pathSubjects)

Internal method which clips the boundaries of Island obtained from InnerHatchRegion.boundary() with a list of paths.

generateIslands(paths[, hatchAngle])

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

hatch(boundaryFeature)

Generates the Island Scan Strategy for a layer given a list of boundary features

intersectIslands(paths, islands)

Perform the intersection and overlap tests on the island sub regions.

Attributes Documentation

islandOffset

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

Return type:

float

islandOverlap

The length of overlap between adjacent islands in both directions

Return type:

float

islandWidth

The island width

Return type:

float

Methods Documentation

clipIslands(paths, pathSubjects)

Internal method which clips the boundaries of Island obtained from InnerHatchRegion.boundary() with a list of paths. It is not actually used but provided as a reference for users.

generateIslands(paths, hatchAngle=90.0)

Generates un-clipped islands which is guaranteed to cover the entire polygon region base on the maximum extent of the polygon bounding box. This method can be re-implement in a derived class to specify a different Island type to be used and also its placement of the islands to fill the polygon region.

Parameters:
  • paths – The boundaries that the hatches should fill entirely

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

Return type:

List[Island]

Returns:

Returns the list of unclipped scan vectors covering the region

hatch(boundaryFeature)

Generates the Island Scan Strategy for a layer given a list of boundary features

Parameters:

boundaryFeature – A list of boundary features

Return type:

Layer

Returns:

A layer containing the layer geometry

intersectIslands(paths, islands)

Perform the intersection and overlap tests on the island sub regions. This should be performed before any clipping operations are performed.

Parameters:
  • paths – List of coordinates describing the boundary

  • islands (List[Island]) – A list of Islands to have the intersection and overlap test

Return type:

Tuple[Any, Any]

Returns:

A tuple containing lists of clipped and unClipped islands