Releases: jimy-byerley/pymadcad
v0.18.1
v0.17
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
andgrooves
inmadcad.standard
- added functions
helix
andscrew
inmadcad.generation
breaking changes
- many hashing functions in
madcad.mesh
have been moved tomadcad.hashing
Axis
andisaxis
have been moved tomadcad.mathutils
thicken
andinflate
have meen moved tomadcad.offseting
madcad.cut
was renamedmadcad.bevel
and had few API changes- previous color values present in
madcad.settings.display
have been moved to the newmadcad.settings.colors
v0.16
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
v0.15.1
bug fixes
- fixed error in fonts lookup
- fixed default font not present in the python package
v0.15
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 bydisplay_annotations=False
, insteadSolid['annotations']
are as long as theSolid
is not selected- added part slots functions in
madcad.standard
bug fixes
- fixed
Web.frontiers()
andMesh.frontiers()
when single-sided edges are demanded (None
in group list) - fixed and improved
stfloor()
andstceil()
- fixed
Container.*near()
- fixed occasional near-infinite loops in boolean operations
v0.14
This version brings some new features and few fixes
- added helical bevel gears thanks to @bourbonut
- added
stfloor()
andstceil()
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
- some fixes
- rebuilt pypi package to fix an installation issue
v0.13
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()
andshow()
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 formerDisplay
to replace or update
v0.12
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 oftypedlist
- fixed some triangulation bugs
v0.11
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 theMesh
methods, or used its attributes likeMesh.points
through their list methods becausetypedlist
behaves just likelist
in most cases.
There is just few points to consider:- If you were using type checks like
isinstance(mesh.points, list)
you should puttypedlist
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, usedeepcopy()
after slicing
- If you were using type checks like
-
ArcCentered(axis, a, b).mesh()
now always return a mesh that reachsa
andb
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