Skip to content

Releases: jimy-byerley/pymadcad

v0.11

10 Feb 11:16

Choose a tag to compare

This version is one of the most important version of the lasts year 🍾 : it brings arrex a python module created especially for the needs of the madcad project (even though it is meant for a wider variety of tasks). It provides list-like containers that stores elements in buffers. allowing future big optimizations of madcad.

new features

  • Thanks to @Gigahawk we now have a headless rendering option (#18) ! which means we can perform 3d rendering without having to display a window and manually take a screenshot. The documentation will come soon here
  • show() now accepts an existing scene as argument (It requires the openGL context to be shared)
  • All point, face, or edge lists are now of type typedlist, allowing very fast conversion (without copy) to/from numpy 🎆

breaking changes

  • All point, face, or edge lists are now instances of arrex.typedlist. This should not be a point it you just used your meshes from the Mesh methods, or used its attributes like Mesh.points through their list methods because typedlist behaves just like list in most cases.
    There is just few points to consider:

    • If you were using type checks like isinstance(mesh.points, list) you should put typedlist instead
    • If you were using strided slicing (such as mesh.points[a:b:step]) it won't work any more since not yet supported by arrex
    • slicing a typedlist doesn't return a copy by a view of the original one (for efficency reasons). If you experience troubles with this change, use deepcopy() after slicing
  • ArcCentered(axis, a, b).mesh() now always return a mesh that reachs a and b even if the result is not an arc. This helps to have closed oulines even when the solver is set with a bad precision.

fixes

  • fixed some rare boolean operation issues

v0.10.2

04 Jan 21:55

Choose a tag to compare

mostly fixes for the last release, but also some new small nice features

features

  • note_bounds() and note_radius() are added for measuring
  • added intuitive transformation operations Kinematic._add__() and Kinematic.transform()
  • reworked the constraint solving system, it now uses a scipy least squares method, which is much faster and precise than before

fixes

  • display issue with the color of webs and wire
  • the last release was not installable due to some parasiting file I packed with (I sincerely apologize for this)

v0.10.0

25 Dec 20:26

Choose a tag to compare

New version with some fixes with new features !

new features

  • refactoring of the boolean API, removing functions like booleanwith that were unclear and not convenient.

  • boolean operations are now possible between webs.

    In the spirit of boolean operations with meshes, that were playing cutting/stitching Meshes as envelopes depending on the volume operations, the Web boolean operations are cutting/stitching webs as surface contours.
    This allows to use pierce, boolean, union, difference, intersection with webs

  • some boolean operations are possible between web and mesh

    This allows to use pierce with webs

  • bevel gears !

    The submodule gear brings bevel gears and their source spherical profiles. All the explaining equations will come in the docs soon.
    Check the docs

  • minor improvements to reverse.segmentation

bug fixes

  • touchscreen event handling
  • surface and wire layering issues when the objects are too small (<1e-2) or too bing (>100)
  • visual boundingbox issues with Solid

v0.9.0

03 Oct 10:02

Choose a tag to compare

New release bringing some new features mostly regarding the Solids manipulation

New featues:

  • part placement deduced from surface types (like in most CAD programs): docs
  • exploded view of solids: docs
  • segmentation of surfaces on imported meshes docs
    This submodule is for all what regards reverse engineering and also provided functions to deduce joints and surfaces from raw meshes

Breaking changes:

  • Solid.transform is not inplace anymore, it will return a new Solid instead, use Solid.itransform for the old behavior

Fixes:

  • wrong angle use in gear.repeat_circular in case of non planar profile
  • scheme.Scheme matrices issue due to column vs line major arrays
  • voxel density display broken when non-cubic

v0.8.4

21 Jun 20:03

Choose a tag to compare

v0.8.4 Pre-release
Pre-release

just for travis eyes ...

v0.8.3

21 Jun 19:41

Choose a tag to compare

fixed import madcad on windows

v0.8.2

20 Jun 15:09

Choose a tag to compare

just for travis eyes ...

v0.8.1

20 Jun 14:50

Choose a tag to compare

just for travis eyes ...

v0.8

19 Jun 21:48

Choose a tag to compare

Finally the next release of our module ! It comes with many new feature. Focus is done on standard parts

I am also glad to welcome a new contributor: @bourbonut ! who has coded a lot in the new submodule gear. So let's celebrate !

new features

  • new submodule madcad.standard
    provide functions to generate many of the most common standard parts (like screws, nuts, coils ...)
    Checkout the docs !

  • new submodule madcad.gear
    provide functions to generate involute gears. Either ready to use or customizable.
    Checkout the docs !

  • all chamfer, bevel, multicut are now available for Mesh, Web and Wire

  • improved speed of cutting operations (chamfer, bevel, multicut)

  • added function boolean.pierce() to complete the collection of boolean operations

  • improved junction()

  • improved thicken()

  • extrusion() now performs any linear transformation as extrans

  • transform(float) is added to give a rescale matrix

Plus many fixes ...

breaking changes

  • Mesh.frontiers and Mesh.groupoutlines have been reworked

    Some related or redundant methods have been removed.
    The returned outlines are now oriented as often as possible.

  • Mesh.vertexnormals() now behaves differently for points on the outlines and for points in the middle of faces

    • points on the surface are computed as before with the neighbooring faces normals weighted by their angle
    • points on the outline only mix adjacent faces to the outline, making the resulting normal independent of the way the surface is triangulated
  • renamed multiple() -> repeat()

v0.7

16 Mar 15:57

Choose a tag to compare

new features:

  • new primitives for splines: Interpolated and Softened
  • added io.cachefunc decorator to easily use temporary files
  • the config file is now a yaml file instead of a json, to incread readability
  • increased compatibility of constraints Parallel, Angle, Distance
  • improved the way to use Kinematic and Solid (see the docs)
  • renamed some joints definitions
  • renamed Torsor into Screw the proper mathematical term
  • new mesh methods:
    • Mesh.orient
    • Web.islands

bug fixes:

  • boolean operations : all known bugs fixed
  • many numeric issues and display issues fixed