Skip to main content

RELEASE NOTES 0.15.7: Constraint-Based Circle Creation and Fixes

· 2 min read

A visual representation of new features in Bitbybit.dev v0.15.7, possibly showing circles created through tangential constraints.

This release, version 0.15.7, continues to build upon the geometric capabilities introduced in recent updates. This time, we've implemented a couple of powerful new open-source methods for creating circular edges based on tangential constraints involving other circles or points. Additionally, this release includes some important bug fixes and improvements to our OCCT input classes.

Circles From Constraints

It is now possible to construct new circular edges by defining them through tangential relationships with existing geometry. These new methods are particularly useful in constraint-driven design workflows:

  • bitbybit.occt.shapes.edge.constraintTanCirclesOnTwoCircles:
    • Finds and creates all possible circular edges that are tangential to two given input circles. The solution can result in one or more circular edges, depending on the configuration and relative sizes/positions of the input circles.
  • bitbybit.occt.shapes.edge.constraintTanCirclesOnCircleAndPnt:
    • Finds and creates all possible circular edges that are tangential to a given input circle and also pass through a specified point. Similar to the above, this can yield one or more solutions.

Bug Fixes

  • OCCT Shape Rotation Transformation:
    • It was identified that the previous rotation transformation method for OCCT shapes (bitbybit.occt.transforms.rotate) sometimes had an unintended side effect on the rendering or subsequent processing of the rotated shapes.
    • This was due to the underlying OCCT approach used for the rotation.
    • Fix: The bitbybit.occt.transforms.rotate method has been adjusted to use a different, more robust transformation approach (BRepBuilderAPI_Transform), which should resolve these side effects and provide more consistent results.

Other Improvements

  • OCCT Input Class Properties:
    • It was noted that many OCCT input classes (DTOs - Data Transfer Objects) for various methods had properties marked as optional (e.g., property?: type) in their TypeScript definitions, suggesting they could be omitted.
    • However, in many cases, these properties are actually mandatory for the successful execution of the underlying OCCT algorithms.
    • Improvement: The optional (?) modifier has been removed from most of these mandatory properties in the input class definitions. This change makes the API contracts clearer and helps prevent runtime errors caused by missing required inputs, leading to a more robust developer experience.

These enhancements in version 0.15.7 further refine the precision and reliability of geometric modeling within Bitbybit.dev, particularly for designs involving circular elements and transformations.