Skip to content

Latest commit

 

History

History
212 lines (180 loc) · 21.7 KB

CHANGELOG.md

File metadata and controls

212 lines (180 loc) · 21.7 KB

Change Log

All notable changes to this project will be documented in this file.

[Unreleased]

Added

Fixed

Changed

[0.6.0] - 2024-07-07

Added

Fixed

Changed

[0.5.0] - 2022-04-26

Added

  • Added support for Mac OS X (Monterey 12.3) 3b4103bf2e01f3e7175adcf0f1bed5a429bad361
  • Added the Support Module: pyslm.support 9ee1f6668b56e76137c3dade178dc837460fc056 0f6e29815a5d6a65789d27c49131d49486415d31
    • Added generic abstract class support.SupportStructure for providing the generic infrastructure for defining support structures (e.g. block, grid, tree) and common methods
    • Introduced Various Classes - BaseSupportGenerator and BlockSupportGenerator for Generating BlockSupports
    • Introduced support.geometry.extrudeFace method for extruding block faces with variable height
    • Introduced method support.geometry.triangualtePolygonFromPaths to triangulate polygons generated in the Support Module
    • Introduced a method support.render.projectHeightMap for projecting height/depth maps using OpenGL to calculate the depth map for projecting supports
    • Introduced classes GridBlockSupport, GridBlockSupportGenerator and associating mapping function for generating polygon truss grid supports
    • Introduced classes for identifying and generating conforming support volume
    • Self-intersecting support volumes are generated via the pycork library e438bef493553b18dd1ee5031a226d04b63a5c67
  • Added point delay and jump speed in pyslm.geometry and these are used in calculations performed in pyslm.analysis 55cc7e79c9e6f1f5f8b25d38dd6a48639b422fd2

Fixed

Changed

[0.4.0] - 2021-07-23

Added

Changed

Fixed

[0.3.0] - 2021-02-20

Added

  • Added BaseHatcher.boundaryBoundingBox() to obtain the bounding box of a collection of polygons - returned internally from PyClipper
  • Added a simplifyBoundaries() in hatching/utils.py to simplify polygons (shapely and raw coordinate boundaries using scikit image) - hatching.generateExposurePoints() now generates for ContourGeometry
  • Added ModelValidator class in pyslm.geometry.utils to verify the input of build files generated prior to exporting in libSLM - e75b486c090b4ead712d2ddb950577e058c419e6
  • Added example_exporting_multilayer.py showing how to export a multi-layer build using libSLM - 52090085fd52336e2cc2181ff886a8aebbdca1ef
  • Added example_custom_island_hatcher.py showing a method to create customised island scan
  • Added a HexagonIsland Class to demonstrate custom implementation of island regions
  • Added example_build_time_analysis.py to show the processes of estimating build-time
  • Added example_custom_sinusoidal_hatching.py for showing custom hatch-infills - c7c1a4304dd4f2a4cdf0286385ccb68d3968ba5e
  • Added a method BaseHatcher.clipContourLines for clipping open scan paths to fill a region
  • Added an analysis method utility getBuildStyleById to find the BuildStyle given a model id and build style id
  • Added a method in plotLayer to visualise the scan vector properties (e.g. length)
  • Added properties for geometry class to be compatible with libSLM 0.2.2 - providing multi-laser compatibility
  • Added the method Part.getTrimeshSlice to get a trimesh.Path2D slice from the geometry - bb2ebb9c4514a05cc1728c810deef7fc6c3239e4
  • Added a method to find the 'inverse' projection of support faces
  • Added visualise.visualiseOverhang for showing overhang regions
  • Added geometry.utils.ModelValidator for validating the build inputs (layers, models) when exporting to a machine build file
  • Added a .gitignore file - 498d9116dd9d91698695669d5d1309a7941e0dd9

Changed

  • Internally generateHatching() and hatch() in subclasses of BaseHatcher to generate the internal hatch geometry to use multiple boundaries to ensure that the subregion generation sorting covers the global region.
  • Internally BaseHatcher.boundaryBoundingBox() is called instead of BaseHatcher.polygonBoundingBox()
  • Removed the for loop which previously iterate across boundaries.
  • Updated IslandHatcher to use this behaviour
  • Updated BaseHatcher to use static members where possible
  • Analysis method analysis.getLayerTime requires a Model list
  • Analysis methods use point exposure time and distance using analysis.getLayerTime
  • Removed debug messages when visualising layers
  • Fixed import of submodules in PySLM - 66f48fd9929d244b836583f24c087602cdc31a96

Fixed

[0.2.1] - 2020-06-19

Fixed

  • Fixed the setup.py source tarball to include the PyClipper extensions.

[0.2.0] - 2020-06-17

Development branch of PySLM with new features.

Added

  • Added transformations to the Part class so that these can be translated, rotated, scaled efficiently on demand
    • Updates on the geometry are cached when geometry method is called.
    • Method included to drop the part to the platform
  • Added an enhanced version and higher performance of generated clippable island regions.
    • Introduced InnerHatchRegion in the hatching submodule
    • Introduce IslandHatcher which re-implements the Island/Checkerboard Scan Strategy
  • Added a method to alternate adjacent scan vectors in the hatching module
  • Added a method to generateExposurePoint method in the hatching submodule to create exposure points from scan vectors
  • Added a Geometry Submodule in pyslm.geometry
    • libSLM Python Extension Library is used if available
    • A set of native compatible Python classes are available if libSLM is not available
    • Classes include:
      • Layer
      • LayerGeometry
      • Model
      • BuildStyle
      • Header
      • HatchGeometry, ContourGeometry, PointsGeometry
  • Added an Analysis Module in pyslm.analysis:
    • Total length of all the scan vectors across a layer
    • Total jump length between scan vectors across all vectors
    • Total scan time across a layer
  • Added a method to generate bitmap slices from a single image is included in Part
  • Added a Visualise Submodule in pyslm.visualise
    • Introduced a method to visualise a collection of shapely polygons
    • Introduced a method to generate a heatmap based on a set of exposure points in a layer
    • Introduced an updated method to plot layerGeometry
      • Plot scan order
      • Plot arrow direction
      • Plot the layers correctly in 3D
  • Introduced several new examples:

Changed

  • Part.getVectorSlice method by default returns a list of coord paths
  • Part.getVectorSlice now returns a list of Shapely.geometry.Polygon if optional argument is passed
  • hatching.IslandHatcher in the previous release is changed to BasicIslandHatcher

Fixed

  • Further changes and improvements to the overall documentation.
  • Updated requirements.txt to ensure documentation can correctly build on readthedocs

[0.1.0] - 2020-05-08

The first release of PySLM in its distributed packaged form via PyPi. This release includes basic slicing and hatching using a custom version of PyClipper built internally using setuptools.