Classy-blocks

Latest version: v1.5.3

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

Scan your dependencies

Page 2 of 2

1.3.3

Added
- Airfoil example
- Translation and Rotational Link: move together with vertices being optimized (see the airfoil example)

Changed
- Renamed ParametricCurveClamp to CurveClamp (takes Curve object of any kind)
- Interpolated curves' indexes are now between 0 and 1 (easier to work with than using len(points) every time)
- Optimization driver:
- Termination tolerance is now based on initial improvement instead of quality
- Relaxation starts at 0.5 by default and increases linearly to 1 in a given number of relaxed iterations

Removed
- Curve.get_closest_param() now finds initial_param automatically

1.3.2

Added
- *Curve objects for dealing with edge specification and optimization

1.3.1

Added
- mesh.clear() removes lists of all items that were populated during mesh.assemble()
- mesh.backport() updates user supplied operations' points with results of optimization/modification

Changed
- Optimizer: under-relaxation for the first optimization iterations

1.3.0

Added
- **Blocking Optimization**
- Finders for easier fetching vertices, generated by mesh.assemble()
- GeometricFinder lists vertices inside searchable geometric entities
- RoundSolidFinder identifies vertices on core/shell of round solids
- An Optimizer class that handles blocking optimization
- Clamp classes that define degrees of freedom of optimizing points:
- Free (3 DoF)
- Slide along a curve (line, parametric curve) (1 DoF)
- Move on a surface (parametric surface) (2 DoF)
- **Reorienting Operations and Faces**
- `Face`:
- `shift()` method to rotate points around
- `reorient()` method that rotates points so that they start nearest to given position
- `ViewpointOrienter`: a class for auto-orienting operation's points based on specified points 'in front' and 'above' the operation.

Changed
- Projection Behaviour
- Calling .project() on a Point/Vertex will add the new geometry instead of replacing it.
- Calling .project_edge() on an Operation will add the new geometry instead of replacing it.
- Calling .project_side() on an Operation will add the new geometry to edges instead of replacing them (but will replace existing label for the side)

1.2.0

Added
- A Shell Shape, created from arbitrary set of faces
Changed
- Operation.get_face() will not auto-reorder faces (causes confusion for users)
Fixed
- A bug where Operation.project_face(..., points=True) won't project vertices

[1. 1. 0] Default Extrude Direction
Added
- Extrude now takes a vector of a float. If a float is given, direction is normal of the base face.

[1. 0. 0] Refactor
A complete overhaul of all objects in an attempt to create a proper SOLID-obeying
package with type hinting, static typing and no python-ish duck-typing hacks.

Added
- examples and showcases from `classy_examples` repo
- static type analysis, formatting, linting
- Origin and Angle edges (Foundation and ESI alternatives to arc)
- Projection of vertices to geometry
- Import convention `import classy_blocks as cb` and direct imports of user-usable objects from `cb`, like `cb.Mesh, cb.Loft, cb.Arc`
- `Operation.faces` property that creates new faces on-the-fly for easier chaining of new operations
- A Frame object that simplifies addressing edges/wires/other stuff between pairs of vertices on a hexahedron
- ExtrudedRing.fill() method has been added to create cylinders inside rings
Changed
- Major package layout refactor
- Edge specification (Arc, Origin, Angle, Project, Spline, PolyLine objects)
- Reverted Face specification for operations
- The Block object is not directly available to the user as it makes no sense to do so
- Import convention: `import classy_blocks as cb` for examples
- Changed examples so that an example file runs directly instead of calling run.py (that created a lot of confusion)
- Box() is now an operation (previously Shape)
- simplified cylinder and sphere creation
- Chaining of elbows/cylinders/etc always with start_face parameters (instead of negative length)
Removed
- *Wall shapes will be created later with a different approach
- Examples with *Wall shapes will be recreated later with new approaches
- airfoil2d example requires blocking optimization so it will be recreated when that feature is available
- sphere example will be recreated when 'offset' is available
- block.from_points has been removed (use Loft)
- T-joint will be added when a skew transform is implemented

0.0.1

Added
examples and showcases from classy_examples repo
static type analysis, formatting, linting
Changed
Major package layout refactor
Major CI refactor
Removed
Some dependencies, docs and other stuff that is not ready ATM

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.