Pymadcad

Latest version: v0.18.1

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

0.13.2

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

0.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](https://pymadcad.readthedocs.io/en/latest/reference/mesh/mesh.html#madcad.Mesh.qualify)

- 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

0.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 of `typedlist`
- fixed some triangulation bugs

0.11

This version is one of the most important version of the lasts year :champagne: : it brings [arrex](https://github.com/jimy-byerley/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](https://pymadcad.readthedocs.io/en/latest/reference/rendering.html)
- `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 :fireworks:

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

0.10.2

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)

0.10.0

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](https://pymadcad.readthedocs.io/en/latest/reference/gear.html#madcad.gear.bevelgear)

- 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`

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.