Segmenting 3d model of mechanical component

Through the hierarchical segmentation method, the simple geometric surface, CAD feature surface and free-form surface of mechanical components are identified, which solves the problem of insufficient segmentation efficiency and accuracy in the existing technology, and realizes efficient and robust segmentation of discrete 3D models of mechanical components. .

CN119313856APending Publication Date: 2025-01-14DASSAULT SYSTEMES SA
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202410920518.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-11
Filing Date
2024-07-10
Publication Date
2025-01-14

AI Technical Summary

Technical Problem

The prior art is difficult to effectively segment discrete 3D models representing mechanical components, especially when identifying complex relationships between simple geometric surfaces, CAD feature surfaces, and free-form surfaces, with insufficient efficiency and accuracy.

Method used

The hierarchical segmentation method is adopted, including the first segmentation, the second segmentation and the third segmentation, respectively identifying the slip-movable primitives, the surface generated by the CAD feature, and the free-form surface is optimized through feature distance and fitting error. Improve the robustness and efficiency of segmentation.

Benefits of technology

Accurate segmentation of discrete 3D models of mechanical components is realized, simple geometric surfaces, CAD feature surfaces and free-form surfaces are identified, segmentation efficiency and robustness are improved, the number and size of free-form fragments are reduced, and simple elements are directly identified. and CAD features, no post-processing steps are required.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119313856A_ABST
    Figure CN119313856A_ABST
Patent Text Reader

Abstract

The present disclosure relates to segmenting a 3D model of a mechanical component, in particular to a computer-implemented method for segmenting a discrete 3D model representing a mechanical component. The method comprises the following steps: obtaining a discrete 3D model; and applying hierarchical segmentation to the discrete 3D model. The hierarchical segmentation includes a first segmentation that includes identifying a first segment among elements of the discrete 3D model. Each of the first segments corresponds to a primitive presenting at least one slidable motion. The hierarchical segmentation then includes a second segmentation that includes identifying a second segment among unidentified elements of the discrete 3D model. Each of the second segments corresponds to a surface produced by a CAD feature. The hierarchical segmentation then includes a third segmentation that includes identifying a third segment among unidentified elements of the discrete 3D model. Each of the third segments corresponds to a free form surface of the discrete 3D model.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer programs and systems, and more particularly, to methods, systems and programs for segmenting a discrete 3D model representing a mechanical component. Background Art

[0002] There are many systems and programs available on the market for the design, engineering and manufacturing of objects. CAD (Computer-Aided Design) is an abbreviation for computer-aided design, i.e. it is related to software solutions for designing objects. CAE (Computer-Aided Engineering) is an abbreviation for computer-aided engineering, i.e. it is related to software solutions for simulating the physical behavior of future products. CAM (Computer-Aided Manufacturing) is an abbreviation for computer-aided manufacturing, i.e. it is related to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play an important role in terms of technical efficiency. These technologies can be embedded in Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage company knowledge to develop products from concept to end of life cycle, across the concept of the extended enterprise. The PLM solution provided by Dassault Systèmes (trademarks CATIA, ENOVIA and DELMIA) provides an engineering center that organizes product engineering knowledge, a manufacturing center that manages manufacturing engineering knowledge, and an enterprise center that enables enterprises to integrate and connect into the engineering center and the manufacturing center. Taken together, the system provides an open object model that connects products, processes, and resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production, and service.

[0003] In these and other contexts, processing CAD 3D models is becoming increasingly important. In particular, segmenting discrete 3D models, such as meshes or point clouds representing mechanical parts, is particularly important.

[0004] European patent application EP21305195.6 filed on February 16, 2021 discloses a hierarchical segmentation of a 3D modeled object, comprising a first segmentation and a second segmentation. Each first segment obtained by the first segmentation corresponds to a simple geometric surface of the 3D modeled object. Each second segment obtained by the second segmentation corresponds to a free-form surface of the 3D modeled object.

[0005] Against this backdrop, there remains a need for an improved method for segmenting discrete 3D models representing mechanical components. Summary of the invention

[0006] Therefore, a computer-implemented method for segmenting a discrete 3D model representing a mechanical component is provided. The method comprises: obtaining a discrete 3D model; and applying hierarchical segmentation to the discrete 3D model. The hierarchical segmentation comprises a first segmentation comprising identifying a first segment among elements of the discrete 3D model. Each of the first segments corresponds to a primitive exhibiting at least one slidable motion. The hierarchical segmentation then comprises a second segmentation comprising identifying a second segment among unidentified elements of the discrete 3D model. Each of the second segments corresponds to a surface generated by a CAD feature. The hierarchical segmentation then comprises a third segmentation comprising identifying a third segment among unidentified elements of the discrete 3D model. Each of the third segments corresponds to a free-form surface of the discrete 3D model.

[0007] The method may include one or more of the following:

[0008] The method comprises: obtaining a predetermined CAD feature set, and in a second segmentation:

[0009] o The identifying includes exploring and merging adjacent unidentified elements of the discrete 3D model according to an increasing distance order based on one or more corresponding feature distances, wherein the feature distance is used to quantify shape similarity between a pair of CAD feature geometric surface portions;

[0010] o Discarding each surface represented by the cluster of elements resulting from the merging, for which each fitting of the CAD features to the surface results in a fitting error greater than a preset fitting threshold.

[0011] - said second segmentation further comprising: discarding each fitted CAD feature having a size smaller than a preset size threshold;

[0012] - The method further comprises: iteratively aggregating adjacent pairs of non-discarded element clusters, wherein at each iteration, the method further comprises optimizing the fitting error, the optimization being of the type

[0013]

[0014] Where N1 and N2 represent two adjacent surfaces, and score(f) measures the similarity between feature f and the union of N1 and N2, N1∪N2;

[0015] - the one or more characteristic distances include: a characteristic distance for penalizing mean curvature differences between surfaces and / or for penalizing irregularities of merged surfaces;

[0016] -The characteristic distance is of the following type:

[0017]

[0018] Where N1 and N2 represent adjacent surfaces, N i The average maximum curvature of , and where:

[0019]

[0020] Among them, P N represents the circumference of N, A N represents the area of ​​N, Express The clamping position, represents a node ∈ {N1, N2} and it is not N i , and α represents the hyperparameter that defines the reduced influence of the small surface, ∈ is a parameter;

[0021] - the method further comprises: rescaling one or more segments resulting from said third segmentation; and

[0022] applying the hierarchical segmentation to each rescaled one or more segments;

[0023] - The hierarchical segmentation is based on one or more tolerance thresholds, each tolerance threshold being a function of:

[0024] o an imprecision level of the discrete 3D model, the tolerance threshold increasing as the imprecision level increases,

[0025] o the discretization level (number of triangles or point density) of the discrete 3D model, the tolerance threshold increasing as the discretization level decreases, and / or

[0026] ○ The diameter of the discrete 3D model, the tolerance threshold increases as the diameter increases;

[0027] - the method stops the second segmentation when a minimum of the one or more corresponding feature distances is higher than at least one of the one or more tolerance thresholds;

[0028] - the first segmentation further comprises: for each surface resulting from the merging, in descending order of surface size,

[0029] - fitting a standard primitive to the surface;

[0030] ○ Calculate the fitting error; and

[0031] ○ If the fitting error is lower than a preset fitting threshold, aggregating adjacent surfaces whose fitting errors are also lower than the preset fitting threshold to the surface; and optionally, wherein the first segmentation further comprises: filtering the fitted standard primitives by discarding each primitive of the local standard area of ​​the fitted free-form surface, and further optionally, the first segmentation further comprises: discarding the fitted primitives having a size smaller than another preset size threshold;

[0032] - in said second segmentation, said detecting and merging is based on the constraint that surfaces connected by boundaries corresponding to known geometric demarcations between parts of said discrete 3D model cannot be merged; and / or

[0033] - The discrete 3D model is derived from physical measurements of the mechanical component.

[0034] An algorithm configured to run on a computer is also provided for segmenting a discrete 3D model representing a mechanical component. The algorithm includes the steps of obtaining a discrete 3D model, and applying a hierarchical segmentation to the discrete 3D model. The hierarchical segmentation includes: a first segmentation, then a second segmentation, and then a third segmentation. The first segmentation includes identifying first segments among elements of the discrete 3D model, each of the first segments corresponding to a primitive exhibiting at least one slidable motion. The second segmentation includes identifying second segments among unidentified elements of the discrete 3D model, each of the second segments corresponding to a surface generated by a CAD feature. The third segmentation includes identifying third segments among unidentified elements of the discrete 3D model, each of the third segments corresponding to a free-form surface of the discrete 3D model.

[0035] An algorithm configured to run and / or be implemented on a computer is also provided for segmenting a discrete 3D model representing a mechanical component. The algorithm includes: a device for obtaining a discrete 3D model, and a device for applying hierarchical segmentation to the discrete 3D model. The hierarchical segmentation includes: a first segmentation, then a second segmentation, and then a third segmentation. The first segmentation includes identifying first segments among elements of the discrete 3D model, each of the first segments corresponding to a primitive exhibiting at least one slidable motion. The second segmentation includes identifying second segments among unidentified elements of the discrete 3D model, each of the second segments corresponding to a surface generated by a CAD feature. The third segmentation includes identifying third segments among unidentified elements of the discrete 3D model, each of the third segments corresponding to a free-form surface of the discrete 3D model.

[0036] A computer program comprising instructions for performing the method is also provided.

[0037] A computer-readable data storage medium having the computer program recorded thereon is also provided.

[0038] A system is also provided, comprising a processor coupled to a memory having the computer program recorded thereon. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] Non-limiting examples will now be described with reference to the accompanying drawings, in which:

[0040] Figures 1 to 8B An example of this method is shown;

[0041] Fig. 9 An example of this system is shown. DETAILED DESCRIPTION

[0042] A computer-implemented method for segmenting a discrete 3D model is proposed. The discrete 3D model represents a mechanical component. The method includes obtaining a discrete 3D model, and applying hierarchical segmentation to the discrete 3D model. The hierarchical segmentation includes: a first segmentation, then a second segmentation, and then a third segmentation. The first segmentation includes identifying a first segment among elements of the discrete 3D model. Each identified first segment corresponds to a primitive that exhibits at least one slidable motion. The second segmentation includes identifying a second segment among unidentified elements of the discrete 3D model (i.e., among elements that were not identified in the first segmentation). Each identified second segment corresponds to a surface generated by a CAD feature. The third segmentation includes identifying a third segment among unidentified elements of the discrete 3D model (i.e., among elements that were not identified in the first segmentation and the second segmentation). Each of the identified third segments corresponds to a free-form surface of the discrete 3D model.

[0043] This constitutes an improved method for segmenting discrete 3D model objects, ie discrete 3D models representing mechanical components.

[0044] It is noteworthy that the method segments the 3D model by identifying segments corresponding to simple geometric surfaces (i.e., first segments), segments each corresponding to surfaces generated by CAD features (i.e., second segments), and segments corresponding to free-form surfaces (i.e., third segments), i.e., providing a set of segments, each of which corresponds to a portion of the 3D model. The method thereby provides a robust and accurate segmentation of a discrete 3D model. In fact, the method not only identifies segments corresponding to simple geometric surfaces, but also segments corresponding to CAD features and free-form surfaces, which may be complex to identify (i.e., fitting geometric primitives or features to these segments may be complex). The overall segmentation (i.e., the resulting set of first segments and second segments) is therefore particularly accurate.

[0045] In addition, the method provides a multi-step hierarchical segmentation that improves the efficiency and robustness of the segmentation. In fact, the method initially performs a first segmentation that identifies segments corresponding to simple geometric primitives. Thus, the method efficiently relies on the consideration that, first of all, simple geometric primitives can be efficiently identified in a discrete 3D model (i.e., a 3D modeled object), so the method identifies them through the first segmentation. Thus, at the end of the first segmentation, the method has already partially segmented the 3D modeled object, in which segments corresponding to simple geometric surfaces have been identified. Thus, it is then necessary to identify segments corresponding to CAD features and free-form surfaces, which the method accomplishes through a second segmentation and a third segmentation. The discrete 3D model contains at least one surface generated by a CAD feature (e.g., extrusion). The method applies a second segmentation on these remaining unsegmented parts to identify second segments, each second segment corresponding to a surface generated by a CAD feature. Such surfaces are more complex than the primitives identified in the first segmentation. In other words, the method starts with the least complex segments, followed by the segments corresponding to CAD features, whereby when it comes to segments corresponding to free-form surfaces, which are the most complex segments to identify due to their free-form geometry, the method identifies these segments only within a portion of the 3D modeled object, since the rest of the 3D modeled object consists of the already identified first line segments and second segments. Thus, the method of multiple segmentation provides efficiency and robustness.

[0046] The method is used to segment a discrete 3D model representing a mechanical part. The method is thus a 3D segmentation method. As mentioned above, given a discrete 3D model (e.g., a mesh), 3D segmentation usually mainly includes segmenting / partitioning the faces of the 3D model into several connected clusters, called segments, where each segment maximizes its internal consistency while minimizing its similarity with respect to other segments, and these clusters / segments are the results of the segmentation and may be called "segments".

[0047] Compared to existing solutions in the prior art (e.g., the already cited European patent application No. EP21305195.6), the method constitutes an improved solution, in particular by performing a second segmentation on surfaces corresponding to CAD features. In other words, the method separates the segmentation of such surfaces generated by CAD features from the segmentation of free-form surfaces in general. The surfaces identified in the second segmentation can constitute an important part of the segmentation. In other words, in some cases, the part may contain only or a large number of small surfaces generated by CAD features, the second segmentation allows them to remain separated, while the third segmentation step merges some of them together to form free-form surfaces. In a complete CAD reconstruction pipeline, it is usually important to accurately segment those surfaces corresponding to CAD features. On the other hand, the second segmentation (i.e., identifying second fragments, each of which corresponds to a surface generated by a CAD feature) allows to recover (i.e., identify) CAD features that would have been lost during the third segmentation step (if the second step is not performed). It helps to reduce the number of free-form fragments and / or their size (e.g., their area on the grid). For example, as the method performs hierarchical segmentation, where segmentation is performed sequentially and each (first, second, and third) segmentation identifies corresponding segments among the unidentified elements of the discrete 3D model in the previous segmentation, separating the second segmentation from the third segmentation significantly reduces the number of remaining unidentified elements for the third segmentation. This improves the efficiency of the hierarchical segmentation of the method by reducing free-form segmentation as much as possible. In addition, the method directly identifies simple primitives and CAD features without the need for a post-processing step of CAD feature recognition after segmentation.

[0048] The method implements this general segmentation framework. Specifically, the method takes the discrete 3D model object obtained by the method as input and outputs a set of fragments. The set of fragments can be called "segments output / generated by the method" (i.e., segments of the discrete 3D model), or simply "segments". In the case of this method, this set of fragments mainly includes a first fragment identified by a first segmentation, a second fragment identified by a second segmentation, and a third fragment identified by a third segmentation. This set of fragments can, before being output by the method as an output segmentation, optionally undergo subsequent processing. Although a general segmentation framework is implemented, the particularity of the method lies in the overall segmentation performed by the method, which is a hierarchical segmentation, including a first segmentation, a second segmentation, and a third segmentation. In other words, the set of fragments output by the method is identified by the multi-step hierarchical segmentation as previously discussed, that is, by three segmentations performed in a specific order (i.e., the first segmentation is before the second segmentation, and the second segmentation is before the third segmentation).

[0049] Each segment identified by the method, whether the first segment, the second segment or the third segment, is part of a discrete 3D model that constitutes a surface that forms a geometrically coherent part of the shape of the discrete 3D model. Each segment identified by the method tends to maximize its internal consistency while minimizing its similarity to other segments and has clear boundaries relative to other segments. For example, each segment can form a basic surface of the discrete 3D model, for example, which can be represented (e.g., fitted and / or parameterized) by a single CAD feature (e.g., a CATIA feature).

[0050] Each segment may form a surface that is geometrically coherent from the perspective of manufacturing the mechanical component. In other words, in the real world, the mechanical component may be divided into a plurality of parts, each having a corresponding geometry that is required or adapted to a corresponding manufacturing process (e.g., molding, additive manufacturing, or machining), each of which is represented by one or more segments in the segmentation output by the method. In other words, the set of segments output by the method may mainly include subsets, each of which is composed of one or more segments, wherein for each subset, the one or more segments of the subset together represent the surface shape of a portion of the mechanical component that is coherent from the perspective of manufacturing (i.e., the layout of the material), i.e., requiring or adapted to a certain manufacturing process (e.g., possibly to be selected among several suitable manufacturing processes). For example, one or more such subsets may each represent a corresponding portion of the mechanical component to be manufactured by machining, and each have a shape (i.e., a geometry) adapted to be a path for a machining tool. Additionally or alternatively, one or more other subsets may each represent a corresponding portion of the mechanical component to be manufactured by molding, and each have a shape (e.g., a geometry) corresponding to the shape (i.e., the geometry) of the coherent portion of the mold. The mould itself may be manufactured by machining, and each such portion may present a shape (i.e. a geometry) adapted to be a path for a machining tool. Additionally or alternatively, one or more other subsets may each represent a respective portion of a mechanical component to be manufactured by additive manufacturing, and each have a shape (e.g. a geometry) corresponding to the shape (i.e. a geometry) of the final outer layer formed by the additive production process. The method thus allows the identification of portions of a mechanical component that are coherent in terms of manufacturing.

[0051] In an example, the discrete 3D model is generated from physical measurements of the mechanical part. In such an example, the method may obtain the discrete 3D model via a 3D scanning process. In other words, the method may include, before obtaining the discrete 3D model, performing a scanning process on a real-world sample of the mechanical product. The 3D scanning process may form a 3D reconstruction process or be part of a 3D reconstruction process. The 3D reconstruction process may include providing a mechanical part, providing one or more physical sensors, each of which is configured to acquire a corresponding physical signal, and acquiring one or more corresponding physical signals by operating one or more physical sensors on the mechanical part (i.e., scanning the mechanical part with each sensor). The scanning process may output a point cloud or mesh representing the mechanical part. The method may convert the point cloud into a mesh. In such an example, the method may form a process of obtaining a CAD model of a physical object via a scanning process, or be part of the process. In such an application, the method may also include, after segmentation, detecting a volume (or a portion of a volume) corresponding to the fragment. Such a mold may be particularly relevant for manufacturing copies from a measured prototype or preparing for a large-scale production phase. Such an application is particularly relevant for reverse engineering using a sample of a physical object when the manufacturing details of the object are not available. For example, the method can be used to create a physical model of an already existing manufactured product.

[0052] This method is now discussed further.

[0053] Obtaining (i.e. providing) the discrete 3D model may include, for example, retrieving the 3D model from a (e.g. remote) database or memory, which has stored the discrete 3D model after creating, acquiring or obtaining (e.g., through a reconstruction process as previously discussed). For example, retrieving may include accessing a database or memory and downloading the discrete 3D model. Alternatively, obtaining the discrete 3D model may include performing physical measurements on the mechanical component and determining the discrete 3D model from the physical measurements, for example, through a 3D reconstruction process. Providing the discrete 3D model may also include, for example, creating the 3D model by a user, for example by drawing it.

[0054] Then, after obtaining the discrete 3D model, the method includes performing hierarchical segmentation of the discrete 3D model. The hierarchical segmentation includes three segmentations: a first segmentation, a second segmentation, and a third segmentation. The input of the first segmentation is the provided discrete 3D model, and outputs a partial segmentation thereof, namely, a first segment. The input of the second segmentation is the portion of the discrete 3D model that has not been segmented as a result of the first segmentation, namely, the provided discrete 3D model minus the set of first segments, and outputs its segmentation, namely, a second segment. The input of the third segmentation is the portion of the discrete 3D model that has not been segmented as a result of the first segmentation and the second segmentation, namely, the provided discrete 3D model minus the union of the set of first segments and the set of second segments, and outputs its segmentation, namely, a third segment. The union of the set of first segments, the set of second segments, and the set of third segments forms a set of segments as a result of the hierarchical segmentation. This set of segments forms a segmentation of the provided discrete 3D model.

[0055] The first segmentation includes identifying first segments among the surfaces of the discrete 3D model, each first segment corresponding to a simple geometric surface of the discrete 3D model. In other words, the first segmentation finds those surfaces that form simple geometric surfaces among the surfaces of the discrete 3D model and identifies them as first segments. Simple geometric surfaces are primitives that present at least one slidable motion. Slidable motion is a linear combination of translation and rotation. In other words, a simple geometric surface is a primitive that is invariant by at least one linear combination of translation or rotation and can be fitted by a standard surface (e.g., a plane, cylinder, cone, sphere, or torus). The concept of slidable motion is known from the reference Gelfand N. and Guibas LJ, Shape Segmentation Using Local Slippage Analysis, Eurographics Symposium on Geometry Processing, 2004, which is incorporated herein by reference. It is worth noting that the content of Section 2 of the reference provides the definition of slidable motion and methods for calculating them, which are incorporated herein by reference. The first segmentation can use any method for identifying simple geometric surfaces on discrete 3D models to identify the first segment.

[0056] In an example, identifying the first fragment may include exploring and merging adjacent surfaces of the discrete 3D model. Exploring and merging means that the first segmentation iteratively visits adjacent surfaces of the discrete 3D model and merges them, as long as their merging can form or contribute to the formation of the first fragment. Each surface is an external part of the discrete 3D model. Any surface can be the result of merging two previous surfaces. Now, the discrete 3D model can be a 3D mesh. In this case, the surface is a mesh face (for example, a triangle if the mesh is a triangular mesh), or a union of mesh faces, resulting from a previous merge or iteratively generated from a previous merge. In such a case, exploring and merging can use a mesh structure to iteratively visit adjacent mesh faces or their unions, and merge them where appropriate. Alternatively, the discrete 3D model can be a 3D point cloud, in which case the surface is defined by the points of the point cloud. In such a case, exploring and merging can use a point cloud structure, by exploring and clustering adjacent points of the point cloud, which is directly equivalent to exploring and merging adjacent surfaces defined by the points of the point cloud. In such a case, at the beginning of exploration and merging, in order to perform exploration and merging, the points can be regarded as surfaces.

[0057] The exploration and merging are performed according to an increasing distance order based on one or more first distances. In other words, the data on which the exploration and merging are based include: for each first distance, the value of each first distance between adjacent surface parts, and the surface part is a part of the surface. As the surfaces are iteratively merged, this data can be updated along with the exploration and merging, so as to form new adjacent surfaces with new first distance values. The exploration and merging are performed according to an increasing distance order based on the one or more first distances, that is, the exploration and merging tend to explore the first adjacent surfaces that are close according to the one or more first distances. Now, each first distance quantifies the shape similarity between the simple geometric surface parts, that is, the shape similarity between adjacent simple geometric surfaces, because the method uses the first distance between adjacent parts (as adjacent surfaces to be merged). Thereby in the exploration and merging process, each first distance quantifies whether the adjacent surfaces include adjacent parts that together form (that is, if merged) a part of a simple geometric surface, and if they include, they tend to be merged. Any such first distance can be used.

[0058] In an example, the method may include obtaining a predetermined set of CAD features. Then, in the second segmentation, the identification includes: exploring and merging adjacent unidentified elements of the discrete 3D model according to a sequence. The sequence is an increasing distance order based on one or more corresponding feature distances. This means that the second exploration and merging are performed according to an increasing distance order based on the one or more feature distances, that is, the exploration and merging tend to explore the first adjacent surface close to the one or more feature distances. One or more corresponding feature distances quantify the shape similarity between a pair of CAD feature geometric surface parts. "Shape similarity" means that each feature distance quantifies the degree to which adjacent parts form a geometrically coherent simple geometric surface or a part thereof after merging (if merged), such as a relatively small change in curvature and / or normal. In addition, the second segmentation discards each surface represented by the element cluster generated by the merge. For each of these discarded surfaces, each fitting of the CAD feature to the surface will result in a fitting error greater than a preset fitting threshold.

[0059] The first segmentation also includes: filtering the fitted canonic primitives. "Discarding" the fitted primitives means that the corresponding surfaces of the fitted primitives will not be added to the first fragment. This improves the robustness of the method. In fact, exploration and merging as well as fitting and aggregation may in some cases result in too many primitives so that the method cannot output satisfactory segmentation. There may be some CAD feature surfaces that include many local areas, and these local areas can be fitted by canonic primitives, but they should not be so because they are not simple geometric surfaces / primitives. If these local areas have been fitted, they will be filtered and discarded. Discarded surfaces are not recognized surfaces, while non-discarded surfaces are recognized surfaces.

[0060] The second segmentation may also include discarding each fitted CAD feature having a size less than a preset size threshold. By "discarding" a fitted CAD feature, it is meant that the corresponding surface of the fitted CAD feature is not added to the second segment. The size of the fitted CAD feature refers to the characteristic size of the corresponding surface, such as the surface area of ​​the surface or the diameter of the surface. Discarding small features allows for accurate identification or discarding of surfaces in case they are not correctly merged / clustered by the exploration and merging, further improving the robustness of the method.

[0061] The method may also include iteratively aggregating neighboring pairs of non-discarded element clusters. In such aggregating, the method iteratively explores elements of the graph of the provided 3D model (faces in the case of a 3D mesh, vertices in the case of a 3D point cloud), and the explored elements are neighbors of elements belonging to the fitted CAD feature. In such an example, at each iteration, the method includes optimizing the fitting error, which optimization is of the following type

[0062]

[0063] Where N1 and N2 represent two adjacent surfaces, and score(f) measures the similarity between feature f and the union N1∪N2 of N1 and N2. The minimization is to be solved among the candidate features f fitted on the union N1∪N2. The score function represents the fitting error of feature f relative to the faces within N1∪N2. The score function can be different for each type of feature, and different explicit forms can be used for features of a single type. For example, the method can use difference score functions for extrusion, rotation, and fillet. For example, for extrusion, the score function can be of the following type:

[0064]

[0065] besides Among them, n p is the normal of the extruded surface S, is the corresponding surface area.

[0066] In the example, one or more second distances mainly include (key to) a characteristic distance, which treats the average curvature difference between the surfaces and / or treats the irregularities of the merged surfaces. In other words, this characteristic distance may include: a first term, which treats the average curvature difference between the surfaces and / or a second term, which treats the irregularities of the merged surfaces. Alternatively, the second term may promote the smoothness of the boundary between adjacent surfaces. The distance may, for example, be the product of these two terms. A characteristic distance may be of the following type:

[0067]

[0068] Where N1 and N2 represent adjacent surfaces, N j The average maximum curvature of , and where:

[0069]

[0070] Among them, P N represents the circumference of N, A N represents the area of ​​N, Express Clamping represents a node ∈ {N1, N2} and it is not N i , and α represents a hyperparameter that defines the reduced influence of small surfaces, ∈ is a parameter.

[0071] The method may further comprise: rescaling one or more segments resulting from the third segmentation; and applying the hierarchical segmentation to each of the rescaled one or more segments. The rescaling may comprise performing the method using a modified tolerance threshold.

[0072] Hierarchical segmentation can be based on one or more tolerance thresholds. Each tolerance threshold can be a function of the imprecision level (e.g., concavity or noise) of the discrete 3D model. Such a tolerance threshold can increase with the increase of the imprecision level. Alternatively or additionally, each tolerance threshold can be a function of the discretization level (e.g., the number of triangles in a mesh or the point density in a point cloud) of the discrete 3D model. Such a tolerance threshold can increase with the decrease of the discretization level. Further alternatively or additionally, each tolerance threshold can be a function of the diameter of the discrete 3D model. Such a tolerance threshold can increase with the increase of the diameter. Each of the above tolerance thresholds can be a linear function of the noise level.

[0073] The method may stop the second segmentation when a minimum value of the one or more corresponding feature distances is higher than at least one of the one or more tolerance thresholds.

[0074] Then, after the first segmentation and the second segmentation, the execution of the hierarchical segmentation also includes a third segmentation. The third segmentation includes identifying a third segment among the unidentified surfaces of the discrete 3D model, each of which corresponds to a free-form surface of the model. A free-form surface refers to any surface that is not a simple geometric surface. A free-form surface cannot be fitted or parameterized by a simple primitive or a surface generated by a CAD feature (e.g., any CAD feature with a predetermined set), but can still be parameterized using suitable tools (e.g., NURBS, Nonuniform rational B-spline). The identification of the third segment may include probing and merging adjacent unidentified surfaces of the discrete 3D model. This may be referred to as "third probing and merging" because it is the probing and merging of the third segmentation to distinguish it from the probing and merging of the first segmentation and the second segmentation. Probing and merging means that the second segmentation iteratively visits adjacent unidentified surfaces of the discrete 3D model and merges them, as long as their merging can form or contribute to the formation of a third segment. Each surface is an external part of the discrete 3D model and can be the result of the previous merging of two surfaces. As previously described, the 3D model may be a 3D mesh, in which case the surface is a mesh face (e.g., a triangle if the mesh is a triangular mesh), or a union of mesh faces, resulting from a previous merge or iteratively resulting from a previous merge. In such a case, the second exploration and merging may use the mesh structure to iteratively access adjacent mesh faces or their unions and merge them where appropriate. As previously described, the discrete 3D model may be a 3D point cloud, in which case the surface is defined by the points of the point cloud. In such a case, the second exploration and merging may use the point cloud structure, by exploring and clustering adjacent points of the point cloud, which is directly equivalent to exploring and merging adjacent surfaces defined by the points of the point cloud. In such a case, at the start of the second exploration and merging, the points may be considered as surfaces. Prior to the second exploration and merging, the method may include marking the first fragment as identified. And not explored by the second exploration and merging.

[0075] The third exploration and merging is performed according to an increasing distance order based on one or more second distances. In other words, the data on which the third exploration and merging is based includes: for each second distance, the value of each second distance between adjacent surface parts, and the surface part is a part of the surface. As the surface is iteratively merged, this data can be updated along with the third exploration and merging, so as to form a new adjacent surface with a new second distance value. The third exploration and merging is performed according to an increasing distance order based on the one or more second distances, that is, the exploration and merging tends to explore the first adjacent surfaces that are close according to the one or more second distances. Now, each second distance quantifies the shape similarity between simple free-form surface parts, that is, the shape similarity between adjacent free-form surfaces, because the method uses the distance between adjacent parts (as adjacent surfaces to be merged). Thus in the third exploration and merging process, each second distance quantifies whether the adjacent surfaces include adjacent parts that form a geometrically coherent part of the free-form surface, and if they include, they tend to be merged. In other words, "shape similarity" means that in the case of a second distance, the second distance quantifies the extent to which adjacent portions, if merged, form a geometrically coherent free-form geometric surface or a portion thereof. Any such second distance can be used.

[0076] The first segmentation may also include (after probing and merging), for each surface resulting from the merging (i.e., a surface of a mesh output by the merging), in descending order of surface size (e.g., of surface area):

[0077] - fitting a canonic primitive to the surface, a canonic primitive being a primitive that exhibits at least one slidable motion, the concept of slidable motion having been previously defined and discussed;

[0078] - calculate the fitting error; and

[0079] - if the fitting error is below a preset fitting threshold, aggregating adjacent surfaces whose fitting errors are also below the preset fitting threshold to this surface;

[0080] - If the fitting error is larger than a preset threshold, the surface is discarded.

[0081] This allows for accurate identification or discarding of surfaces in case they were not correctly merged / clustered by Probe and Merge S200, further improving the robustness of the method.

[0082] By "decreasing order of size" is meant that the method explores and merges the resulting surfaces in decreasing order of surface size (e.g., area), and performs fitting and possibly aggregation on these surfaces in this order. The exploration can be limited to surfaces with sufficiently large size (e.g., area), e.g., greater than a preset threshold. This allows for efficient aggregation of small merged / aggregated surfaces / regions corresponding to larger geometric primitives before attempting fitting.

[0083] Given a surface resulting from the merge, which corresponds to the nodes of the clusters in the aforementioned implementation, the merge fit may include attempting to fit one or more standard primitives to the surface, the one or more standard primitives, for example, selected from a common set of standard geometric primitives, using known primitive fitting techniques such as quadratic fitting or BFGS (Broyden, Fletcher, Goldfarb, Shanno) algorithm optimization, or any primitive fitting techniques discussed in the following references, A. Kaiser, A survey of Simple Geometric Primitives Detection Methods for Captured 3D data, Computer Graphics Forum 38 (4), 2018, or T. Birdal et.al., Generic Primitive Detection in Point Clouds Using Novel Minimal Quadric Fits, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019, all of which are incorporated herein by reference. The method then calculates the fitting error for each primitive attempted, and selects the primitive with the lowest fitting error to fit to the surface. A common set of standard geometric primitives may include planes, cylinders, cones, and spheres.

[0084] If the fitting error of the primitive is below a preset fitting threshold, for example, if the distance (e.g., Euclidean distance) of a given proportion of elements of the surface (e.g., mesh elements if the discrete 3D model is a 3D mesh, or points of a point cloud if the discrete 3D model is a 3D point cloud) to the primitive is closer than a threshold, then the surface or the corresponding cluster node in the aforementioned implementation is considered to correspond to the fitted primitive. If this is the case, the method aggregates S220 adjacent surfaces whose fitting errors are also below the preset fitting threshold to the surface. In other words, the aggregation may include iteratively exploring adjacent surfaces of the surface and aggregating / merging them to the surface as long as their distance to the primitive is also below a given threshold. Or in the aforementioned implementation, aggregation S220 may perform any known continuous neighbor aggregation method, which iteratively explores the elements of the graph of the provided discrete 3D model (faces in the case of a 3D mesh, vertices in the case of a 3D point cloud) that are neighbors of elements belonging to the fitted geometric primitives, and if their distance to the primitive is also below a given threshold, they are added to the set of primitive elements using, for example, a region-growing-based approach. This allows all elements belonging to each geometric primitive to be accurately classified, even if they are not correctly clustered due to, for example, boundary curvature calculation problems.

[0085] In the second segmentation, the exploration and merging may be based on the constraint that surfaces connected by boundaries corresponding to known geometric demarcations between parts of the discrete 3D model cannot be merged.

[0086] As is widely known in the field of manufacturing CAD, segments, such as the segments output by this method, can be used in various applications or processes where segmentation is required or needed at certain steps. Manufacturing CAD designates a software solution used to assist the design process and the manufacturing process, with the goal of producing a physical product corresponding to the designed CAD 3D model. "Designing a manufactured product / mechanical component / mechanical product" designates any action or series of actions that is at least part of a process of describing in detail a modeled object (3D or 2D) of a manufactured product / mechanical component / mechanical product. The method may form such a process, or may form at least a part of such a process. In this context, the CAD model represents a manufactured product (being a mechanical component) that can be manufactured downstream of its design (e.g., using a design process that includes the method). The method may therefore be included in such a manufacturing CAD process, which includes a design process (i.e., a design process of a mechanical component represented by a CAD 3D model) and / or a manufacturing process (i.e., a manufacturing process of a mechanical component after its design has been completed by a version of the CAD 3D model).

[0087] According to the method, segmentation of discrete 3D model objects provides an improved representation of the outer surface of the 3D model object, which can be useful in many applications. In addition, the segments can be parameterized and can be edited using CAD tools after segmentation, which allows manipulation (e.g., editing) of these segments, which can also be useful in many applications. By "parameterized" is meant that each segment can fit exactly a 3D geometric object represented by a parametric equation or a parametric function, thus involving one or more parameters, wherein one or more parameters can take values ​​within respective continuous ranges. Compared to non-parametric 3D geometric objects such as discrete representations (e.g., point clouds, meshes, voxel representations), 3D parameterized geometric objects allow easy manipulation and / or editability and / or efficient storage in memory. Therefore, the method can generally be used to segment measured discrete 3D model objects and then process them into editable data structures.

[0088] The method may, for example, form or be part of a CAD feature acquisition step in a design process, which may be a step of feature tree construction, i.e., a step of constructing a CAD feature tree under a CAD model. The concept of feature trees is known in manufacturing CAD. Thus, the method generally manipulates modeling objects, such as a finite CAD model output by the method. A modeling object is any object defined by data stored, such as in a database. By extension, the expression "modeling object" designates the data itself. Depending on the type of system, modeling objects may be defined by different types of data. The system may in fact be any combination of a CAD system, a CAE system, a CAM system, a PDM (Product Data Management) system and / or a PLM system. In these different systems, modeling objects are defined by corresponding data. CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data may be involved accordingly. However, these systems are not mutually exclusive, since modeling objects may be defined by data corresponding to any combination of these systems. Thus, the system may be a CAD, CAE, PLM and / or CAM system, as is apparent from the definitions of these systems provided below.

[0089] CAD solution (e.g. CAD system or CAD software), further means any system, software or hardware adapted at least for designing modeled objects based on a graphical representation of the modeled objects and / or their structured representation (e.g. feature tree), such as CATIA. In this case, the data defining the modeled objects include data allowing the representation (graph) of the modeled objects. The CAD system can, for example, use edges or lines, and in some cases faces or surfaces, to provide representations of CAD modeled objects. Lines, edges or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). Specifically, CAD files contain specifications from which geometric figures can be generated, which in turn allow representations to be generated. The specifications of the modeled objects can be stored in a single CAD file, or in multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of one megabyte per component. And the modeled objects may typically be assemblies of thousands of components.

[0090] In the context of CAD, a modeled object may typically be a 2D or 3D modeled object, for example representing a product such as a component or an assembly of components, or perhaps an assembly of products. A 2D or 3D modeled object may be a manufactured product, i.e. a product to be manufactured. By "3D modeled object", it is meant any object modeled by data that allows its 3D representation. The 3D representation allows the component to be viewed from all angles. For example, a 3D modeled object, when represented in 3D, can be manipulated and rotated about any of its axes, or about any axis in the screen on which the representation is displayed. This obviously excludes 2D icons, which are not modeled in 3D. The display of a 3D representation facilitates design (i.e., increases the statistical speed at which a designer completes a task). This speeds up the manufacturing process in the industry, as the design of the product is part of the manufacturing process.

[0091] The 2D or 3D modeled object may represent the geometry of a product to be manufactured in the real world after its virtual design has been completed using, for example, a CAD / CAE software solution or a CAD / CAE system, such as a (e.g. mechanical) component or an assembly of components (or equivalent to an assembly of components, since from the point of view of the method an assembly of components may be considered as a component itself or the method may be applied independently to each component of an assembly), or more generally any rigid body assembly (e.g. a moving mechanism). CAD / CAE software solutions allow the design of products in various and unlimited industrial sectors, including: aerospace, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine and / or offshore oil / gas production or transportation. Therefore, the 3D model designed by this method can represent an industrial product, which can be any mechanical part, such as parts of land vehicles (including, for example, automobile and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), parts of aircraft (such as fuselage equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), parts of naval vehicles, including, for example, naval equipment, merchant ships, offshore equipment, yachts and workboats, marine equipment), general mechanical parts (including industrial manufacturing machinery, heavy mobile machinery or equipment, installation equipment, industrial equipment products, metal products, tire manufacturing products), electromechanical or electronic components (including consumer electronics, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical equipment and equipment), consumer products (including furniture, home and garden products, leisure products, fashion products, hard goods retailer products, soft goods retailer products) and packaging (including food and beverage, tobacco, beauty and personal care, household product packaging).

[0092] CAD systems can be history-based. In this case, the modeled object is further defined by data including the history of geometric features. The modeled object can actually be designed by a physical person (i.e., a designer / user) using standard modeling features (e.g., extrusion, rotation, cutting and / or rounding) and / or standard surface features (e.g., sweeping, blending, lofting, filling, deformation and / or smoothing). Many CAD systems that support such modeling capabilities are history-based systems. This means that the creation history of the design features is usually saved through a non-cyclic data flow that links the geometric features together through input and output links. The history-based modeling paradigm has been known since the early 1980s. The modeled object is described by two persistent data representations: history and B-rep (i.e., boundary representation). B-rep is the result of the calculations defined in the history. When the modeled object is represented, the shape of the part displayed on the computer screen is the B-rep (e.g., its subdivision). The history of the part is the design intent. Basically, the history collects information about the operations that the modeled object has undergone. B-rep can be saved with the history to make it easier to display complex parts. A history record can be saved with the B-rep to allow design changes to be made to the part in accordance with design intent.

[0093] A PLM system is any system suitable for managing modeled objects that represent physical manufactured products (or products to be manufactured). Thus, in a PLM system, modeled objects are defined by data suitable for manufacturing physical objects. These can typically be dimensional values ​​and / or tolerance values. For the correct manufacture of an object, it is indeed best to have such values.

[0094] CAE solutions are any solutions, hardware or software, suitable for analyzing the physical behavior of a modeled object. A well-known and widely used CAE technology is the finite element model (FEM), which is equivalent to the CAE model in the following. FEM usually involves dividing the modeled object into a number of elements, i.e. a finite element mesh, whose physical behavior can be calculated and simulated by equations. Such CAE solutions are sold by Dassault Systèmes under the trademark Another growing CAE technology involves the modeling and analysis of complex systems consisting of multiple components from different physical domains without CAD geometry data. CAE solutions allow the simulation of the product to be manufactured, allowing for optimization, improvement and validation. Such CAE solutions are sold by Dassault Systèmes under the trademark Provided. CAE can be used to ensure that various structural requirements (such as but not limited to mass, stiffness, strength, durability) are achieved by the new CAD model. Some of these requirements can be called key performance indicators (KPIs). For many industrial products (e.g., automobiles, aircraft, consumer packaged goods, high-tech), these KPIs are conflicting, for example, lower mass usually leads to lower stiffness. Therefore, optimization methods are often applied to find the best compromise between KPIs.

[0095] A CAM solution refers to any solution, i.e. software of hardware, suitable for managing the manufacturing data of a product. Manufacturing data generally includes data related to the product to be manufactured, the manufacturing process and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, it can provide the CAM user with information about the feasibility, duration or number of resources of a manufacturing process, such as a specific robot that can be used in a specific step of the manufacturing process; thus allowing a decision to be made on management or the required investment. CAM is a subsequent process after the CAD process and potentially the CAE process. For example, a CAM solution can provide information about machining parameters or molding parameters consistent with extrusion features provided in the CAD model. Such CAM solutions are sold by Dassault Systèmes under the trademarks CATIA, Solidworks or supply.

[0096] CAD and CAM solutions are therefore closely related. In fact, CAD solutions focus on the design of a product or component, while CAM solutions focus on how it is manufactured. Designing a CAD model is the first step towards computer-aided manufacturing. In fact, CAD solutions provide key capabilities such as feature-based modeling and boundary representations (B-Rep) to reduce the risk of errors and loss of precision in the manufacturing process handled by CAM solutions. In fact, the CAD model is meant to be manufactured. Therefore, it is a virtual twin of the object to be manufactured, also called a digital twin, with two goals:

[0097] Checking the correct behavior of the item to be manufactured in a specific environment; and

[0098] Ensure the manufacturability of the object to be manufactured.

[0099] PDM is the abbreviation of Product Data Management. A PDM solution is any solution suitable for managing all types of data related to a specific product, whether hardware or software. PDM solutions can be used by all participants in the product life cycle: mainly engineers, but also project managers, finance personnel, sales personnel and buyers. PDM solutions are usually based on a product-oriented database. It allows participants to share consistent data about their products, thus preventing participants from using different data. Such PDM solutions are sold by Dassault Systèmes under the trademark supply.

[0100] The modeling object used as input by this method is a (3D) discrete geometric representation of a manufactured product / mechanical product / mechanical component. A discrete geometric representation is a data structure comprising discrete data sets. Each piece of data can specify an element of a product / mechanical component and is called a discrete element. The discrete geometric representation can be 3D or alternatively 2D. Alternatively, however, the discrete geometric representation can be both 3D and 2D at the same time, i.e., it can include a 3D part that is a 3D discrete geometric representation and a 2D part, the 2D part being a discrete geometric representation, such as a mixed 3D-2D mesh (for example, for modeling a product comprising a thin part modeled with a 2D part and a thick part modeled with a 3D part). In an example, the discrete geometric representation can include such a large amount of data, higher than one hundred, one thousand or ten thousand.

[0101] In the case of a 3D discrete geometric representation, the 3D discrete geometric representation may be a solid / volume 3D discrete geometric representation of a product / mechanical component, such as a solid 3D finite element model (FEM) or a 3D volume mesh (e.g., a 3D tetrahedral mesh). In such a case, each piece of data may represent a corresponding geometric entity positioned in a 3D space, so that these data form a solid representation of the mechanical component / product (i.e., a "solid 3D discrete geometric representation"). Each geometric entity may represent a corresponding position of a 3D object (i.e., a material point) (in other words, a corresponding portion of the material constituting the solid represented by the 3D object). The aggregation (i.e., union or juxtaposition) of these geometric entities represents the 3D object as a whole as a solid / volume. Alternatively, the 3D discrete geometric representation may be a skin 3D discrete geometric expression, representing the skin of the product / mechanical component, such as a 3D surface mesh (e.g., a triangular surface mesh) or a subdivision. In such a case, each piece of data may represent a corresponding geometric entity located in a 3D space, so that these data form a representation of the skin of the mechanical product (i.e., a "skin 3D discrete geometric representation"). In such a case, each geometric entity may represent a corresponding location on the outer surface of the 3D object (i.e., a material point) (in other words, a corresponding portion of the outer surface of the volume occupied by the constituent materials of the entity represented by the object). The aggregation (i.e., the union or juxtaposition) of these geometric entities as a whole represents at least a portion of the outer surface of the object.

[0102] In the case of a 2D discrete geometric representation, each piece of data may represent a corresponding geometric entity positioned in a 2D space. The 2D discrete geometric representation may be a 2D finite element mesh or any 2D mesh. The discrete geometric representation may be associated with one or more thickness values, such as a distribution of thickness values ​​on its finite elements. Such a 2D discrete geometric representation may, for example, represent a generally planar product, such as a stamped part (e.g., with a constant thickness value) or a composite part (e.g., with different thickness values).

[0103] The segmentation output by the method may be or form a CAD model, for example including or mainly including a feature tree and / or a B-rep. Such a model may be generated from a CAE model and may be generated by a CAE to CAD conversion process, so that the method may, for example, include an initial stage.

[0104] The CAD model can be feature-based (e.g., it can include a feature tree, and optionally a corresponding B-rep obtained by executing the feature tree). The feature-based 3D model allows (e.g., during the determination of a manufacturing file or CAM file as described below) the detection and automatic resolution of geometric errors in the CAD model, such as collisions that will affect the manufacturing process. A collision is the interpenetration between two parts of a 3D model, for example due to their relative motion. Furthermore, such collisions can sometimes only be detected by finite element analysis based on the CAD feature model. Therefore, the resolution of the collision can be performed by iteratively modifying the parameters of the features and performing a finite element analysis with or automatically by the CAD solution.

[0105] As another example, a feature-based 3D model allows (e.g., during the determination of a manufacturing file or CAM file as described below) the automatic creation of tool paths for a machine via computer numerical control (CNC). With CNC, each object to be manufactured gets a customized computer program stored in and executed by the machine control unit, which is a microcomputer connected to the machine. The program contains the instructions and parameters that the machine tool will follow. Mills, lathes, routers, grinders, and lasers are examples of common machine tools whose operations can be automated via CNC.

[0106] A key feature of a CAD model is that it can be precisely and unambiguously designed by linking a small number of high-level parametric design operations (including but not limited to sketching, extrusion, chamfering), and edited by modifying its high-level parameters. This is a key difference from polyhedral representations, such as triangular surface meshes, which can represent any 3D shape but do not provide the modification or parameterization capabilities required in industrial design environments.

[0107] Since the CAD model is a parametric model of the part / product, it is lighter in terms of memory footprint than other models such as CAE models. In fact, instead of storing a collection of discrete geometric elements (like finite elements), the CAD model allows the storage of lists of features and parameters, which is lighter in terms of storage and memory footprint. Therefore, working with the CAD model reduces the memory requirements of the underlying system and facilitates the editability of the model compared to the CAE model. This means that the CAE to CAD conversion process actually compresses the CAE model into a CAD model that is lighter in terms of memory requirements (e.g. footprint) in addition to converting the CAE model into a CAD model that is easier to edit.

[0108] The generation of custom computer programs from CAD files can be automated. Such generation can therefore be error-proof and ensure a perfect reproduction of the manufactured product from the CAD model. CNC is considered to offer greater precision, complexity, and repeatability than manual machining. Other advantages include greater accuracy, speed, and flexibility, as well as features such as contouring, which allows the milling of contoured shapes, including those produced in 3D designs.

[0109] A B-rep (i.e., boundary representation) is a 3D representation of a mechanical component. Specifically, a B-rep is a persistent data representation that describes a 3D modeled object that represents a mechanical component. A B-rep may be the result of a calculation and / or a series of operations performed during the design phase of a 3D modeled object that represents a mechanical component. When the modeled object is represented, the shape of the mechanical component displayed on the computer screen is a B-rep (e.g., a subdivision thereof). In an example, a B-rep represents a portion of a modeled object.

[0110] B-Rep includes topological entities and geometric entities. Topological entities include: faces, edges and vertices. Geometric entities are 3D objects: surfaces, planes, curves, lines, points. By definition, a face is a bounded part of a surface, named the supporting surface. An edge is a bounded part of a curve, called the supporting curve. A vertex is a point in 3D space. The relationship between them is described below. The bounded part of a curve is defined by two points (vertices) located on the curve. The bounded part of a surface is defined by its boundary, which is a set of edges located on the surface. The boundaries of the edges of a face are connected by shared vertices. Faces are connected by shared edges. If two faces share an edge, they are adjacent. Similarly, if two edges share a vertex, they are adjacent. In a CAD system, B-Rep collects the "constrained" relationships, the relationships between topological entities and supporting geometry, and the mathematical description of the supporting geometry in appropriate data structures. The internal edges of a B-Rep are the edges shared by exactly two faces. By definition, a boundary edge is not shared, it only bounds one face. By definition, a boundary face is bounded by at least one edge. A B-Rep is said to be closed if all its edges are interior edges. A B-Rep is considered open if it includes at least one boundary edge. A closed B-Rep is used to model thick 3D volumes, as it defines the interior of a space that (virtually) encloses the material. An open B-Rep is used to model 3D skins, which represent 3D objects whose thickness is small enough to be negligible.

[0111] A key advantage of B-Rep over any other type of representation used in CAD modeling is its ability to accurately represent arbitrary shapes. All other representations in use, such as point clouds, distance fields and meshes, approximate the shape to be represented by discretization. B-Rep, on the other hand, contains the surface equations that represent the exact design and therefore constitutes a true "master model" for further manufacturing, whether it is generating tool paths for CNC or discretizing into a sample density that is correct for a given 3D printer technology. In other words, by using B-Rep, the 3D model can be an accurate representation of the manufactured object. B-Rep is also advantageous for simulating the behavior of 3D models. In terms of stress, thermal, electromagnetic or other analyses, it supports local refinement of the simulation mesh to capture physical phenomena, while in terms of kinematics, it supports the modeling of realistic contacts between curved surfaces. Finally, B-Rep allows for a smaller memory and / or file space footprint. Firstly, because the representation contains only parameter-based surfaces. In other representations, such as meshes, the equivalent surface includes up to thousands of triangles. Secondly, because B-Rep does not contain any history-based information.

[0112] The method may be included in a production process, which may include, after executing the method, producing a physical product corresponding to the modeled object designed / processed / output by the method. The production process may include the following steps:

[0113] - applying the method (e.g. automatically) thereby obtaining a CAD model comprising one or more segments;

[0114] -Use the obtained CAD model to manufacture the part / product.

[0115] Using a CAD model for manufacturing specifies any real-world action or series of actions involved in manufacturing the product / component represented by the CAD model. Using a CAD model for manufacturing may, for example, include the following steps:

[0116] -Edit the acquired CAD model;

[0117] - performing simulations based on the CAD model or a corresponding CAE model (e.g., generating a CAE model of the CAD model after a CAE to CAD conversion process), such as simulations for verifying mechanical, usage and / or manufacturing properties and / or constraints (e.g., structural simulations, thermodynamic simulations, aerodynamic simulations);

[0118] -Edit the CAD model based on the simulation results;

[0119] - optionally (i.e. the production of the mechanical product may or may not include this step, depending on the manufacturing process used), determining (e.g. automatically) a manufacturing file / CAM file based on the (e.g. edited) CAD model for the production / manufacturing of the manufactured product;

[0120] - Send CAD files and / or manufacturing files / CAM files to the factory; and / or

[0121] - Producing / manufacturing the mechanical product originally represented by the model output by the method based on the determined manufacturing file / CAM file or based on the CAD model (e.g. automatically). This may include feeding (e.g. automatically) the manufacturing file / CAM file and / or the CAD file to a machine that performs the manufacturing process.

[0122] The last step of production / manufacturing can be called a manufacturing step or a production step. This step manufactures / manufactures the component / product based on the CAD model and / or CAM file, for example, based on the CAD model or CAD file being fed to one or more manufacturing machines or a computer system that controls the machine. The manufacturing step may include performing any known manufacturing process or a series of manufacturing processes, such as one or more additive manufacturing steps, one or more cutting steps (such as laser cutting or plasma cutting steps), one or more stamping steps, one or more forging steps, one or more bending steps, one or more deep drawing steps, one or more forming steps, one or more machining steps (such as milling steps) and / or one or more stamping steps. Since the design method improves the design of the model (CAE or CAD) representing the component / product, manufacturing and its productivity are also improved.

[0123] Editing a CAD model may include executing one or more versions of a CAD model by a user (i.e., a designer), for example, by using a CAD solution. Modifications to a CAD model may include one or more modifications to each of the geometry and / or parameters of the CAD model. Modifications may include any modification or a series of modifications performed on the feature tree of the model (e.g., modifications of feature parameters and / or specifications) and / or modifications performed on the displayed representation of the CAD model (e.g., B-rep). Modifications are modifications that maintain the technical functionality of the component / product, i.e., modifications made by the user may affect the geometry and / or parameters of the model, but the purpose is only to make the CAD model more technically compatible with the downstream use and / or manufacture of the component / product. Such modifications may include any modification or a series of modifications that make the CAD model technically compatible with the specifications of the machine used in the downstream manufacturing process. Such modifications may additionally or alternatively include any modification or a series of modifications that make the CAD model technically compatible with the further use of the product / component that has been manufactured, such modifications or a set of modifications being, for example, based on the results of a simulation.

[0124] The CAM file may include a model of manufacturing upgrade steps obtained from a CAD model. The manufacturing upgrade steps may include all the data required to manufacture the mechanical product so that it has a geometry and / or distribution corresponding to the geometry and / or material distribution captured by the CAD model, possibly up to manufacturing tolerance errors. Determining the production file may include applying any CAM (Computer Aided Manufacturing) or CAD to CAM solution for (e.g. automatically) determining the production file from the CAD model (e.g. any automatic CAD to CAM conversion algorithm). Such a CAM or CAD to CAM solution may include one or more of the following software solutions, which enable automatic generation of manufacturing instructions and tool paths for a given manufacturing process based on a CAD model of the product to be manufactured:

[0125] -Fusion 360,

[0126] -FreeCAD,

[0127] -CATIA,

[0128] -SOLIDWORKS,

[0129] -NC shop floor programmer from Dassault Systèmes, shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-

[0130] shop-floor-programmer,

[0131] - Dassault Systèmes NC milling machine programmer, shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-

[0132] mill-turn-machine-programmer, and / or

[0133] - Dassault Systèmes’ Powder Bed Machine Programmer, available at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / po

[0134] wder-bed-machine-programmer.

[0135] The product / component may be an additively manufactured component, i.e. a component manufactured by additive manufacturing (i.e. 3D printing). In this case, the production process does not include a step of determining a CAM file, but proceeds directly to the production / manufacturing step by directly (e.g. automatically) providing the CAD model to the 3D printer. The 3D printer is configured to 3D print the mechanical product directly and automatically according to the CAD model when provided with a CAD model representing the mechanical product (e.g. when the 3D printer operator starts 3D printing). In other words, the 3D printer receives (e.g. automatically) a CAD model fed to it, reads (e.g. automatically) the CAD model, and prints (e.g. automatically) the component by adding materials together (e.g. layer by layer) to reproduce the geometry and / or distribution of the material captured by the CAD model. The 3D printer adds material so as to accurately reproduce in reality the geometry and / or distribution of the material captured by the CAD model, up to the resolution of the 3D printer, and optionally with or without tolerance errors and / or manufacturing corrections. Manufacturing may include determining such manufacturing corrections and / or tolerances, for example by a user (e.g., an operator of a 3D printer) or automatically (by the 3D printer or a computer system controlling it), for example by modifying a CAD file to match the specifications of the 3D printer. The production process may additionally or alternatively include determining (e.g., automatically by the 3D printer or a computer system controlling it) a printing direction from the CAD model, for example to minimize overhang volume (as described in European Patent No. 3327593, which is incorporated herein by reference), layer slicing (i.e., determining the thickness of each layer, as well as the layer-by-layer path / trajectory and other characteristics of the 3D print head (e.g., for a laser beam, such as path, speed, intensity / temperature and other parameters).

[0136] Alternatively, the product / component may be a machined component (i.e. a component manufactured by machining), such as a milled component (i.e. a component manufactured by milling. In such a case, the production process may include a step of determining a CAM file. This step may be automatically performed by any suitable CAM solution to automatically obtain a CAM file from a CAD model of the machined component. The determination of the CAM file may include (e.g. automatically) checking whether the CAD model has any geometrical peculiarities (e.g. errors or artifacts) that may affect the production process, and (e.g. automatically) correcting such peculiarities. For example, if the CAD model still includes sharp edges (because the machining or milling tool is not capable of producing sharp edges), machining or milling based on the CAD model may not be performed, and in this case the CAM file The determination can include (e.g., automatically) rounding or chamfering such sharp edges (e.g., with a rounding or chamfer radius corresponding to, for example, a substantially equal tolerance error, i.e., the radius of the cutting head of the machining tool), so that machining or milling based on the CAD model can be performed. More generally, the determination of the CAM file can automatically include rounded or chamfered geometries within the CAD model that are incompatible with the radius of the machining or milling tool to achieve machining / milling. Such a check and possible correction (e.g., rounding or chamfering of the geometry) can be performed automatically as described above, but can also be performed manually by a user (e.g., a machining engineer) to the CAD and / or CAM solution, which, for example, constrains the user to perform corrections to make the CAD model conform to the specifications of the tool used in the machining process.

[0137] Further, after this inspection, the determination of the CAM file may include (e.g., automatically) determining the machining or milling path, i.e., the path taken by the machining tool to machine the product. The path may include a set of coordinates and / or parameterized trajectories that the machining tool will follow for machining, and determining the path may include (e.g., automatically) calculating these coordinates and / or trajectories based on the CAD model. The calculation may be based on the calculation of the boundaries of the Minkowski subtraction of the CAD model represented by the CAD model of the machining tool, such as discussed in European Patent Application No. EP21306754.9 filed by Dassault Systèmes on December 13, 2021, and the application is incorporated herein by reference. It should be understood that the path may be a single path, such as that followed continuously by the tool without interrupting contact with the material to be cut. Alternatively, the path may be a series of sequential sub-paths followed by the tool in a specific order, for example, each sub-path is followed continuously by the tool without interrupting contact with the material to be cut. Optionally, the determination of the CAM file may then include (e.g. automatically) setting machine parameters, including cutting speed, cutting / piercing height and / or die opening travel, for example based on the determined path and the specifications of the machine. Optionally, the determination of the CAM file may then include (e.g. automatically) configuring nesting, wherein the CAM solution determines the best orientation of the part to maximize machining efficiency.

[0138] In the case of machining or milling a component, the determination of a CAM file thus generates and outputs a CAM file comprising machining paths, and optionally set machine parameters and / or nested specifications of a configuration. The output CAM file can then be fed (e.g. directly and automatically) to a machining tool and / or the machining tool can then be programmed by reading the file (e.g. directly and automatically), on which the production process comprises a production / manufacturing step in which the machine performs machining of the product according to the production file, e.g. by directly and automatically executing the production file. The machining process comprises the machining tool cutting a block of real-world material to reproduce the geometry and / or distribution of the material captured by the CAD model, e.g. up to tolerance errors (e.g., tens of microns for milling).

[0139] Alternatively, the product / component may be a molded component, i.e. a component manufactured by molding (e.g. injection molding). In such a case, the production process may include a step of determining a CAM file. This step may be automatically performed by any suitable CAM solution to automatically obtain a CAM file from a CAD model of the molded component. The determination of the CAM file may include (e.g. automatically) performing a series of molding checks based on the CAD model to check that the geometry and / or distribution of the material captured by the CAD model is suitable for molding, and (e.g. automatically) performing appropriate corrections if the CAD model is not suitable for molding. Performing the checks and appropriate corrections (if any) may be performed automatically, or alternatively, by a user (e.g. a molding engineer), for example using a CAD and / or CAM solution that allows the user to perform appropriate corrections to the CAD model, but constrains his / her corrections so that the CAD model complies with the specifications of (one or more) molding tools. The checks may include: verifying that the virtual product represented by the CAD model is consistent with the dimensions of the mold, and / or verifying that the CAD model includes all draft angles required for demolding the product, as known from molding itself. The determination of the CAM file may then further include determining the amount of liquid material for molding and / or the time for hardening / solidifying the liquid material in the mold based on the CAD model, and outputting a CAM file including these parameters. The production process then includes (e.g., automatically) molding based on the output file, wherein, within the determined hardening time, the mold forms the liquid material into a shape corresponding to the geometry and / or distribution of the material captured by the CAD model, for example, until a tolerance error (e.g., until a draft angle is introduced or until a draft angle is modified for demolding).

[0140] The product / component may also be a stamped component, which may also be referred to as a "stamped component", i.e. a component manufactured in a stamping process. In this case, the production process may include (e.g. automatically) determining a CAM file based on the CAD model. The CAD model represents a stamped component, which may have one or more flanges, for example, if the component is to include some flanges, and in the latter case may have additional material to be removed in order to form the unfolded state of one or more flanges of the component, which is itself known from stamping. Therefore, the CAD model includes a portion representing the component without flanges (in some cases the entire component), and may include an external additional patch portion representing the flange (if any), possibly including additional material (if any). The additional patch portion may present g2 continuity over a certain length and then g1 continuity over a certain length.

[0141] In such a stamping situation, the determination of the CAM file may include (e.g. automatically) determining the parameters of the stamping machine, such as the size and / or punching force of the stamping die or punch, based on the geometry and / or material distribution of the virtual product captured by the CAD model. If the CAD model also includes a representation of the additional material to be removed in order to form the unfolded state of one or more flanges of the component, the excess material to be removed can be cut, for example, by machining, and determining the CAM file may also include determining the corresponding machining CAM file, for example as described above. If there are one or more flanges, determining the CAM file may include determining the geometric specifications of the g2 continuity portion and the g1 continuity portion, which allow the flange to be folded toward the inner surface of the stamped portion and along the g2 continuous length during the folding process after the stamping itself and the removal of the additional material. The CAM file thus determined may therefore include: the parameters of the stamping tool, optionally the specifications for folding the flange (if any), and optionally the machining production file (if any) for removing the additional material.

[0142] The stamping production process can then, for example, directly and automatically output a CAM file and perform a stamping process based on the file (for example, automatically). The stamping process can include stamping (for example, punching) a portion of material to form a product represented by the CAD file, which may have an unfolded flange and additional material (if any). Where appropriate, the stamping process can include cutting additional material based on the machining production file and folding the flange based on the specifications for folding the flange, thereby folding the flange over its g2 continuous length and giving the outer boundary of the part a smooth appearance. In the latter case, the shape of the part once manufactured differs from its virtual counterpart represented by the CAD model in that the additional material is removed and the flange is folded, while the CAD model represents the part with the additional material and the flange in an unfolded state.

[0143] The method is computer-implemented. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any similar system. Therefore, the steps of the method are performed by a computer, possibly fully automatically, or semi-automatically. In an example, the triggering of at least some steps of the method may be performed by user-computer interaction. The required level of user-computer interaction may depend on the level of automation foreseen and balanced with the need to achieve the user's wishes. In an example, the level may be user-defined and / or predefined.

[0144] A typical example of a computer implementation of a method is to perform the method using a system suitable for the purpose. The system may include a processor connected to a memory and a graphical user interface (GUI), the memory having recorded thereon a computer program including instructions for performing the method. The memory may also store a database. The memory is any hardware suitable for such storage, and may include several physically distinct parts (e.g., one for the program and possibly one for the database).

[0145] Fig. 9 An example of the system is shown, where the system is a client computer system, such as a user's workstation.

[0146] The client computer of this example includes a central processing unit (CPU) 1010 connected to an internal communication bus (BUS) 1000 and a random-access memory (RAM) 1070 also connected to the BUS. The client computer is also provided with a graphics processing unit (GPU) 1110, which is associated with a video random access memory (Video RAM) 1100 connected to the BUS. Video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices such as a hard disk drive 1030, a read-only compact disk (CDROM) 1040, and the like. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks. Any of the above may be supplemented or incorporated by specially designed application specific integrated circuits (ASICs). Any of the above may be supplemented or incorporated by specially designed ASICs. The network adapter 1050 manages access to the network 1060. The client computer may also include a tactile device 1090 such as a cursor control device, a keyboard, etc. The cursor control device is used in the client computer to allow the user to selectively position the cursor at any desired location on the display 1080. In addition, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a plurality of signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the buttons of the mouse are used to generate signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.

[0147] The computer program may include instructions executable by a computer, the instructions including means for causing the above-mentioned system to perform the method. The program may be recorded on any data storage medium, including the memory of the system. The program may be implemented, for example, in a digital electronic circuit, or in computer hardware, firmware, software, or in a combination thereof. The program may be implemented as a device, such as a product tangibly contained in a machine-readable storage device for execution by a programmable processor. The method steps may be performed by a programmable processor that executes an instruction program to perform the functions of the method by operating on input data and generating output. Thus the processor may be programmable and coupled to receive data and instructions from a data storage system, at least one input device and at least one output device, and to send data and instructions to a data storage system and at least one output device. The application may be implemented in a high-level programming language or an object-oriented programming language, or, if desired, in an assembly language or a machine language. In any case, the language may be a compiled language or an interpreted language. The program may be a complete installer or an updater. The application of the program on the system in any case generates instructions for performing the method. Alternatively, the computer program may be stored and executed on a server in a cloud computing environment, the server communicating with one or more clients via a network. In such a case, the processing unit executes the instructions included in the program, so that the method is executed on the cloud computing environment.

[0148] Also provided is an algorithm configured to run on a computer for segmenting a discrete 3D model representing a mechanical component. The algorithm includes the following steps: obtaining a discrete 3D model; and applying hierarchical segmentation to the discrete 3D model. The hierarchical segmentation includes: a first segmentation, then a second segmentation, and then a third segmentation. The first segmentation includes identifying first segments among elements of the discrete 3D model, each of the first segments corresponding to a primitive exhibiting at least one slidable motion. The second segmentation includes identifying second segments among unidentified elements of the discrete 3D model, each of the second segments corresponding to a surface generated by a CAD feature. The third segmentation includes identifying third segments among unidentified elements of the discrete 3D model, each of the third segments corresponding to a free-form surface of the discrete 3D model.

[0149] The algorithm may be part of a manufacturing CAD process as described above for a method of manufacturing a mechanical component after segmentation of a discrete 3D model of the mechanical component. Alternatively or additionally, the algorithm may be part of a 3D scanning process as discussed above for the method, wherein the model of the mechanical component originates from a scan, on which the algorithm processes the model by segmenting it and obtains its segmentation.

[0150] An algorithm is also provided, which is configured to run and / or be implemented on a computer for segmenting a discrete 3D model representing a mechanical component. The algorithm includes: a method for obtaining a discrete 3D model; and a method for applying hierarchical segmentation to the discrete 3D model. The hierarchical segmentation includes: a first segmentation, then a second segmentation, and then a third segmentation. The first segmentation includes identifying first segments among the elements of the discrete 3D model, each of the first segments corresponding to a primitive exhibiting at least one slidable motion. The second segmentation includes identifying second segments among unidentified elements of the discrete 3D model, each of the second segments corresponding to a surface generated by a CAD feature. The third segmentation includes identifying third segments among the unidentified elements of the discrete 3D model, each of the third segments corresponding to a free-form surface of the discrete 3D model.

[0151] An "algorithm" refers to a (finite) sequence of instructions for executing the method. An "algorithm configured to run on a computer" refers to an algorithm in which the instructions are in a format (e.g., a computer language) and / or can be converted (e.g., using a compiler) into the format recognizable and executable by a computer. Such an algorithm may be an algorithm configured to be implemented on a computer. The computer may be configured to run the algorithm when compiling an implementation of the algorithm. Such an algorithm may form a computer-implemented algorithm. More specifically, such an algorithm may include further instructions for executing any example of the above-mentioned computer-implemented method. The so-called "method for obtaining a discrete 3D model" or "method for applying hierarchical segmentation to a discrete 3D model" refers to any method (hardware and / or software) that is technically suitable for obtaining a discrete 3D model or applying hierarchical segmentation, respectively.

[0152] The implementation of the method for segmenting discrete 3D models is now discussed.

[0153] The embodiment relates to the field of 3D geometry processing and computational geometry. More specifically, the embodiment is intended to segment a manifold 3D mesh or point cloud (i.e., a 3D model) representing a 3D CAD part. Such a 3D model typically includes simple geometric features or primitives (e.g., cylinders, planes, extrusions, etc.) and free-form features (e.g., fillets, sweeps, etc.) designed in CAD software.

[0154] This embodiment develops computationally efficient hierarchical clustering in the following five main steps.

[0155] In the first step, only simple geometric primitives are segmented. Then, these primitives are detected and fitted on the corresponding regions in order to filter out erroneous primitives and extend the remaining primitives to neighboring faces, similar to the region growing process. The primitive nodes are then frozen.

[0156] In the second step, the CAD features are segmented. Features are then detected and fitted to the regions. Adjacent compatible features are then merged and finally wrongly fitted features are filtered out. As with the geometric primitives in the first step, the feature nodes are then frozen.

[0157] In the third step, the remaining free-form surface is segmented.

[0158] In the fourth step, the obtained segmentation is post-processed to remove small regions or isolated faces and merge compatible geometric primitives.

[0159] In the fifth step, the previous steps are all reapplied to the free-form surface until no more areas can be segmented further. This allows primitives and features to be captured at a smaller scale.

[0160] The implementation of hierarchical clustering is based on graph topology. This implementation uses a dual graph formulation for mesh inputs, or a nearest neighbor graph for point cloud inputs. The distance between two connected regions depends on the curvature of their faces (or points), and a shape factor that favors smooth boundaries. In addition, this implementation uses an additional distance to describe the smoothness of the boundary between two connected regions to prevent merging of two similar regions separated by a sharp boundary.

[0161] Such an implementation provides a fast and robust framework for CAD segmentation of point clouds and meshes. The provided framework allows segmentation of simple geometric primitives, but also allows segmentation of CAD features (extruded, revolved, filleted corners) as well as free-form surfaces (such as NURBS). This implementation is also able to take into account sharp edges of the input model.

[0162] Depending on how it is implemented, the main advantages of this segmentation framework are as follows:

[0163] - Useful hyperparameters are automatically inferred.

[0164] - This is an automated segmentation pipeline that simplifies the CAD feature tree retrieval process when directly segmenting CAD features.

[0165] -It allows capturing geometric primitives and features at different scales.

[0166] -It does not rely on any machine learning techniques.

[0167] Below we discuss in more detail an example pipeline based on the implemented graph-based segmentation framework. Figure 1 An example of the entire pipeline is shown.

[0168] The segmentation framework is based on hierarchical graph clustering as described in European Patent Application No. EP21305195.6 filed by Dassault Systèmes on February 16, 2021, which is incorporated herein by reference. Such a framework can have the same implementation as the cited patent application to ensure a fast segmentation algorithm. The segmentation can take a point cloud or a mesh as input. Figure 2 An illustration of the hierarchical graph clustering based segmentation framework is shown.

[0169] Segmentation involves a set of hyperparameters to be set. We now discuss how these hyperparameters are set in our implementation.

[0170] The set of hyperparameters can include one or more of a stopping threshold for hierarchical clustering, a standard fit tolerance, and a minimum standard area. The set allows the pipeline to handle different types of inputs (e.g., subdivided grids or noisy inputs) and different levels of noise and discretization.

[0171] To facilitate the user to set these hyperparameters, this embodiment defines two high-level hyperparameters, based on which the remaining hyperparameters are calculated. Therefore, instead of setting the entire set of hyperparameters, the user can only set the two high-level hyperparameters and the remaining hyperparameters are automatically calculated.

[0172] The two high-level hyperparameters used to calculate other useful hyperparameters can be the concavity of the subdivided mesh or the noise level of other types of inputs (such as point clouds and noisy meshes), and the discretization level. The implementation of these two high-level hyperparameters is now discussed.

[0173] For a subdivided mesh, the concavity represents a maximum fixed distance between the discretized mesh and the exact surface it approximates. This parameter should be given by the user. The value can be in the range [0.01, 0.05].

[0174] For an input, noise is defined as a random variable that is applied to elements of the input during, for example, scanner acquisition. For a point cloud, such noise represents the distance between a point and the surface it should be on. This implementation defines the noise level as the standard deviation of this random variable. This implementation can then use several techniques to estimate this noise level for a given input. The following is an example of how this noise level can be estimated.

[0175] The first method involves applying the RANSAC (Random Sample Consensus) algorithm to detect important geometric criteria on the 3D input. The noise level is then the fitting error of the effective norm. In addition, in order to distinguish between noise and small curvatures that are actually required, this embodiment calculates the correlation between noises at adjacent points on the fitted criteria.

[0176] consider Figure 3In the 2D sketch presented in Figure 3010 and 3020, curve 3010 presents a noisy curve, while curve 3020 does not have noise. However, the same line 3030 may have the same noise level for both curves 3010 and 3020. The main difference between the noisy case and the smooth case is that the noise of adjacent points is independent for the noisy curve 3010, but not for the curve 3020.

[0177] Alternatively, the embodiment can use spectral mesh processing to estimate the noise level of the mesh. The idea is to calculate the average Laplace coordinates of the mesh before and after applying Laplace smoothing (which is a mesh smoothing technique), and then calculate the offset between these coordinates. This will be more robust than just comparing the initial mesh and the Laplace smoothed mesh when the Laplace smoothing shrinks the mesh.

[0178] For discretization level estimation, the implementation computes the discretization level by taking into account the geometric properties of the input. For example, for an input mesh, the implementation computes the geometric property as the ratio between the average area of ​​the faces and the scale of the mesh (defined by the radius of the mesh's bounding sphere). For an input point cloud, the implementation computes the geometric property by calculating the point density.

[0179] As for the calculation of the geometric properties, this embodiment may calculate some geometric properties before the segmentation process, such as normals, curvatures, boundaries before using dihedrals or maximum distances to the surface of the subdivided mesh.

[0180] We now discuss segmentation using hierarchical graph clustering.

[0181] Simple geometric primitive segmentation

[0182] This embodiment can use simple geometric primitive segmentation. In this case, the first step of segmentation includes segmenting simple geometric primitives (e.g., planes, cylinders, or spheres). In this step, nodes are first clustered based on geometric distances of curvature and normals, and then canonicals are fitted, aggregated, and filtered. Given the previously defined high-level parameters, a stopping threshold for distance, fitting error tolerance, and minimum canonical size for hierarchical clustering can be calculated.

[0183] The stopping threshold may be determined using a linear function of the noise level, determined as interpolating between an empirical value for a noise-free grid and another empirical value for a maximum noise grid. The fitting error tolerance may be the noise level. For the minimum standard size, the embodiment considers the standard to be relevant when there are at least 10 input elements, and then calculates the minimum standard size as the average size of all elements multiplied by 10.

[0184] The simple geometric primitives are then frozen in the next step of segmentation.

[0185] CAD feature segmentation

[0186] The second step of segmentation is CAD feature segmentation. This embodiment can consider all types of CAD features that can fit into a mesh or point cloud, such as extrusions, rotations or fillets.

[0187] Feature Clustering

[0188] First, for the criteria, the implementation needs to perform a first hierarchical clustering to group the nodes. To do this, the implementation uses the following distance between two adjacent nodes N1 and N2:

[0189]

[0190] where ∈ is a sufficiently small tolerance (e.g. 10 -8 ) to avoid division by 0.

[0191] This distance is equivalent to the relative deviation between the average maximum curvatures of the compared regions, weighted by a term that attempts to regularize the shape factor of the merged regions. For example, the shape factor can be of the following type:

[0192]

[0193] Among them, P N represents the perimeter of node N, A N represents the area of ​​N, Express The clamping position, represents a node ∈ {N1, N2} and it is not N i , and α represents a hyperparameter that defines the reduced influence of small surfaces. Other possible distances can be adopted, such as Ward distance.

[0194] This distance penalizes the increase in non-circularity resulting from the merger of two nodes (compared to the non-circularity of the two initial nodes (i.e., how far a shape deviates from the regularity of a circle) and is weighted according to the relative sizes of the nodes to avoid over-penalizing the merger of a large irregular node with a small regular node. This embodiment considers the increase in non-circularity rather than its value itself, because this embodiment does not seek to make all segmented regions circular, but rather hopes that the merger will improve the regularity of the region, rather than worsen it.

[0195] Another example of a shape factor distance may be to improve the smoothness of region boundaries by, for example, manipulating the sum of angles between adjacent edges on a mesh.

[0196] Furthermore, to improve robustness, before clustering the non-standard surface of the 3D shape, this embodiment recalculates the curvature of elements that are not part of the standard 3D shape using only other non-standard elements as neighbors for averaging.

[0197] This provides more accurate curvature values ​​around intersections between non-standard surfaces and standard primitive surfaces.

[0198] Clustering is stopped when the minimum distance between pairs of nodes is above a threshold that can be calculated using advanced hyperparameters. As in the classical segmentation step, this threshold can be determined using a linear function of the noise level that is used to interpolate between an empirical value for a noise-free grid and another empirical value for a maximally noisy grid. FIG. 4A to FIG. 4B Such a clustering is shown. Figure 4A The colored area 410 on the right represents the frozen canonics.

[0199] Feature Fitting

[0200] Once the previous clustering is completed, the embodiment fits a CAD feature to each generated node. To this end, given a clustered node, the embodiment seeks to fit all the required CAD features to its elements using feature fitting techniques. Some examples of feature fitting techniques are described in detail in European Patent Application No. EP21 3061 84.9 filed by Dassault Systèmes on August 31, 2021 for extrusion, European Patent Application No. EP21305763.1 filed by Dassault Systèmes on June 4, 2021 for rotation, and European Patent Application No. EP22306451.0 filed by Dassault Systèmes on September 29, 2022 for fillets, which are incorporated herein by reference. Then, for each feature, the embodiment calculates the fitting error and retains only the features whose error exceeds a given threshold. The threshold depends on the noise level and can be a linear function of the noise level; the function is determined to interpolate between an empirical value for a noise-free mesh and another empirical value for a maximum noise mesh.

[0201] FIG. 5A to FIG. 5B This step is shown when using extrusion, revolve, and fillet. Figure 5B The white nodes 410 in are frozen nodes, while the other nodes represent areas that are CAD features.

[0202] Feature Aggregation

[0203] Since this embodiment stops early during hierarchical clustering, some neighboring nodes may be part of the same feature. Therefore, after the initial feature fitting step, this embodiment performs another hierarchical clustering step with the following distances:

[0204]

[0205] For all neighboring nodes, this distance is infinite, for which the implementation cannot adapt any features on their union to prevent merging them. This allows the hierarchical clustering to be stopped only when neighboring nodes can no longer be merged, i.e. when the distances of all neighboring nodes are infinite. This improves the method because there is no need to determine a stopping threshold or a final number of clusters to stop the hierarchical clustering.

[0206] Furthermore, to prevent such distance calculations from being expensive, the embodiment may use a fast feature aggregation technique that quickly gives a fit score as well as feature parameters for node reassembly. An example of such an extrusion technique can be seen in the cited European patent application No. EP21306184.9 filed by Dassault Systèmes on August 31, 2021. FIG. 6A to FIG. 6B Feature aggregation is shown.

[0207] Feature filtering

[0208] Since most small local regions can be fitted by features, feature clustering may result in more feature nodes than are actually needed. Therefore, this embodiment removes fitted features that are smaller than a threshold (the same threshold as for the standard).

[0209] However, for some types of features (e.g., fillets), some of the desired nodes may be smaller than the previous threshold. Therefore, for such features, additional filtering techniques specific to each feature should be used.

[0210] The following discussion takes the rounded grid filtering technology as an example.

[0211] The problem with rounded corners is that any area of ​​a triangle strip, e.g. Figure 7 The area 710 in the figure can be considered as a fillet. Such an area will produce a fillet with a larger radius. This embodiment can filter fillets with larger radius values, but it will also filter valid fillets with larger radius. Since the fillet is linear (i.e., thicker in one curvature direction and thinner in another curvature direction), in order to distinguish between invalid fillets and valid fillets, this embodiment uses the following formula to calculate the line width of the area:

[0212]

[0213] For rectangular areas, the line width is exactly the width of the rectangle. 2 -16*area may be negative, so this implementation will filter out areas where this term is negative. Such areas usually approximate a disk, which is not the desired shape for rounded corners.

[0214] Finally, this embodiment filters the rounded corners whose radius to line width ratio is higher than a threshold value (eg, its value may be in the range of [1, 10]). FIG. 8A to FIG. 8B 8 shows a feature filtering process, where the area shown in region 810 is not a feature and is therefore filtered out / discarded by the implementation of segmentation, resulting in Figure 8B The white area 820 in FIG. The feature nodes are then frozen in the next step of segmentation.

[0215] Free-form surface segmentation

[0216] Once the criteria and features are segmented, there may still be some unsegmented elements. Therefore, this embodiment uses region growing to merge all unsegmented regions into a free-form surface. This embodiment can use cluster distance (e.g., as in the already cited European patent application No. EP4044116) to control where to stop clustering, thereby giving the user some control in this step.

Claims

1. A computer-implemented method for segmenting a discrete 3D model representing a mechanical component, comprising: - Obtain discrete 3D models; as well as - applying a hierarchical segmentation to the discrete 3D model, the hierarchical segmentation comprising: o a first segmentation comprising identifying first segments among the elements of the discrete 3D model, each of the first segments corresponding to a primitive exhibiting at least one slidable motion; then o a second segmentation comprising identifying second segments among the unidentified elements of the discrete 3D model, each of the second segments corresponding to a surface generated by a CAD feature; and then o a third segmentation comprising identifying third segments among the unidentified elements of the discrete 3D model, each of the third segments corresponding to a free-form surface of the discrete 3D model.

2. The method according to claim 1, wherein: The method further comprises: obtaining a predetermined CAD feature set, and in the second segmentation: - the identifying comprises: exploring and merging adjacent unidentified elements of the discrete 3D model according to an increasing distance order based on one or more corresponding feature distances, the feature distance being used to quantify shape similarity between a pair of CAD feature geometric surface portions; - discarding each surface represented by the cluster of elements resulting from said merging, for which each fitting of the CAD features to the surface resulted in a fitting error greater than a preset fitting threshold.

3. The method according to claim 2, wherein: The second segmentation further includes discarding each fitted CAD feature having a size less than a preset size threshold.

4. The method according to any one of claims 2 to 3, wherein: The method further comprises: iteratively aggregating adjacent pairs of non-discarded element clusters, wherein at each iteration, the method further comprises optimizing the fitting error, the optimization being of the following type: where N1 and N2 represent two adjacent surfaces, and score(f) measures the similarity between feature f and the union of N1 and N2, N1∪N2.

5. The method according to any one of claims 2 to 4, wherein: The one or more characteristic distances include: a characteristic distance for addressing differences in average curvature between surfaces and / or addressing irregularities of merged surfaces.

6. The method according to claim 5, wherein: The characteristic distance is of the following type: Where N1 and N2 represent adjacent surfaces, N j The average maximum curvature of , and where: Among them, P N represents the circumference of N, A N represents the area of ​​N, Express The clamping position, represents a node ∈{N1,N2} and it is not N i , and α represents a hyperparameter that defines the reduced influence of the small surface, ∈ is a parameter.

7. The method according to any one of claims 1 to 6, wherein: The method further includes: - rescaling one or more segments resulting from said third segmentation; and - applying said hierarchical partitioning to each rescaled fragment or fragments.

8. The method according to any one of claims 1 to 7, wherein: The hierarchical segmentation is based on one or more tolerance thresholds, each of which is a function of: - an imprecision level of the discrete 3D model, the tolerance threshold increasing as the imprecision level increases, - the discretization level of the discrete 3D model, i.e. the number of triangles or the point density, the tolerance threshold increasing as the discretization level decreases, and / or - a diameter of the discrete 3D model, the tolerance threshold increasing as the diameter increases.

9. The method according to claim 8, wherein: The method stops the second segmentation when a minimum value of the one or more corresponding feature distances is above at least one of the one or more tolerance thresholds.

10. The method according to any one of claims 1 to 9, wherein: The first segmentation further comprises: for each surface resulting from the merging, in descending order of surface size, - fitting a standard primitive to the surface; - Calculate the fitting error; and -If the fitting error is lower than a preset fitting threshold, adjacent surfaces whose fitting errors are also lower than the preset fitting threshold are aggregated into the surface; wherein, optionally, the first segmentation also includes: filtering the fitted standard primitives by discarding each primitive in the local standard area of ​​the fitted free form surface, and, optionally, the first segmentation also includes: discarding the fitted primitives having a size smaller than another preset size threshold.

11. The method according to any one of claims 2 to 10, wherein: In the second segmentation, the detecting and merging are based on the constraint that surfaces connected by boundaries corresponding to known geometric demarcations between parts of the discrete 3D model cannot be merged.

12. The method according to any one of claims 1 to 11, wherein: The discrete 3D model is derived from physical measurements of the mechanical component.

13. A computer program comprising instructions for performing the method according to any one of claims 1 to 12.

14. A computer-readable data storage medium having recorded thereon the computer program according to claim 13.

15. A computer comprising a processor coupled to a memory having recorded thereon a computer program according to claim 13.

16. An algorithm configured to run on a computer for segmenting a discrete 3D model representing a mechanical component, the algorithm comprising the steps of: - Obtain discrete 3D models; as well as - applying a hierarchical segmentation to the discrete 3D model, the hierarchical segmentation comprising: o a first segmentation comprising identifying first segments among the elements of the discrete 3D model, each of the first segments corresponding to a primitive exhibiting at least one slidable motion; then o a second segmentation comprising identifying second segments among the unidentified elements of the discrete 3D model, each of the second segments corresponding to a surface generated by a CAD feature; and then o a third segmentation comprising identifying third segments among the unidentified elements of the discrete 3D model, each of the third segments corresponding to a free-form surface of the discrete 3D model.

17. An algorithm configured to run on a computer for segmenting a discrete 3D model representing a mechanical component, the algorithm comprising: -Methods for obtaining discrete 3D models; as well as - a method for applying a hierarchical segmentation to the discrete 3D model, the hierarchical segmentation comprising: o a first segmentation comprising identifying first segments among the elements of the discrete 3D model, each of the first segments corresponding to a primitive exhibiting at least one slidable motion; then o a second segmentation comprising identifying second segments among the unidentified elements of the discrete 3D model, each of the second segments corresponding to a surface generated by a CAD feature; and then o a third segmentation comprising identifying third segments among the unidentified elements of the discrete 3D model, each of the third segments corresponding to a free-form surface of the discrete 3D model.

Citation Information

Patent Citations

  • Orientation of a real object for 3D printing

    EP3327593A1

  • Segmenting a 3D modeled object representing a mechanical part

    EP4044116A1

  • Fillet detection method

    EP4345673A1