Skip to content

Releases: jimy-byerley/pymadcad

v0.19

09 Jun 13:46

Choose a tag to compare

  • refactored rendeing pipeline
    • moved all random displays to madcad.rendering
    • moved some specific displays to submodules like madcad.kinematic.displays or madcad.displays
    • moderngl and Qt are now optional dependencies in madcad source code (not yet optional for pip though ...)
    • different Qt wrapper versions are supported: pyqt5, pyqt6, pyside6
    • improved API for onscreen and offscreen rendering
    • making room for future 2d rendering
    • we now have decent selection management in the scene, and selectable objects can be hovered
  • Solidelements can now be accessed either as attributes or items
  • fixes and naming improvements in madcad.gear

v0.18.1

13 Nov 19:07

Choose a tag to compare

fixes

  • incompatibility with numpy 2 (#120)
  • schematics displays not working on some GPUs (#119). Because of this fix, the opengl minimal requirement is bumped to opengl >= 4.3
  • minor bug on kinematic displaying

v0.17

08 Sep 13:25

Choose a tag to compare

This release is full of breaking changes preparing version 1

new features

  • the new kinematic solver, much more convenient, precise, robust and powerfull than the previous one. Coming with plenty of functions and kinematic joints
  • the Ellipsis primitive type
  • the settings module now contains a dictionnary of standard colors for displays and parts, meant to follow themes
  • added functions circular_screwing and grooves in madcad.standard
  • added functions helix and screw in madcad.generation

breaking changes

  • many hashing functions in madcad.mesh have been moved to madcad.hashing
  • Axis and isaxis have been moved to madcad.mathutils
  • thicken and inflate have meen moved to madcad.offseting
  • madcad.cut was renamed madcad.bevel and had few API changes
  • previous color values present in madcad.settings.display have been moved to the new madcad.settings.colors

v0.16

14 Oct 07:03

Choose a tag to compare

new features

  • added parallelogram()
  • improved helical gears, added helical spur gears
  • added Wire.isclosed(), wire.unclose()
  • added support for NixOS
  • improved documentation and especially the guide

fixes

  • finally fixed rendering not working on MacOSX ! #82 special thanks to @GenieTim
  • fixed minor problem in mesh intersections #73
  • fixed boolean operations on closed wires #62 thanks to @GlennWSo
  • fixed numpy array compatibility issue #85

v0.15.1

21 Dec 10:21

Choose a tag to compare

bug fixes

  • fixed error in fonts lookup
  • fixed default font not present in the python package

v0.15

20 Dec 18:55

Choose a tag to compare

It seems there is enough changes for a new release !

new features

  • added text.text() to generate surface meshes and outline webs from text strings, using custom fonts. checkout the docs !
  • removed text.Text as not very useful
  • Scheme instances are no longer filtered by display_annotations=False, instead Solid['annotations'] are as long as the Solid is not selected
  • added part slots functions in madcad.standard

bug fixes

  • fixed Web.frontiers() and Mesh.frontiers() when single-sided edges are demanded (None in group list)
  • fixed and improved stfloor() and stceil()
  • fixed Container.*near()
  • fixed occasional near-infinite loops in boolean operations

v0.14

05 Nov 11:07

Choose a tag to compare

This version brings some new features and few fixes

  • added helical bevel gears thanks to @bourbonut
  • added stfloor() and stceil() to help getting human-friendly distances in automatically computed results
  • fixed wrong variable names in Mesh.surface(), Mesh.volume(), Wire.surface()
  • fixed wrong pose for sub-group displays before any solid move

v0.13.2

25 Sep 09:31

Choose a tag to compare

  • some fixes
  • rebuilt pypi package to fix an installation issue

v0.13

17 Sep 15:10

Choose a tag to compare

This new version brings few new meshing functions, and a big quality-of-life change regarding surface selections in meshes.

new features

  • added module madcad.hull and everything under it !

  • added generation.expand()

  • new Mesh inner identification system.

    This feature concerns all data types in madcad.mesh and adds mainly the method .qualify() that helps labeling groups which helps selecting them afterward.
    check the docs

  • added wrapper for pickle files in madcad.io

  • schemes displays are now highlighted when selected

  • functions generating finished parts are now returning a Solid ready for assembly

  • added support for partial kinematic joint definition in Solid.place()

bug fixes

  • fixed boolean operations propagation failing sometimes
  • fixed some floating point precision issues in madcad.triangulation
  • fixed some floating point precision issues in madcad.boolean
  • fixed wrong argument modification in scaledir()
  • fixed wrong view-controled Solid move in case of solids included in solids
  • fixed View() and show() not using all their arguments
  • fixed Orthographic projection
  • fixed screen size spaces in schemes, hence changing the previous schemes to much bigger (now the screen coordinates are true pixels)
  • fixed scheme.halo_screen()

breaking changes

  • removed Solid.itransform()
  • changed behavior of Scene.display(): it now accepts the former Display to replace or update

v0.12

08 May 16:37

Choose a tag to compare

new features

  • added linrange to generate uniformly spaced iterators of floats
  • mat3, mat4, quat are now displayable
  • added generation functions for common shapes: cylinder(), cone(), pyramid()

bug fixes

  • fixed bug of wire, web when working with instances of typedlist
  • fixed some triangulation bugs