Design3d

Latest version: v0.3.1.dev19

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

Scan your dependencies

Page 1 of 6

0.17.0

New Features

curves.py
- Ellipse3D: to_step
edges.py
- ArcEllipse3D/FullArcEllipse3D: to_step

faces.py
- PlaneFace3D: get_normal_at_point
- CylindricalFace3D: get_normal_at_point
- add tolerance parameter to many methods
- Face3D: normal_at_point

edges.py
- Fix FullArc2D generation from 3 points

surfaces.py
- u_iso/v_iso: Returns the u-iso/v-iso curve of the surface.
- Plane3D/CylindricalSurface/ConicalSurface/SphericalSurface3D : normal_at_point

global
- Add reference_path to a handful of classes

Fixed
curves.py
- Circle2D: line_intersections

edges.py
- edge: intersections -> new parameter force_sort, to force sorting intersection points along curve.
- BSplineCurve3D: move_frame_along
- Arc2D: start and end angle, and arc angle.
- Contour2D: merge_with (consider abs_tol in is_sharing_primitives_with checking)
- BezierCurve: trim.


faces.py
- Toroidalface ConicalFace intersections.

shells.py
- ClosedShell3D.point_belongs

step.py
- Fix Step.create_connections with wireframe models

core.py
- Fix Compound step export for wireframe models.


surfaces.py
- BSplineSurface3D: improves _fix_start_end_singularity_point_at_parametric_domain

wires.py

step.py
- Fixes in step translator to VolumeModel.

Refactor

Global
- Leverage Mesh3D class capabilities in simplification and voxelization

surfaces.py
- ToroidalSuface3D: toroidal_surface_intersections
- Contour2D - point_belongs
- edge: intersections -> new parameter force_sort, to force sorting intersection points along curve.
- ConicalSurface3D: Refactoring of the conical surface definition in accordance with ISO 10303.
- BSplineSurface3D: improves point_inversion_grid_search convergence.

Changed
- load_from_file -> from_json
- Delete outdated_methods: bbox_intersections -> is_intersecting | b_rectangle_intersections -> is_intersecting
- For points in the interior of an object: point_belongs -> point_inside
- For points ON an object: point_belongs
- edges/curves.py cut_between_two_points -> trim
- defines ordering of curve methods
- npy -> np
- curves.py: curve_intersections -> intersections

CI
- Avoid calling babylonjs method in CI to reduce CI time
- Avoid `pip install .` in drone as it is redundant with `python setup.py build_ext --inplace`
- Re-order CI steps to build doc in the end / perform shortest test first
- Avoid duplication of test between push and PR
- Fix `upload coverage` step
- Fix CI for PR from fork repo


Updates
- Documentation

Unittests
- Toroidalface ConicalFace intersections.
- Avoid showing babylonjs in unit tests / ci_scripts

0.16.1

fixes
- Contour2D - point_belongs
- BSplineCurve3D: move_frame_along
- BezierCurve: trim.

0.16.0

New Features
- added missing hash and eq methods to several classes
- ArcEllipse2D/3D: get_shared_section and delete_shared_section.
- ConicalSurface3D: conicalsurface_intersections.
- cad_simplification: AlphaWrapSimplify
- nurbs/operations: link_curves
- FullArc3D: fullarc3d_intersections
- ArcEllipse2D: straight_line_center_of_mass

edges.py
- BSplineCurve: decompose into béziers patches of same degree.
- BSplineCurve: merge_with and merge_with_curves

faces.py
- Add primitives_mapping property: returns a dictionary containing the correspondence between the parametric and 3D boundaries of the faces.
- grid_points: returns a grid of points inside the surface2d of the face.
- PeriodicalFaceMixin: face_inside

surfaces.py
- CylindricalSurface3D: parametric_points_to_3d
- ToroidalSurface3D: parametric_points_to_3d
- SphericalSurface3D: parametric_points_to_3d
- ConicalSurface3D: parametric_points_to_3d
- ExtrusionSurface3D: parametric_points_to_3d
- RevolutionSurface3D: parametric_points_to_3d
- Plane3D: parametric_points_to_3d
- BSplineSurface3D: parametric_points_to_3d
- BSplineSurface3D: decompose.
- BSplineSurface3D:extract_curves method. Extracts curves from the surface given an ordered list of parameters in u or v direction.
- ToroidalSurface3D: torus-torus intersections.

Fixed
- review hash and eq methods.
- fix pylint.
- Add some missing docstrings.
- Add _serializable_dict to points and vectors objects. This method is important to some platform checks, as they don't inherite from DessiaObject anymore.
- Arc2D: arc_intersections
curves.py
- Ellipse2D/3D: mutualize length method.
- Circle2D: abscissa method - consider frame direction during rotation.
- Line: is_close.
- Circle3D: Line intersections

edges.py
- BSplineCurve: handles exceptions in simplify method.
- BSplineCurve: Consider overlaping curves also as periodic.
- BSplineCurve.simplify: handles exceptions.
- Arc2D: plot_data
- LineSegment3D: planar_revolution.
- BSplineCurve: abscissa: use curve decomposition.
- BSplineCurve: trim on periodic curves.

faces.py
- Face3D: enhance from_contours3d.
- Face3D: enhance from_contours3d. Checks if inner contours position are according outer contour position in parametric domain for periodical surfaces.
- Face3D: divide_face_with_closed_cutting_contours - if inner_contour.area()/outer_contour.area() < 1e-9 ignore it.
- Face3D: point_belongs

primitives3d.py
- RevolvedProfile: to_dict

surface.py
- PeriodicalSurface: handles exceptions in connect_contours method.
- ExtrusionSurface3D: fullarcellipse3d_to_2d
- ExtrusionSurface3D: generalization of the _repair_points_order method to repair the order of parametric points of edges after transformation.
- ToroidalSurface3D: increases precision of point3d_to_2d.
- Surface3D: repeair_primitives_periodicity. Treat special case on surfaces with singularities.
- ToroidalSurface3D: plane_intersections.
- Remove duplicated attributes.
- BSplineSurface3D: point_inversion_grid_search.
- BSplineSurface3D: implements a more robust point3d_to_2d method.

wires.py
- Contour2D: cut_by_line.
- ContourMixin: is_ordered().


step.py
- Step: uses Regular Expressions to improve the performance.

core.py
- Add missing dark_mode parameter in save_babylonjs_to_file method.

Refactor
- Big refactor to improve and simplify complex and long methods in various modules.

surfaces.py
- contour3d_to_2d/contour2d_to_3d: Add option to return also a dictionary with the correspondence between the parametric and 3D primitives.
- BSplineSurface3D: point3d_to_2d, improve the method to ensure convergence

display.py
- refactor DisplayMesh.
- refactor DisplayMesh to Mesh3D
- enable stl / ply / 3mf / obj import and export with Mesh3D object
- implement various Mesh3D manipulations methods
- improve performance

Changed
- Edge.split_between_two_points -> trim
- surfaces.py: point_on_surface -> point_belongs
- Numpyfy BSplines

Build
- try adding github actions to testpypi

Unittests
-

0.15.2

build
- fix build test before upload to pypi

0.15.1

build

- Use pip install instead of setuptools install in order to avoid .egg being generating and preventing PyPI upload

0.15.0

New Features

core_compiled.py
- Point2D/Point3D: allow users to use a point or a list of points direct inside a numpy array. ex.: np.array(volmdlr.O3D)
- Point2D/Point3D: in_list. ** ATTENTION:** -> use in_list instead of volmdlr.core.point_in_list.
- cad_simplification: VoxelizationSimplify, TripleExtrusionSimplify, TriangleDecimationSimplify.

surfaces.py
- ToroidalSurface3D: line_intersections, linesegment_intersections, plane_intersections
- ToroidalSurface3D: cylindricalSurface_intersections, circle_intersections, fullarc_intersections, dict_to_object, conicalsurface_intersections, sphericalsurface_intersections
- ToroidalSurface3D: Handles degenerated surfaces (major_radius < minor_radius).
- CylindricalSurface3D: circle_intersections, sphericalsurface_intersections, cylindricalsurface_intersections
- ToroidalFace3D: PlaneFace3D intersectios.
- SphericalSurface3D: circle_intersections, arc_intersections, ellipse_intersections, arcellipse_intersections, sphericalsurface_intersections
- ConicalSurface3D: sphericalsurface_intersections
- General improvements on sufaces\` parametric operations.
- Surface2D: triangulation. Set tri_opt equal to "p".

edges.py
- BsplineCurve3D: circle_intersections.
- ArcEllipse3D/FullArcEllipse3D: line_intersections.

faces.py
- Face3D: get_face_polygons

curves.py
- Circle3D: point_distance.
shell.py
- OpenTriangleShell3D: triangle decimation
- ClosedTriangleShell3D: turn_normals_outwards, are_normals_pointing_outwards, turn_normals_inwards, are_normals_pointing_inwards
- DiplayTriangleShell3D: concatenate

core.py
- BoundingBox: is_close, scale
- BoundingBox: triangle_intersects_voxel, is_intersecting_triangle
discrete_representation.py
- Voxelization: from_mesh_data
- OctreeBasedVoxelization


step.py
- Support to Datakit CrossCadWare STEP file format.

Fixed
- Drone : run generate sdist and generate bdist_wheel only on master
- drone.yml: add distribution types to be uploaded into pypi.

core.py
- VolumeModel: get_mesh_lines (change tolerance to 1e-5)

edges.py
- Arc2D: direction conservation in rotation / translation / frame_mapping.
- FullArcEllipse: angle_start, angle_end.

surfaces.py
- ToroidalSurface3D: line_intersections, linesegment_intersections, plane_intersections.
- ConicalSurface3D: circle_generatrixes direction.
- PeriodicalSurface: handles exceptions in connect_contours method.
- ExtrusionSurface3D: fullarcellipse3d_to_2d
- ExtrusionSurface3D: generalization of the _repair_points_order method to repair the order of parametric points of edges after transformation.
- ToroidalSurface3D: increases precision of point3d_to_2d.
- Plane3D: plane intersections.

faces.py
- ToroidalFace3D: PlaneFace3D intersections.
- PlaneFace3D: circle_intersections. planeface_intersections
- BsplineFace3D: adjacent_direction_uu
- PlaneFace3D: project_faces (check first if surfaces are coincident)

wires.py
- delete remaining inplace methods in wires.py

shells.py
- Fixes to boolean operations. Added some tolerance parameters to some methods.
- Shell3D: get_geo_lines (consider edge.inverse in get_edge_index_in_list check), is_shell_open
- DisplayTriangleShell3D: eq, data_eq, hash, data_hash, concatenate

surfaces.py
- SphericalSurface3D: use circle 3d instead of polygon3D for plotting.
- add bigger precision to plane-plane intersections.

utils
- common_operations separate_points_by_closeness: consider more than two cluster groups.

curves.py
- Circle3D: circle_intersectios when the circle are coplanar.
- Circle2D: Now, it needs a Frame2D and a radius instead of a Center and a Radius. This allows to easily control the circle's direction (clockwise/counterclockwise)

surfaces.py
- ExtrusionSurface3D: enhance parametric operations.

edges.py
- bsplineCurve: line_intersections.

discrete_representation.py
- MatrixBasedVoxelization: _logical_operation
- Remove inheritance from ABC for platform usage

cad_simplification.py
- Remove inheritance from ABC for platform usage

Refactor
- Face3D: create a generic method for calculating intersections between two faces: _generic_face_intersections.
- Voxelization: refactor class methods

core.py
- babylon_data: avoid using bounding_box for performance
- BoundingBox: uses numpy to improve performance.

core_compiled
- Frame2D: fix rotation, now it has an optional parameter rotate_basis, set to False by default option, so the user can specify if he wants to rotate also the basis of the frame.

edges.py
- Circle2D: Now, it needs a Frame2D and a radius instead of a Center and a Radius. This allows to easily control the circle's direction (clockwise/counterclockwise)
- Arc2D: Arc 2D now must follow the same rotation direction of its circle.
- LineSegment2D/3D: The line attribute from which the line segment was defined was converted to a property, for performance and memory efficiency reasons.
- BSplineCurve: improve line_intersections performance.

faces.py
- Face3D: create a generic method for calculating intersections between two faces: _generic_face_intersections.

primitives3d.py
- Sweep: accepts an optional parameter starting_frame that can control the orientation of the profile.
- Block: get_bounding_box

shells.py
- boolean operations - now works also for triangle meshed objects, containing coincident faces.
surfaces.py
- ExtrusionSurface3D: Uses edge abscissa as u parameter.
- ExtrusionSurface3D: general improvements in parametric operations.


Changed
- ToroidalSurface3D: init param tore_radius and small_radius changed to major_radius and minor_radius respectevely.
- ToroidalSurface3D: plots now use Circles 3D instead of ClosedPolygon3D. Performance improved.
- CylindricalSurface3D: More comprehesive plot
- BoundingBox: from_bounding_boxes
- BSplineCurve: improve line_intersections performance.
- core_compiled.pyx: update typing because Point2D, Point3D, Vector2D and Vector3D are now extension types (C structures.)
- BSplineCurve: improve line_intersections performance.
- SphericalSurface3D: enhance bsplinecurve3d_to_2d.

Unittests
curves
- Circle3D: new case to test_circle_intersections, new test: test_point_distance.
surfaces
- ToroidalSurface3D: test_line_intersections, test_plane_intersections, test_cylindrical_surface_intersections, test_circle_intersections
- CylindricalSurface3D: test_circle_intersections.
faces
- ToroidalFace3D: PlaneFace3D intersectios.
- SphericalSurface3D: circle_intersections, arc_intersections, arcellipse_intersections
- PlaneFace3D: point_belongs
core
- BoundingBox: is_close, scale
primitives3d
- Block: from_bounding_box, get_bounding_box

Page 1 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.