Drawing pattern feature detection method

By segmenting and iteratively grouping discrete 3D models, detecting the CAD body draft operators, the problem of difficult to identify draft surfaces and closed planes in the prior art is solved, and efficient characteristics detection and material distribution understanding of mechanical components are realized. Improves the accuracy and efficiency of the manufacturing process.

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

Patent Information

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

AI Technical Summary

Technical Problem

The prior art is difficult to effectively detect and process draft operators in CAD 3D models, especially in the design and manufacturing of mechanical components. There is a lack of efficient methods to identify and group draft surfaces and closed planes, affecting material distribution and construction. understand.

Method used

By obtaining the segmentation of the discrete 3D model, iteratively grouping the fragments, and determining whether the paired fragments have the same draft axis and angle, or one of them is a closed plane, then determining the CAD body draft operator and constructing the contour curve to Determine the draft type.

Benefits of technology

It realizes efficient detection of CAD body draft operators in discrete CAD 3D models, distinguishing the characteristics of bosses and pits, improving material distribution understanding and parameterized model editing in manufacturing process, and improving design and manufacturing accuracy and efficiency .

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119312494A_ABST
    Figure CN119312494A_ABST
Patent Text Reader

Abstract

The present application notably relates to a computer-implemented method for CAD body draft operator detection in a discrete 3D model representing a mechanical part. The method includes obtaining a segmentation of the discrete 3D model, iteratively grouping the segmented segments, and determining one or more CAD body draft operators, each CAD body draft operator corresponding to a respective group. Two segments of a pair of segments are grouped if there is a case in which each segment of the pair of segments is a draft surface and the two segments have the same respective draft axis and the two segments have the same draft angle with respect to the respective draft axis, or at least one segment has a zero angle with respect to the respective draft axis; or one of the paired segments is a draft surface, and the other segment is a closed plane.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer programs and systems, and more particularly to methods, systems and programs for performing CAD volume draft operator detection in a discrete 3D model representing a mechanical component. Background Art

[0002] Many systems and programs for design, engineering and manufacturing of objects are available on the market. CAD is an abbreviation for computer-aided design, e.g. it relates to software solutions for designing objects. CAE is an abbreviation for computer-aided engineering, e.g. it relates to software solutions for simulating the physical behavior of future products. CAM is an abbreviation for computer-aided manufacturing, e.g. it relates 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 a product lifecycle management (PLM) system. PLM refers to a business strategy that helps companies share product data, apply common processes, and leverage corporate knowledge on the concept of an extended enterprise to develop products from concept to the end of their life. The PLM solution provided by Dassault Systèmes (trademarks CATIA, ENOVIA and DELMIA) provides an engineering center, a manufacturing center and an enterprise center, wherein the engineering center organizes product engineering knowledge, the manufacturing center manages manufacturing engineering knowledge, and the enterprise center enables the enterprise to integrate and connect to the engineering center and the manufacturing center. Taken together, the system provides an open object model that links 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 has become very important. In particular, detecting draft operators in 3D models representing mechanical parts is particularly important because draft operators are widely used to design parts for manufacturing.

[0004] However, there is a need for improved solutions for CAD 3D model processing and CAD body draft operator detection. Summary of the invention

[0005] Therefore, a computer-implemented method for detecting CAD body draft operators in a discrete 3D model representing a mechanical component is provided. The method includes obtaining a segmentation of the discrete 3D model, the discrete 3D model including a skin representing an outer surface of the mechanical component, the segmentation including segments each representing a portion of the skin; the method also includes iteratively grouping the segments, grouping two segments in a pair of segments if the following conditions exist: each segment in the pair of segments is a draft surface and the two segments have the same respective draft axis, and the two segments have the same draft angle relative to the respective draft axis, or at least one segment has a zero degree angle relative to the respective draft axis; or one segment in the pair of segments is a draft surface and the other segment is a closed plane; iteratively grouping the pair of segments at least once, at least one segment in the pair of segments has a non-zero draft angle relative to the respective draft axis. The method also includes determining one or more CAD body draft operators, each CAD body draft operator corresponding to a respective group.

[0006] Methods may include one or more of the following:

[0007] - The method includes determining all segments of the draft surface, including whether n p The test of u = sin(θ), where S is the segment and n p is the normal vector of segment S at point p, and the surface that satisfies this test is determined to be a draft surface;

[0008] - The execution of the test consists in evaluating for each fragment S: |u|=1 and in And by definition, And vol S is a canonical measure on S, ∈>0, is the mean normal of S, defined as

[0009] -The evaluation consists of solving the following types of optimization problems:

[0010]

[0011] st|u|=1

[0012] in The following types:

[0013]

[0014] - Solving the optimization problem involves finding The smallest eigenvalue of and its associated eigenvector The tests include testing in is the minimum eigenvalue;

[0015] - Iteratively grouping the fragments comprises one or more iterations of:

[0016] ○Explore pairs of fragments;

[0017] ○Determine whether:

[0018] ■ a first difference between a value of the draft detection objective function for the union of the segments in the explored pairs of segments and a weighted sum of the values ​​of the draft detection objective function for the segments in the explored pairs of segments is below a first predefined threshold, and weighted based on the areas of the segments, or

[0019] ■ a second difference between the value of the draft closure objective function for a segment in the explored pair of segments and the weighted sum is below a second predefined threshold, the draft closure objective function rewarding orthogonality of a draft axis of an input segment relative to the other input segment;

[0020] o grouping the segments in the explored pair of segments if the first difference is below a first predefined threshold or if the second difference is below a second predefined threshold;

[0021] - the value of the draft detection objective function of the input segment is the minimum eigenvalue of the normal matrix of the input segment; and / or the value of the draft closure objective function is the minimum eigenvalue of a matrix that is a weighted sum of the normal matrix of another input segment and the identity minus the normal matrix of the input segment, and weighted based on the area of ​​the input segment;

[0022] -The first differences are of the following types:

[0023]

[0024] Where S 1 and S 2 are two fragments in the explored pair of fragments, YesS 1 and S 2 The normal matrix of the union of The minimum eigenvalue of YesS 1 The normal matrix The minimum eigenvalue of S 2 Have a non-zero draft angle For S 2 The normal matrix The minimum eigenvalue of S 2With zero draft angle For S 2 The normal matrix The minimum eigenvalue of

[0025]

[0026] When S 1 and S 2 With a non-zero draft angle, For S 1 The area of For S 2 , the area, and

[0027]

[0028] When S 1 With a non-zero draft angle and S 2 With zero draft angle, For S 1 The area of For S 2 area; and / or

[0029] The second difference is the following type:

[0030]

[0031] in is a matrix The minimum eigenvalue of

[0032] Where S 1 is another input fragment, S 2 For the input fragment, For S 1 The normal matrix The minimum eigenvalue of For S 2 The normal matrix The minimum eigenvalue of ;

[0033] in yes The non-central normal matrix of is defined as follows

[0034]

[0035] where S represents the normal vector and |S 2 |Yes Surface area;

[0036] - for each respective group, determining a CAD body draft operator corresponding to the respective group includes constructing a profile curve for the respective group;

[0037] - constructing the contour curve comprises: for each segment of the respective group, providing a respective contour curve of the segment; and

[0038] iteratively connecting the respective contour curves, wherein the pair of respective contour curves are connected if a third difference between the respective contour curves in the pair of respective contour curves is less than a third predefined threshold;

[0039] - for each respective group, determining a CAD volume draft operator corresponding to the respective group further comprises determining a draft type of the CAD volume draft operator based on the constructed profile curve; and / or

[0040] -Determine the draft type including:

[0041] ○ Determine whether the contour curve is closed; and

[0042] ○Calculate the total curvature of the contour curve,

[0043] in:

[0044] ○ If the profile curve is open and the absolute value of the total curvature is strictly less than 2π, then the CAD body draft operator is a draft surface, if the profile curve is closed and the total curvature is equal to β2π, then the CAD body draft operator is a boss operator, and

[0045] ○ If the profile curve is closed and the total curvature equals -β2π, then the CAD body draft operator is the dimple operator,

[0046] where β∈{-1,1}; where optionally the total curvature is of the type:

[0047] κ tot =∫ I κ γ (t)dt

[0048] where κ γ (t) is the algebraic curvature of the curve γ under parameter t.

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

[0050] A computer-readable storage medium having a computer program recorded thereon is also provided.

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

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

[0053] - Figure 1An example of a graphical user interface for the system is shown;

[0054] - Figure 2 An example of a system is shown; and

[0055] - Figure 3-12 An example of a method is shown. DETAILED DESCRIPTION

[0056] A computer-implemented method for performing CAD body draft operator detection in a discrete 3D model is provided. The discrete 3D model represents a mechanical part. The method includes obtaining a segmentation of the discrete 3D model. The discrete 3D model includes a skin. The skin represents an outer surface of the mechanical part. The segmentation includes segments. Each segment represents a skin portion. The method also includes iteratively grouping the segments. In the grouping, if each segment in the pair of segments is a draft surface, and the two segments have the same respective draft axis, and the two segments have the same draft angle relative to the respective draft axis, then the two segments in the pair of segments are grouped. Alternatively, in the grouping, if each segment in the pair of segments is a draft surface, and the two segments have the same respective draft axis, and at least one segment has a zero angle relative to the respective draft axis, then the two segments in the pair of segments are grouped. Further alternatively, in the grouping process, if one segment in the pair of segments is a draft surface and the other segment is a closed plane, then the two segments in the pair of segments are grouped. During the grouping process, at least one iteration is performed on the pairs of segments, at least one of which has a non-zero draft angle relative to the respective draft axis. The method also includes determining one or more CAD body draft operators. Each CAD body draft operator corresponds to a respective group.

[0057] The method forms an improved solution for CAD 3D model processing.

[0058] It is noteworthy that the method allows detection of CAD body draft operators in a discrete CAD 3D model, i.e. the method detects one or more CAD body draft operators in a provided (i.e. acquired) discrete 3D model. Detection of CAD body draft operators allows detection / calculation of the contours of the body on which the draft body has been applied. This provides more meaningful properties about the mechanical part. For example, detection of these operators allows to distinguish CAD pocket features and / or CAD pad features. Detection of CAD body draft operators enables an improved understanding of the material distribution in the mechanical part and the operators that construct this distribution. Detection of CAD body draft operators is particularly relevant in mechanical CAD / manufacturing CAD, as further explained below.

[0059] In addition, the method not only detects CAD body draft operators, but also detects CAD body draft operators in an improved manner. In fact, the method starts with the segmentation of the acquired discrete 3D model, and then iteratively groups the segmented fragments, that is, the method iteratively explores the fragments and groups the explored fragments. There are three cases for grouping two fragments in a pair of fragments. The first case is that they are both draft surfaces (i.e., surfaces generated when the draft operator is applied) and the two fragments have the same respective draft axes and the same draft angles relative to the respective draft axes. In this case, the union of the two fragments is a draft surface, and its draft angle is the same as the draft angle of the two fragments relative to the draft axis. In other words, if the two fragments are part of the same draft body (also called "draft body") and have the same draft angle relative to the same draft axis. The union (for example, of two fragments) is mathematically understood as the mathematical union of two sets. The second case is that they are both draft surfaces and the two fragments have the same respective draft axes, and at least one fragment has a zero angle relative to the respective draft axis. As is known, a draft operator with zero draft angle is equivalent to an extrusion operator when the extrusion corresponds to the draft axis as its extrusion axis. Thus, in the second case, two segments are grouped if they are two draft surfaces with different draft angles relative to the same draft axis and at least one angle is zero. The third case is that one of them is a draft surface and one of them is a closing plane of the other, i.e. the other is part of a draft body closed by the closing plane.

[0060] Thus, by iteratively grouping the segments based on these considerations, the method eventually (i.e. once all iterations are completed) obtains a plurality of groups comprising a plurality of segments, each group corresponding to a respective draft body, i.e. the segments of the respective group together form a respective draft body. Then, for each group, a CAD body draft operator corresponding to the group is determined, i.e. corresponding to the body draft formed by the group. By grouping the segments in this way, the method then determines one or more CAD body draft operators, each CAD body draft operator being adapted to the respective group. Since the method relies on draft axis similarity detection and closed plane detection to obtain the groups, this allows an efficient and universal determination of the CAD body draft operators. Furthermore, this determination method is computationally efficient.

[0061] Therefore, the method is not limited to detecting a specific type of drafted volumes, but detects any CAD volume draft operator, regardless of its type or its profile. In other words, the grouping performed by the method is able to detect any CAD volume draft operator in the CAD3D model. In other words, the method determines any CAD volume draft operator with an arbitrary profile. The method can actually detect CAD volume draft operators with standard profiles (such as tapered surfaces) as well as CAD volume draft operators with free-form profiles. A standard profile means that the profile is a connection of one or more straight line segments and / or arcs. A free-form profile means that the profile includes at least one curved portion that is not a straight line segment or an arc.

[0062] As mentioned above, the detection of CAD body draft operators is particularly relevant in manufacturing CAD / mechanical CAD. Manufacturing CAD specifies software solutions to assist the design process and the manufacturing process, the goal of which is to produce a physical product corresponding to the designed CAD 3D model. "Designing a manufactured product / mechanical component / mechanical product" refers to any operation or series of operations that are at least part of the process of modeling an object (3D or 2D) of a manufactured product / mechanical component / mechanical product. The method can form such a process or can at least form part of the process. In this article, the CAD model represents a manufactured product (which is a mechanical component) that can be manufactured downstream according to its design (e.g., using a design process including the method). Therefore, the method can 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 is completed by editing the CAD 3D model). CAD body draft operators allow and facilitate the editing of the corresponding body part of the CAD model, for example, by modifying the parameters associated with the operator (e.g., the angle of the draft). The manufacturing CAD process including the method may also include the step of editing the CAD 3D model based on the detected CAD body draft operator. In addition, such an operator also facilitates the manipulation and storage of the 3D modeled objects as parametric CAD models during the design and manufacturing process, which require much less memory than discrete models (such as meshes or point clouds) to store or load during the execution of the respective design software.

[0063] The method may be, for example, part of a step of CAD feature acquisition in a design process, or a step of feature tree construction, i.e., a step of constructing a CAD feature tree at the bottom of a CAD model. The concept of feature trees is well known in manufacturing CAD. In these steps, based on segmented segments, some of which are draft surfaces each associated with a draft axis, the method groups the segments into draft bodies, and determines a respective CAD body draft operator for each draft body. In other words, the method takes draft surfaces (i.e., some segments) as input and outputs CAD draft features (i.e., determined CAD body draft operators). These CAD features acquired by the method may be integrated into a feature tree, for example, together with other CAD features acquired by other methods (e.g., before, after, or during execution of the method in the step of CAD feature acquisition). Thus, the step of CAD feature acquisition may produce a list of CAD features, the list being arranged, for example, in the form of a feature tree, including the CAD body draft operators determined by the method.

[0064] In the method, each determined CAD body draft operator corresponds to (e.g. fits, builds) a group of respective segments, the latter being a draft body. Each such draft body is a body having a coherent geometry (i.e. the geometry of the draft body, such as a boss, a dimple or a split) and being coherent from a manufacturing point of view. In other words, the portion of the mechanical component corresponding to the draft body has a geometry / shape that is required and / or suitable for a corresponding manufacturing process (e.g. molding). The detection of the CAD body draft corresponding to the portion allowed by the method enables the editing of the corresponding portion (i.e. the corresponding group of segments) of the CAD 3D model to be performed downstream of the method, e.g. in the previously mentioned design process, in view of the manufacturing process. In the example of a method for manufacturing a mechanical component by a molding process, the method can form or be part of the design and manufacturing process to set the draft angle of the mold used in the molding process. In such an example, when one or more draft operators are detected in the input discrete model, the design of the mechanical component, in particular the draft angle of the detected draft operator, can be updated to improve the demolding of the mechanical component. The method and / or design and manufacturing process may notably further include editing one or more (e.g., all) detected CAD body draft operators to set a respective draft angle for each edited operator, the draft angle facilitating demolding of the part, which is known per se in molding manufacturing. Because the method provides a draft operator that facilitates editing of the model, the draft angle may be set or modified more efficiently and reliably.

[0065] It is noteworthy that this method helps designers and engineers in the design process. In the field of engineering, it is very common to perform a design process based on a provided discrete 3D model, such as a mesh (e.g., a polygonal mesh) or a point cloud, without accessing the corresponding CAD file of the provided discrete 3D model. Such a discrete 3D model can be retrieved from an internal database or downloaded from an online library. Alternatively or additionally, such a discrete 3D model can be obtained from a topology optimization method. As is known, a topology optimization method can provide a (e.g., voxel) mesh of the final design based on the value of a material density function. Further alternatively or additionally, such a discrete 3D model stored in the database can be a discrete 3D model generated / output by a software package, which is no longer available to the designer. Also alternatively or additionally, such a discrete 3D model that can be stored in the database can be a discrete 3D model generated / output as an output of a scanning process.

[0066] In an example, the method may acquire a discrete 3D model via a 3D scanning process. In other words, the method may include scanning a real-world sample of a mechanical product before acquiring the discrete 3D model. The scanning process may output a point cloud or mesh representing a mechanical component. The method may convert a point cloud into a mesh. In such an example, the method may form or be part of a process for acquiring a CAD model of a physical object through a scanning process. In such an application, the method may detect a body (or a portion of a body) corresponding to a draft operator. Such applications may involve detecting a draft angle (or multiple draft angles) from a 3D scanning process, such as obtaining corresponding parameters of a suitable mold using the detected draft angle. Such a mold may be particularly suitable for manufacturing replicas from a measured prototype or preparing for a mass production stage. Such an application is particularly suitable for reverse engineering using a physical sample when physical manufacturing details are not available. For example, the method can be used to manufacture a model of an already existing manufactured product.

[0067] This method is now discussed further.

[0068] The method is used for CAD draft operator detection in a discrete 3D model representing a mechanical component. In other words, the method, based on the discrete 3D model, detects one or more CAD body draft operators in the discrete 3D model. A CAD body draft operator (also referred to as a "CAD body draft feature" or simply a "CAD draft feature") is a CAD operator corresponding to a bending of one or more faces on a component relative to a neutral plane. The CAD draft operator is determined by a draft angle (relative to the draft axis u) and a draft angle (relative to the draft axis u). e) and a neutral plane. The draft angle sets the angle used for the draft bend. The draft axis corresponds to the neutral plane, for example the draft axis can be perpendicular to the neutral plane. The draft axis is defined by its direction, the neutral plane defines the height to which the surface must bend. The draft axis can be perpendicular to the neutral plane. Such an operator defines a draft body, i.e. a body that is defined as a result of the application of a CAD draft operator. In other words, a CAD body draft operator defines a draft body as a result of the application of one or more parameters defining the operator, such as a profile curve, a draft axis, a height limit, and a type such as a boss or a dimple. A draft body is a 3D body portion of a CAD model that is shaped as a draft extrusion and corresponds to the material distribution of a mechanical part that is arranged as a draft extrusion. The body is formed in part by the aggregation of draft surfaces (and possibly closed planes) having the same draft axis. In addition to the draft axis and the angle, a CAD body draft operator can be defined by: a (planar) profile curve γ, a height limit h min ,h max and type (boss or dimple).

[0069] The method includes obtaining a segmentation of a discrete 3D model.

[0070] Acquisition of the segmentation may include providing an already existing segmentation of the 3D model, for example by retrieving the existing segmentation from a (e.g. remote) memory or database, in which the existing segmentation has been stored for retrieval. The segmentation may be a segmentation produced by a method for segmenting a 3D modeled object described in European patent application EP21305195.6 filed by Dassault Systèmes on February 16, 2021, which is incorporated herein by reference. In other words, when applied to a 3D modeled object that is a discrete 3D model, the segmentation of the provided discrete 3D model may be a segmentation (i.e. a set of first and second segments) produced by a method for segmenting a 3D modeled object described in European patent application EP21305195.6. Alternatively, the segmentation may be a segmentation produced by performing segmentation according to a method described in European patent application EP21305293.9 filed by Dassault Systèmes on March 10, 2021, which is incorporated herein by reference. In other words, when applied to a 3D modeled object as a discrete 3D model, the segmentation of the discrete 3D model provided may be a segmentation produced by performing segmentation according to the method described in European patent application EP21305293.9. Alternatively, the segmentation may be any other segmentation of the CAD 3D model produced by another segmentation method.

[0071] Alternatively, obtaining the segmentation of the discrete 3D model may include providing the model (e.g. by retrieving the model from a memory or a database) and then performing the segmentation of the discrete 3D model. Performing the segmentation of the discrete 3D model may include applying the method for segmenting a 3D modeled object described in the previously cited European patent application EP21305195.6 to the CAD 3D model (i.e. in this case, the discrete 3D model plays the role of a 3D modeled object in the method described in the previously cited European patent application EP21305195.6). Alternatively, performing the segmentation of the discrete 3D model may include applying the use method described in the previously cited European patent application EP21305293.9 to the discrete 3D model (i.e. in this case, the CAD 3D model plays the role of a 3D modeled object in the use method described in the previously cited European patent application EP21305293.9). In this case, when applied to the discrete 3D model, the segmentation is the result of the step of performing the segmentation according to the use method described in the previously cited European patent application EP21305293.9. Alternatively, performing the segmentation of the CAD 3D model may include applying any other segmentation method.

[0072] In any case, the segmentation comprises a plurality of fragments, which together form the segmentation. Each fragment represents (e.g. is) a skin portion, i.e. a part of the skin. In other words, each fragment corresponds to (e.g. is) a part of the outer surface of the discrete 3D model. As a fragment of the segmentation, each fragment is a geometrically coherent surface portion (e.g. a draft surface) of the 3D modeled object with maximum internal consistency.

[0073] Furthermore, to provide segmentation of the CAD 3D model, the method further comprises iteratively grouping the segments. In other words, the method iteratively visits / explores / browses the segments and groups them. The exploration may include browsing a list of segments. The grouping is based on the criteria of grouping two segments in a pair of segments (a pair of segments always includes two segments) if:

[0074] o Each segment in a pair of segments is a draft surface and both segments have the same respective draft axis, and:

[0075] ■The two segments have the same draft angle relative to their respective draft axes, or

[0076] ■ at least one segment has an angle of zero degrees relative to the respective draft axis; or

[0077] ○ One of the segments in a pair is the draft surface and the other segment is the closed plane.

[0078] The method may iteratively evaluate whether pairs of segments meet a criterion and group the segments in the pairs of segments when they meet the criterion. The criterion is particularly based on the segments being draft surfaces. The mechanical component has at least one draft surface with a non-zero draft angle. Thereby, pairs of segments are iteratively grouped at least once, at least one segment in the pairs of segments having a non-zero draft angle relative to a respective draft axis.

[0079] In an example, the method may include determining all segments of the draft surface. In such an example, the determination may include performing a

[0080] n p u = sin(θ) test,

[0081] where S is a segment and n p is the normal vector of the segment S at the point p. The method then determines that each surface that satisfies this test is a draft surface. Such determined draft surfaces are defined by a draft angle θ relative to the draft axis u. Such determination may be prior to iterative grouping. In other words, prior to iterative grouping, the method may detect which segments are draft surfaces. The results of the detection may be stored in a memory, for example, the method may mark the segments that are detected to be draft surfaces and store the mark together with the segments with which they are associated.

[0082] In iterative grouping of segments, the method can thus iteratively explore pairs of segments in which segments are detected (eg, marked) as draft surfaces. A closing plane for body draft is a portion of a draft body (ie, a segment) that is a plane perpendicular to the draft axis of the body.

[0083] Grouping the two segments may include associating the two segments together and marking (e.g., labeling them) as being part of the same group. In some cases, grouping the two segments may also include merging the two segments, thereby creating a new segment. Specifically, when each segment in the pair of segments is a draft surface and the two segments have the same respective draft axis, and the two segments have the same draft angle relative to the respective draft axis, the method may merge the two segments.

[0084] The method may perform a test to determine all segments that are draft surfaces using different schemes. In an example, performing the test may include evaluating for each segment S:

[0085] and

[0086] in and is defined by: And vol s is a canonical measure on S, ∈>0 indicates a sufficiently small threshold (e.g. 0.001) and is the mean normal of S, defined as

[0087] In an example, the evaluation may include solving the following types of optimization problems:

[0088]

[0089] st|u|=1

[0090] in The following types:

[0091]

[0092] In the example, the solution to the optimization problem involves finding (the matrix The smallest eigenvalue and its associated eigenvector Testing can include testing whether here is the minimum eigenvalue.

[0093] In an example, iteratively grouping the segments may include one or more iterations in an iterative process. The iterative process may explore pairs of segments. In other words, the method may explore at least a portion (e.g., all) of the segments of the acquired segmentation in a pairwise manner. The method may determine whether a first difference between a value of a draft detection objective function for a union of segments in the explored pairs of segments and a weighted sum of values ​​of a draft detection objective function for segments in the explored pairs of segments is below a first predefined threshold. The (weighted) sum may be weighted based on the area of ​​the (paired) segments. An example of the first difference is discussed below. Alternatively, the method may determine whether a second difference between a value of a draft closure objective function for segments in the explored pairs of segments and the weighted sum is below a second predefined threshold. The draft closure objective function may reward orthogonality of an input segment relative to a draft axis of another input segment. An example of the second difference is discussed below. Then, if the first difference is below the first predefined threshold, the method may regroup the segments in the explored pairs of segments. Alternatively, if the second difference is below a second predefined threshold, the method may regroup the segments in the explored pairs of segments.

[0094] The first difference is the difference between the value of the draft detection objective function for the union of the segments and the weighted sum of the values ​​of the draft detection objective function for the two segments in the pair of segments (i.e., the weighted sum of the two corresponding values ​​of the draft detection objective function for the two segments in the pair of segments). The first difference is any function that tends to vanish when the union is a draft surface whose draft axis is the same as the draft axes of the two segments, i.e., when the value of the draft detection objective function tends to equal the weighted sum. For example, the difference may be the difference between the value of the draft detection objective function for the union and the weighted sum of the values ​​of the function for the two segments.

[0095] The draft detection objective function may be any function that allows for detection of a draft surface, for example by the disappearance (or disappearance) of an input draft, in which case verifying that the value of the draft detection objective function for the input surface is small is equivalent to verifying that the surface is a draft surface. Such a function may, for example, be a function that rewards a constant angle between a candidate draft axis of the input surface and a normal vector of the input surface. In an example, such a function may reward orthogonality between a candidate draft axis of the input surface and a difference between the normal vector of the input surface and an average normal vector on the surface. In such an example, the objective function may tend to vanish when such orthogonality exists. Verifying that the function has a value less than a predetermined draft detection threshold corresponds to verifying that the candidate draft axis is indeed a draft axis of the input surface, which is then a draft surface.

[0096] The second difference is the difference between the value of the draft closure objective function of the segments in the explored pair of segments and the weighted sum (i.e., the weighted sum of the values ​​of the draft closure objective function of the segments in the explored pair of segments). The second difference is any function that tends to vanish when one of the segments is the closing plane of the other segment, i.e., when the value of the draft closure objective function tends to be equal to the weighted sum. The difference can be, for example, the difference between the value of the draft closure function of the explored pair and the weighted sum.

[0097] The draft closure objective function is any function that allows detecting that an input draft surface is a closure plane of another input draft surface, for example by the disappearance (or tendency to disappearance) of these inputs, in which case verifying the smallness of the value of the draft closure objective function for these inputs is equivalent to verifying that one of the inputs is a closure plane of the other input. To this end, the draft closure objective function is a function that rewards orthogonality of an input segment with respect to the draft axis of the other input segment, for example by the tendency to vanish when such orthogonality exists, such that verifying that the function has a value less than a predetermined draft closure threshold is equivalent to verifying that the input draft surface is indeed a closure plane of the other input draft surface.

[0098] The first threshold and the second threshold are both predefined, i.e., predefined, for example, in an initial stage of the method. The first threshold may be equal to the second threshold. The first threshold and / or the second threshold may be defined by a user.

[0099] The value of the draft detection objective function for an input segment is the minimum eigenvalue of the normal matrix of the input segment. Alternatively or additionally, the value of the draft closure objective function is the minimum eigenvalue of a matrix that is a weighted sum of the normal matrix of another input segment and the identity minus a normal matrix of the input segment. The (weighted) sum may be weighted based on the area of ​​the input segment.

[0100] In an example, the first difference may be of the following type:

[0101]

[0102] Where S 1 and S 2 are two fragments in the explored pair of fragments, YesS 1 and S 2 The normal matrix of the union of The minimum eigenvalue of YesS 1 The normal matrix The minimum eigenvalue of .

[0103] In addition, if S 2 With a non-zero draft angle, then YesS 2 The normal matrix The minimum eigenvalue of . In the fragment S 2 In the example with zero draft angle (i.e. where the segment is an extrusion), YesS 2 The normal matrix Here, the matrix yes The non-central normal matrix of is defined as

[0104]

[0105] where S represents the normal vector and |S 2 |Yes surface area.

[0106] In addition, the matrix is defined as

[0107]

[0108] When S 1 and S 2 With a non-zero draft angle, For S 1 The area of For S 2 The area of

[0109]

[0110] When S 1 With a non-zero draft angle and S 2 With zero draft angle, For S 1 The area of For S 2 area.

[0111] In the example, the second difference may be of the following type:

[0112]

[0113] in is a matrix The minimum eigenvalue of

[0114] Where S 1 is another input fragment and S 2 is the input fragment. Here is YesS 1 The normal matrix The minimum eigenvalue of YesS 2 The normal matrix The minimum eigenvalue of .

[0115] Determining the CAD body draft operator corresponding to each group may include establishing a contour curve for the corresponding group. Establishing the contour curve may be based on the contour curves of the segments in the corresponding group. For example, for each segment of the corresponding group, constructing the contour curve may include providing a corresponding contour curve for the segment. In this case, constructing the contour curve also includes iteratively connecting the respective contour curves, wherein if the difference between a pair of corresponding contour curves is less than a third predefined threshold, then the pair of corresponding contour curves are connected.

[0116] Providing a respective contour curve for each fragment of the group may include retrieving these contour curves from (e.g., a remote memory) to which these contour curves have been stored before calculation. These contour curves may, for example, each be a contour curve that is obtainable (e.g., already obtained) by a parameterization method described in European patent application EP21305671.6 filed by Dassault Systèmes on May 21, 2021. Alternatively, providing a respective contour curve for each fragment of the group may include applying the acquisition of these contour curves. For example, this may include applying the parameterization method described in the previously cited European patent application EP21305671.6. In other words, for each fragment of the group, providing the corresponding contour curve of the fragment may include applying the parameterization method described in the previously cited European patent application EP21305671.6, the method including the step of calculating the contour described in European patent application EP21305671.6, which application generates a contour curve of the fragment.

[0117] When the profile curve is obtained or obtainable by the previously mentioned method described in the previously cited European patent application EP21305671.6, the profile curve is parameterized with a natural parameterization that grows in the profile direction as described in European patent application EP21305671.6. For example, such a parameterization of the profile curve may be an arc length parameterization that grows in the profile direction. The profile curve of the draft body is established in connection, the draft body being the group of profile curves from its segments, and using the parameterization provided by European patent application EP21305671.6 allows obtaining an orientation-coherent parameterization of the profile curve of the draft body.

[0118] Iteratively connecting the corresponding contour curves includes iteratively connecting the contour curves (i.e. one by one) to form a single contour curve, the single contour curve being the contour curve of the corresponding group. Iteratively connecting includes connecting the contour curves two by two, i.e. connecting pairs of contour curves, wherein for each pair of contour curves, the contour curves are connected if the third difference between the respective contour curves in the contour curves is less than a third predefined threshold. The third difference can be any function, such as a distance, and the distance disappears when the corresponding contour curves can be connected (e.g. when they can be joined using their extreme points).

[0119] The third predefined threshold may be predefined by the user, for example, in an initial stage of the method. When the CAD 3D object is measured (e.g., scanned as described above), the third predefined threshold may be defined relative to the noise associated with the measurement, for example, the third predefined threshold may be proportional or substantially proportional to the noise. This provides robustness to noise. The method may use an embodiment as discussed in European patent application EP21306184.9 filed by Dassault Systèmes on August 31, 2021, which is incorporated herein by reference.

[0120] For each group, determining a CAD body draft operator corresponding to each group also includes determining a draft type of the CAD body draft operator based on the constructed contour curve. The type of the CAD body draft operator can be a boss operator, which corresponds to adding material by sliding the contour curve in an outward direction along the draft axis. The type of the CAD body draft operator can alternatively be a dimple operator, which corresponds to removing material by sliding the contour curve in an inward direction along the draft axis. The method obtains the type of the CAD body draft operator by using the contour curve constructed for the corresponding group, such as by evaluating the proximity or non-proximity of the contour curve and the curvature of the contour curve, and these characteristics of the curve determine the draft type.

[0121] Determining the draft type may include determining whether the profile curve is closed and calculating the total curvature of the profile curve. In this case, if the profile curve is open and the absolute value of the total curvature is strictly less than 2π, the CAD body draft operator is a draft surface (e.g., a split operator). If the profile curve is closed and the total curvature is equal to β.2π, the CAD body draft operator is a boss operator. If the profile curve is closed and the total curvature is equal to -β.2π, where β∈{-1,1}, the CAD body draft operator is a pit operator. The number β may be the number in the previously discussed embodiment of constructing the profile curve. The total curvature may be of the following types:

[0122] κ tot =∫ I κ γ (t)dt

[0123] where κ γ(t) is the algebraic curvature of the curve γ at parameter t, and t is the arc length parameter of the arc length parameterization of the curve γ on interval I. Using the total curvature allows the type to be determined using the orientation of the surface normal. For example, the addition of material corresponds to a normal pointing outward, while the removal of material corresponds to a normal pointing inward. The determination of the draft type is implementation-dependent. The method may use an implementation as discussed in European patent application EP21306184.9 filed by Dassault Systèmes on August 31, 2021, which is incorporated herein by reference.

[0124] CAD concepts relevant to the method and / or its context are now discussed.

[0125] The method generally manipulates a modeling object, such as a finite CAD model output by the method. A modeling object is any object defined by data, such as stored in a database. By extension, the expression "modeling object" specifies the data itself. Depending on the type of system, the modeling object can be defined by different kinds of data. The system can actually be any combination of a CAD system, a CAE system, a CAM system, a PDM system and / or a PLM system. In these different systems, the modeling object is defined by the corresponding data. Therefore, we can talk about CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not mutually exclusive, because a modeling object can be defined by data corresponding to any combination of these systems. Therefore, the system can be a CAD, CAE, PLM and / or CAM system, which will be obvious from the definition of such a system provided below.

[0126] By CAD solution (e.g., CAD system or CAD software), it is further meant any system, software or hardware, such as CATIA, that is at least suitable for designing a modeled object based on a graphical representation of the modeled object and / or its structured representation (e.g., feature tree). In this case, the data defining the modeled object include data that allow the representation of the modeled object. The CAD system can, for example, provide a representation of a CAD modeled object using edges or lines, in some cases with faces or surfaces. Lines, edges or surfaces can be represented in a variety of ways, such as non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications from which geometric shapes can be generated, which in turn allow the generation of representations. The specifications for a modeled object 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 a modeled object can typically be an assembly of tens of thousands of components.

[0127] In the context of CAD, a modeled object may generally be a 2D or 3D modeled object, for example representing a product such as a part or an assembly of parts, or possibly a component of a product. A 2D or 3D modeled object may be a manufactured product, i.e. a product to be manufactured. A "3D modeled object" refers to any object modeled by data that allows its 3D representation. A 3D representation allows the part to be viewed from all angles. For example, when represented in 3D, a 3D modeled object can be manipulated and rotated around any of its axes, or around any axis in the screen on which the representation is displayed. This specifically excludes 2D icons that are not 3D modeled. The display of a 3D representation facilitates design (i.e. increases the speed at which the designer statistically completes his task). This speeds up the manufacturing process in industry because the design of the product is part of the manufacturing process.

[0128] 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 with, 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 equivalently an assembly of components, since an assembly of components may be considered as a component itself from a method point of view, 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). A CAD / CAE software solution allows the design of products in a variety of and not limited industrial fields, including: aerospace, architecture, engineering, consumer products, high-tech equipment, industrial equipment, transportation, marine and / or offshore oil and gas production or transportation. Therefore, the 3D modeled objects designed by the method can represent industrial products, which can be any mechanical parts, such as parts of land vehicles (including, for example, automobile and light truck equipment, racing cars, motorcycles, trucks and automobile equipment, trucks and buses, trains), parts of air vehicles (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), parts of naval vehicles (including, for example, naval equipment, commercial ships, offshore equipment, yachts and work boats, marine equipment), general mechanical parts (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, manufactured metal products, tire manufacturing products), electromechanical or electronic components (including, for example, consumer electronics products, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer products (including, for example, furniture, home and garden products, leisure products, fashion products, products of hard goods retailers, products of soft goods retailers), packaging (including, for example, food and beverage and tobacco, beauty and personal care, household product packaging).

[0129] CAD systems can be history-based. In this case, modeled objects are also defined by data including the history of geometric features. Modeled objects can actually be designed by physical people (i.e., designers / users) using standard modeling features (e.g., extrude, revolve, cut and / or round) and / or standard surface features (e.g., sweep, blend, loft, fill, deform and / or smooth). Many CAD systems that support this modeling function are history-based systems. This means that the creation history of design features is usually saved by a non-cyclic data stream that links geometric features together through input and output links. Since the 1980s, history-based modeling paradigms have been known. Modeled objects are described by two persistent data representations: history and B-rep (i.e., boundary representation). B-rep is the result of calculations defined in history. When a modeled object is represented, the shape of the component displayed on the computer screen is B-rep (e.g., a chessboard arrangement of B-rep). The history of a component is a design intent. Basically, history collects information about the operations that the modeled object has undergone. B-rep can be saved with history to make it easier to display complex components. History can be saved with the B-rep to allow design changes to be made to the part according to design intent.

[0130] A PLM system also means any system suitable for managing modeled objects that represent physical manufactured products (or products to be manufactured). In a PLM system, a modeled object is therefore defined by data suitable for manufacturing a physical object. These can typically be dimensional values ​​and / or tolerance values. In order to manufacture an object correctly, it is best to have such values.

[0131] By CAE solution it is also meant any solution, i.e. software of hardware, 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 equivalently referred to as CAE model in the following. FEM generally involves dividing the modeled object into elements, i.e. a finite element mesh, whose physical behavior can be calculated and simulated by equations. This CAE solution is manufactured by Dassault Systèmes under the trademark Another growing CAE technology involves modeling and analyzing complex systems consisting of multiple components from different fields of physics without CAD geometry data. CAE solutions allow the simulation of manufactured products and thus their optimization, improvement and validation. Such CAE solutions are manufactured 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 (such as automobiles, aircraft, consumer packaged goods, high technology), these KPIs are in conflict, for example, lower mass usually leads to lower stiffness. Therefore, optimization methods are often applied to find the best compromise between KPIs.

[0132] A CAM solution refers to any solution of hardware and software 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. A CAM solution is 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, the duration of the manufacturing process or the number of resources (such as a specific robot) that can be used at a specific step of the manufacturing process; thereby 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 that are consistent with the draft features provided in the CAD model. Such CAM solutions are sold by Dassault Systèmes under the trademarks CATIA, Solidworks or the trademark CAD. supply.

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

[0134] - Checking the correct behavior of the object to be manufactured in a specific environment; and

[0135] - Ensure the manufacturability of the object to be manufactured.

[0136] PDM stands for Product Data Management. A PDM solution is any solution, hardware or software, suitable for managing all types of data related to a specific product. PDM solutions can be used by all actors involved 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 actors to share consistent data on their products, thus preventing actors from using fragmented data. This PDM solution is sold by Dassault Systèmes under the trademark supply.

[0137] The modeling object taken as input by the method is a (3D) discrete geometric representation of a manufactured product / mechanical product / mechanical component. A discrete geometric representation is a data structure comprising a collection of discrete data fragments. Each data fragment may specify an element of a product / mechanical component and is referred to as a discrete element. The discrete geometric representation may be 3D or 2D. Alternatively, the discrete geometric representation may be 3D and 2D, i.e. may include a 3D part as a 3D discrete geometric representation and a 2D part as a discrete geometric representation, such as a hybrid 3D-2D mesh (e.g. 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 may include a plurality of such data fragments greater than 100, 1000 or 10000.

[0138] In the case of a 3D discrete geometric representation, the 3D discrete geometric representation may be a solid / body 3D discrete geometric representation of a product / mechanical component, such as a solid 3D finite element model (FEM) or a 3D body mesh (e.g., a 3D tetrahedral mesh). In this case, each data fragment may represent a respective geometric entity located in a 3D space, such that these data fragments form a solid representation of the mechanical component / product (i.e., a "solid 3D discrete geometric representation"). Each geometric entity may represent a respective position (i.e., a material point) of a 3D object (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 geometric entities completely represents the 3D object as a solid / body. Optionally, the 3D discrete geometric representation may be a skin 3D discrete geometric representation, representing the skin of a product / mechanical component, such as a 3D surface mesh (e.g., a triangular surface mesh) or a tessellation. In this case, each data fragment may represent a respective geometric entity located in a 3D space, such that the data fragments form a representation of the skin of the mechanical product (i.e., a "skin 3D discrete geometric representation"). In this case, each geometric entity represents a respective location (i.e., material point) on the outer surface of the 3D object (in other words, the corresponding portion of the outer surface of the volume occupied by the material of the solid represented by the object). The collection (i.e., union or juxtaposition) of geometric entities together represents at least a portion of the outer surface of the object.

[0139] In the case of a 2D discrete geometric representation, each data segment may represent a corresponding geometric entity located 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 substantially planar product, such as a stamped part (e.g., with a constant thickness value) or a composite part (e.g., with different thickness values).

[0140] The modeling object output / designed by the method may be a CAD model, for example including or consisting of a feature tree and / or a B-rep. Such a model may be derived from a CAE model and may be generated by a CAE to CAD conversion process, the method may for example include an initial stage.

[0141] The CAD model may be feature-based (e.g. it may 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 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 an interpenetration between two parts of a 3D model, e.g. due to their relative motion. Furthermore, such collisions can sometimes only be detected by finite element analysis based on the CAD feature-based model. Therefore, by iteratively modifying the parameters of the features and performing a finite element analysis, the resolution of the collision can be performed using or automatically by the CAD solution.

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

[0143] The 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, for example, 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.

[0144] Because 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, the CAD model allows storing lists of features and parameters instead of a collection of discrete geometric elements such as finite elements, which is lighter in terms of storage and memory footprint. Therefore, working on a CAD model reduces the memory requirements of the underlying system compared to, for example, a CAE model, and furthermore facilitates the editability of the model. This means that, in addition to transforming the CAE model into a CAD model that is easier to edit, the CAE to CAD transformation process actually compresses the CAE model into a CAD model that is lighter in terms of memory requirements (e.g., footprint).

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

[0146] 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 a computer screen is a B-rep (e.g., a tessellation of the B-rep). In an example, a B-rep represents a portion of a modeled object.

[0147] B-rep includes topological entities and geometric entities. Topological entities are: 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, called the supporting surface. An edge is a bounded part of a curve, called the supporting curve. A vertex is a point in 3D space. They are related to each other as follows. A bounded part of a curve is defined by two points (vertices) located on the curve. A bounded part of a surface is defined by its boundaries, which are 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 "bounded by" relationships, relationships between topological entity structures, and mathematical descriptions of the supporting geometric structures in appropriate data structures. The internal edges of a B-rep are edges that are shared by exactly two faces. By definition, boundary edges are not shared, they only define one face. By definition, a boundary face is bounded by at least one boundary 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 bodies because it defines the interior portion of the space that (virtually) surrounds the material. An open B-rep is used to model 3D skins, which represent 3D objects whose thickness is small enough to be ignored.

[0148] The key advantage of B-rep is its ability to accurately represent arbitrary shapes compared to any other type of representation used in CAD modeling. All other representations in use, such as point clouds, distance fields, and meshes, perform approximations of shapes to represent them through discretization. On the other hand, B-rep contains surface equations that represent the exact design, and therefore constitutes a true "master model" for further manufacturing, whether this is for the generation of tool paths for CNC or discretized into the correct sample density 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 analysis, it supports local refinement of simulation meshes to capture physical phenomena, and in terms of kinematics, it supports real contact modeling between curved surfaces. Finally, B-rep allows for a small memory and / or file footprint. First, because the representation contains surfaces based only on parameters, in other representations such as meshes, the equivalent surface includes up to thousands of triangles. Second, because B-rep does not contain any history-based information.

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

[0150] - applying the method (e.g. automatically), thereby obtaining a CAD model comprising one or more draft surfaces;

[0151] -Use the acquired CAD model for manufacturing the part / product.

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

[0153] -Edit the acquired CAD model;

[0154] - performing simulations based on the CAD model or a corresponding CAE model (e.g. the CAE model from which the CAD model is derived after a CAE to CAD conversion process), e.g. simulations for confirming mechanical, usage and / or manufacturing properties and / or constraints (e.g. structural simulations, thermodynamic simulations, aerodynamic simulations);

[0155] -Edit CAD models based on simulation results;

[0156] - optionally (i.e. depending on the manufacturing process used, the production of the mechanical product may or may not include said steps), 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;

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

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

[0159] The final production / manufacturing step may be referred to as a manufacturing step or a production step. A step, based on a CAD model and / or CAM file, for example, when the CAD model and / or CAD file is fed to one or more manufacturing machines or a computer system that controls the machine, the component / product is manufactured / produced. 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 (e.g., 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 molding steps, one or more machining steps (e.g., milling steps), and / or one or more blanking steps. Because the design method improves the design of the model (CAE or CAD) representing the component / product, manufacturing and its productivity are also improved.

[0160] Editing a CAD model may include performing 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 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 display representation of the CAD model (e.g., B-rep). These modifications are modifications that maintain the technical functionality of the component / product, i.e., modifications that the user performs that may affect the geometry and / or parameters of the model, just 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 optionally include any modification or a series of modifications that make the CAD model technically compatible with further use after the product / component is manufactured, such modifications or a series of modifications being based on, for example, the results of a simulation.

[0161] The CAM file may include a manufacturing step-up model obtained from a CAD model. The manufacturing step-up may include all data required to manufacture the mechanical product so that it has a geometry and / or distribution corresponding to the material 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 to (e.g. automatically) determine 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:

[0162] -Fusion 360,

[0163] - FreeCAD,

[0164] -CATIA,

[0165] -SOLIDWORKS,

[0166] -NC Shop Floor Programmer by Dassault Systèmes described at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer,

[0167] - NC Mill-Turn Machine Programmer by Dassault Systèmes described at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer, and / or

[0168] - Powder Bed Machine programmer by Dassault Systèmes described at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer

[0169] The product / component may be a molded component, i.e. a component manufactured by molding (e.g. injection molding). In this case, the production process may include a step of determining a CAM file. The 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 molding check sequence based on the CAD model to check whether 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 check 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 limits his / her corrections so that the CAD model complies with the specifications of the molding tool. The check 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 demoulding of the product, as known per se from molding. Then, the determination of the CAM file may also include determining the amount of liquid material to be used for molding based on the CAD model, and / or the time for the liquid material to harden / solidify in the mold, and outputting a CAM file including these parameters. Then, the production process includes (e.g., automatically) performing 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 combined draft angle or until a modified draft angle for demolding).

[0170] 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 can be performed by a computer fully automatically or semi-automatically. In an example, the triggering of at least some steps of the method can be performed by user-computer interaction. The level of user-computer interaction required can depend on the level of automaticity foreseen and is balanced with the need to achieve the user's wishes. In an example, the level can be user-defined and / or predefined.

[0171] A typical example of a computer implementation of the method is to perform the method using a system that is suitable for the purpose. The system may include a processor coupled 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 components (e.g., one component for the program, and possibly one component for the database).

[0172] Figure 1An example of a GUI for a system is shown, where the system is a CAD system.

[0173] GUI 2100 can be a typical CAD-like interface with a standard menu bar 2110, 2120 and bottom and side toolbars 2140, 2150. Such menu bar and toolbar contain a set of user-selectable icons, each icon associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools, suitable for editing and / or working on the 3D modeling object 2000 displayed in GUI 2100. Software tools can be grouped into workbenches. Each workbench includes a subset of software tools. In particular, one of the workbenches is an editing workbench, suitable for editing geometric features of the modeled product 2000. In operation, the designer can, for example, pre-select a portion of the object 2000, then initiate an operation (e.g., change size, color, etc.) or edit geometric constraints by selecting an appropriate icon. For example, a typical CAD operation is the modeling of a punch, or the folding of a 3D modeling object displayed on the screen. The GUI can, for example, display data 2500 related to the displayed product 2000. In the example of the figure, data 2500 displayed as a "feature tree" and its 3D representation 2000 relate to a brake assembly including a brake caliper and a brake disc. The GUI may also display various types of graphical tools 2130, 2070, 2080, such as for facilitating 3D orientation of an object, for triggering a simulation of an operation to edit a product, or for presenting various properties of the displayed product 2000. The cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphical tools.

[0174] Figure 2 An example of a system is shown, where the system is a client computer system, such as a user's workstation.

[0175] The exemplary client computer includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, a random access memory (RAM) 1070 also connected to the bus. The client computer is also equipped with a graphics processing unit (GPU) 1110, which is associated with a video random access memory 1100 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to a mass storage device such as a hard disk drive 1030. 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 EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks. Any of the foregoing may be supplemented or incorporated by specially designed ASICs (application specific integrated circuits). A network adapter 1050 manages access to a network 1060. The client computer may also include a tactile device 1090, such as a cursor control device, a keyboard, etc. A 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 board and / or a sensitive screen.

[0176] 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 the instruction program to perform the functions of the method by operating on input data and generating output. Therefore, 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 the data storage system, at least one input device, and at least one output device. The application program may be implemented in a high-level procedural or object-oriented programming language, or in an assembly or machine language if necessary. In any case, the language may be a compiled or interpreted language. The program may be a fully installed program or an update program. The application of the program on the system in any case results in instructions for executing the method. Alternatively, the computer program may be stored and executed on a server in a cloud computing environment, and the server communicates with one or more clients via a network. In this case, the processing unit executes the instructions included in the program, thereby causing the method to be performed on the cloud computing environment.

[0177] The implementation of the CAD body draft operator is now discussed.

[0178] The implementation plan involves areas such as geometry processing, 3D CAD analysis, modeling and editing, 3D reconstruction and recognition, simulation, and experimental design.

[0179] More specifically, embodiments find some volume CAD features from a 3D surface mesh or point cloud that approximates a closed surface, which construct a 3D model that leads to the surface. More specifically, embodiments detect draft features that have been used. Embodiments provide a technique for arbitrary contours.

[0180] The embodiment uses segmentation techniques to divide the 3D data into subcomponents, and proceeds to detect which of these subcomponents can be part of the draft. The embodiment then collects subcomponents that appear to be the result of the same characteristics of the use condition. The embodiment then detects which body feature to set, add or remove material with the help of orientation consistent parameterization of the profile.

[0181] This implementation requires only a small amount of computation through an efficient implementation that switches from local to global calculations. The number of computations for the efficient implementation is minimized by making the right choices using the maximum geometric information available in the data. The implementation is very general and works with all kinds of drafts and is not limited to specifications like cones or planes.

[0182] The draft operator on a 3D CAD model consists of the bending of one or more faces on the part relative to the neutral plane. This feature is used to make the object easier to remove from the mold. Applying the draft operator requires defining the draft angle θ and the neutral plane.

[0183] Figure 3 An example of a draft feature is presented, where a draft process is applied to faces 320 and 325 of extrusion 310 to obtain model 315. The final draft surfaces of faces 320 and 325 are faces 330 and 335, respectively.

[0184] An example of detection of a draft component according to an embodiment is now discussed:

[0185] Primary draft component inspection:

[0186] A surface is a solid if and only if it satisfies the following conditions: Is the perfect draft surface:

[0187]

[0188] symbol Defined as the mean normal of S:

[0189]

[0190] Therefore, if S is a perfect draft surface, then Therefore, equivalent to formula (1), the surface is Is the perfect draft surface:

[0191]

[0192] The conditions expressed in equation (2) can be relaxed to restrict what can be an approximate draft surface.

[0193] set up The definition is as follows:

[0194]

[0195] in And vol s is the standard measurement on S, in other words, the measurement made by Lebesgue on The measurement caused by the above.

[0196] The expansion of formula (2) can be expressed as:

[0197]

[0198] For some ∈>0, for example ∈=10 -3 ). Formula (3) is equivalent to:

[0199]

[0200] By noting

[0201]

[0202] It can be seen that in order to decide whether the surface S can be an approximate draft, an optimization problem must be solved:

[0203]

[0204] st|u|=1

[0205] This is equivalent to finding The minimum eigenvalue of and its associated eigenvector here, is the minimum value of the problem.

[0206] As (axis The conditions for the approximate surface of the draft are:

[0207]

[0208] The implementation can now use (COND) as (COND) on a surface, such as a mesh or a point cloud. The implementation can be applied on a point cloud once the normal vector corresponding to the point is also provided to the method.

[0209] For example, for a triangle mesh It corresponds to a segmented linear surface S, so it exactly holds:

[0210]

[0211] in is the set of triangular faces of the mesh, |τ| is the number of triangles The area and n τ It is a triangle The normal vector of .

[0212] Implementation plan and then select the draft axis u e , so that

[0213]

[0214] And the draft angle θ can be calculated as:

[0215]

[0216] The implementation scheme when applied to an entire surface representing a complex 3D shape is now discussed.

[0217] S is set as the embedded surface The embodiment first performs a segmentation of the surface using, for example, the method of European patent application EP23306186.0 filed by Dassault Systèmes on July 11, 2023, which is incorporated herein by reference. As a result of the segmentation, the embodiment separates the surface into substantially non-intersecting sub-surfaces

[0218] The implementation then sets a sufficiently small constant tolerance ∈>0, for example, the value of the tolerance may be 5×10 -3 Then, for each This implementation applies the following process:

[0219] Calculation The central normal matrix For example, if is a triangular mesh, and is a subgrid, the implementation scheme uses the discrete formula:

[0220]

[0221] Calculation The eigenvalue of

[0222] ■If Implementation plan tag for potential (basic) draft components and stores the calculated Central Normal Matrix and the mean normal

[0223] ■If and Implementation Markup For potential planar components.

[0224] An example of aggregation of draft surfaces according to an embodiment is now discussed:

[0225] Draft surface aggregation:

[0226] To cluster the basic draft, the embodiment uses a technique similar to that described in European patent application EP21306184.9 filed by Dassault Systèmes on August 31, 2021, which is incorporated herein by reference, with a different clustering of centered normal matrices.

[0227] For two disjoint subcomponents S of S that have been detected as potential drafts 1 and S 2 , the implementation calculates the average normal and the centered normal matrix of their union using the following formula:

[0228]

[0229] This allows avoiding the calculation of these elements on all elements of the resulting surface (eg on all faces of the mesh).

[0230] Then, implement the calculation The smallest eigenvalue associated with Then, the embodiment collects the demolding energy of the part, i.e. Compare with the weighted sum of the draft energies of the segmented parts. ′ The draft energy is a non-negative value

[0231] Number of imports:

[0232]

[0233] quantity is always non-negative, but the closer it is to 0, the more energy (S) is added when the draft component is collected as a single 1 ,S 2 ) is less. This means that the implementation intends to group them more into a single draft.

[0234] Implementation plans may use the following criteria to decide whether to use S 1 and S 2 Should we collect:

[0235]

[0236] Where η is small enough, for example, 10 -3 .

[0237] In some variations, the embodiments Compare with ∈ to see that in the same sense as the basic draft component Whether it is a potential draft component.

[0238] The example clustering discussed is particularly applicable to drafts with similar draft angles. However, embodiments may be applied to clustered drafts with drawn / undrafted drawn parts (which may be considered drafts with draft angles of value 0) to build up the drawn part before applying draft to only some subcomponents of the drawn part.

[0239] Figure 5 An example surface with gathering applied is shown. In reality, the two hidden planes at the back that are orthogonal to the top plane 510 are not drafted, but they should be used to calculate the profile curve of the extrusion made before drafting.

[0240] In such an example, for S 1 Draft and S 2 For (undrafted) extruded parts, the average normal and central normal matrices of their union are calculated using the following formula:

[0241]

[0242] in It is specified in the background technology The normal matrix of the indeterminate center

[0243] Then, the quantity for:

[0244]

[0245] have The minimum eigenvalue of .

[0246] For this case, the implementation maintains information about the subcomponents that should be drafted.

[0247] Finally, to aggregate the two surfaces S consisting of both the drafted and undrafted parts 1 and S 2 , the embodiment separates these surfaces into drafted and undrafted stretch surfaces. The embodiment then uses a first formula to aggregate the average normals and central normal matrices of the drafted surfaces, and then uses the aggregation from the already cited European patent application EP21306184.9 to aggregate the central normal matrices of the undrafted stretch surfaces. Finally, the embodiment combines the obtained central normal matrices using a formula that combines the drafted and undrafted central normal matrices.

[0248] Now let's discuss an example of adding a closed plane according to the implementation:

[0249] Add a closing plane:

[0250] If S1 Marked as a potential draft component and S 2 are marked as potential planar components, the implementation decides whether to merge them or not or follows similar principles as in the already cited European patent application EP21306184.9.

[0251] Implementation Plan Construction Matrix:

[0252]

[0253] And calculate the matrix The minimum eigenvalue of

[0254] Then, based on the following number of implementations:

[0255]

[0256] When μ is small enough, such as 10 -3 , if δ ⊥ (S 1 ,S 2 )≤μ, then decide to set S 2 Marked as S 1 potential closing plane.

[0257] Now let's discuss an example of constructing a basic profile curve according to an implementation scheme:

[0258] Basic contour curve construction:

[0259] The embodiment uses a parameterization method and a curve fitting method as in European patent application EP21305671.6 filed by Dassault Systèmes on May 21, 2021, which is incorporated herein by reference, to obtain approximate contour curves for basic drafted (and undrafted) stretched parts that are parameterized in a manner consistent with the surface orientation.

[0260] For undrafted extrusion parts, the basic profile is calculated as in the already cited European patent application EP21306184.9. On the other hand, for draft parts, the embodiment uses the already cited European patent application EP21305671.6 to calculate the parameterization and defines the profile plane in the following way:

[0261] set up and

[0262] The embodiment defines the contour plane as containing p max and is orthogonal to u e (For example Figure 5 The plane 510) in the middle.

[0263] In order to point p i Projecting from the surface being drafted onto the contour plane, the implementation is performed as follows:

[0264] -set up and u 2,i =u 3,i ×u e =(u e ×n i )×u e

[0265] -but

[0266] - Consider the projection pointing orthogonal to u e Projection of the plane

[0267] when and are the eigenvectors of the central normal matrix associated with the higher eigenvalues. In addition, is a set of points from which an implementation can compute the stroke / outline of the draft, where

[0268]

[0269] Figure 4 A schematic example of projection is given.

[0270] Then, for Using Vector Fields Define the parameterization u(p) as:

[0271] ■h 0 is the height of the profile support surface

[0272] ■r 0 (u(p)) is the radius of curvature at the height of the profile support surface

[0273] ○r 0 (u(p)) makes where κ max (p) is the maximum curvature value at p

[0274] ■e u(p) is a single vector aligned to the contour:

[0275] ■h(p) is relative to the draft axis u e The height of p: h(p) = u e ·p

[0276] Figure 6 A parameterized representation as above is shown. Figure 7 The results obtained by parameterization are shown in Figure 1. Here, the grayscale color gradient shows the evolution of u(p), so that parts with the same color have the same parameter u(p), and parts with close colors have close values ​​of the parameter.

[0277] An example of contour aggregation according to an implementation scheme is now discussed:

[0278] Contour Gathering:

[0279] The embodiment then aggregates the basic profile curves to calculate the complete profile. In some cases, even if the aggregation of adjacent draft surfaces is effective, the acquired profile curves may cross each other or be disconnected. Therefore, some known techniques, such as the technique used in the already cited European patent application EP21306184.9, cannot be used.

[0280] Figure 8 An example of this is given. In the example, plane 810 and plane 820 are drafted, while plane 830 corresponds to the profile plane. Before drafting, the connection between these planes is not continuous. Therefore, the projected curve will be according to Fig. 9 Clearly intersect.

[0281] To combine such contours, the implementation splits or extends the curves where they intersect before aggregating the curves. Thus, during aggregating, the implementation considers extended base curves, such as:

[0282] - infinite line of fragments, e.g. Fig.10 Line 1010 of middle segment 1020;

[0283] - Full circle of arc, e.g. Fig.11 a circle 1110 in an arc 1120; and

[0284] -Spline, which extends at extreme tangents, e.g. Fig.12 An extended spline 1220 of the spline 1220 in FIG.

[0285] For a combination of elementary curves, the implementation scheme considers the resulting curve extended with its extreme tangents, similar to Fig.12 The spline situation depicted in .

[0286] Additionally, embodiments may construct only drafts with contour curves.

[0287] If a drawn part S with a draft surface ′ There are several basic draft and undrafted extruded parts The gathering of′ The contour plane has its own contour curve The implementation scheme uses, for example, the following algorithm to construct the clustered outline:

[0288] For the selected starting

[0289] ■ Elt←{k},

[0290] ■ And γ is not closed:

[0291] ○Select Make Nearby S tot

[0292] ○If there is no such l

[0293] ■γ is maintained only when closed (or when closable, for example by the method described in European patent application EP22305354.7 filed by Dassault Systèmes on March 22, 2022, which is incorporated herein by reference).

[0294] ■Break

[0295] ○ Extend or cut off γ and to obtain the extreme values ​​of γ′ and

[0296]

[0297] Here As defined in the already cited European patent application EP21306184.9. to construct m clustered curves.

[0298] An example of land / pit classification according to an embodiment will now be discussed:

[0299] Boss / pit classification:

[0300] Finally, to determine whether the recovered drawing (before the draft is applied) is a boss or a dimple, embodiments use exactly the procedure as in the already cited European patent application EP21306184.9.

Claims

1. A computer-implemented method for CAD body draft operator detection in a discrete 3D model representing a mechanical component, the method comprising: - obtaining a segmentation of the discrete 3D model, the discrete 3D model comprising a skin representing an outer surface of the mechanical component, the segmentation comprising a plurality of segments each representing a portion of the skin; - iteratively grouping the plurality of segments, wherein two segments in a pair of segments are grouped if: o Each segment of the pair of segments is a draft surface and the two segments have the same respective draft axis, and: the two segments have the same draft angle relative to the respective draft axes, or at least one segment has an angle of zero degrees relative to said respective draft axis; or o one of the pair of segments is a draft surface and the other segment is a closed plane; performing at least one iteration grouping of the pairs of segments, at least one segment of the pairs of segments having a non-zero draft angle relative to the respective draft axis; - determining one or more CAD volume draft operators, each of the CAD volume draft operators corresponding to a respective group.

2. The method according to claim 1, wherein: The method includes determining all segments that are draft surfaces, including performing The test, where S is the segment and n p is the normal vector of the segment S at point p, and the surface that satisfies this test is determined to be a draft surface.

3. The method according to claim 2, wherein: The execution of the test consists in evaluating for each fragment S: and in And by definition, And vol S is a canonical measure on S, ∈>0, is the mean normal of S, defined as 4. The method according to claim 3, wherein: The evaluation involves solving the following types of optimization problems: st|u|=1 in The following types:

5. The method according to claim 4, wherein: The solution to the optimization problem involves finding The minimum eigenvalue of and its associated eigenvector The tests include testing in is the minimum eigenvalue.

6. The method according to any one of claims 1 to 5, wherein: Iteratively grouping the fragments includes one or more iterations of: - exploring said pairs of fragments; - Determine if: o a first difference between a value of the draft detection objective function for a union of the segments in the explored pairs of segments and a weighted sum of the values ​​of the draft detection objective function for the segments in the explored pairs of segments, the sum being weighted based on the areas of the segments, is below a first predefined threshold (∈), or o a second difference (δ) between the value of the draft closure objective function for the segment in the explored pair of segments and the weighted sum of the values ​​of the draft closure objective function for the segment in the explored pair of segments ⊥ (S1, S2)) is below a second predefined threshold, the draft closure objective function rewards orthogonality of a draft axis of an input segment relative to another input segment; - grouping said segments of said explored pairs of segments if said first difference is below said first predefined threshold or if said second difference is below said second predefined threshold.

7. The method according to claim 6, wherein: - the value of the draft detection objective function of the input segment is the minimum eigenvalue of the normal matrix of the input segment; and / or - The value of the draft closure objective function is the minimum eigenvalue of a matrix that is a weighted sum of the normal matrix of the other input fragment and unity minus the normal matrix of the input fragment, the sum being weighted based on the area of ​​the input fragment.

8. The method according to claim 7, wherein: - The first difference is of the following type: Where S1 and S2 are two fragments in the pair of fragments explored, is the normal matrix of the union of S1 and S2 The minimum eigenvalue of is the normal matrix of S1 If S2 has a non-zero draft angle, is the normal matrix of S2 If S2 has a zero draft angle, then is the normal matrix of S2 The minimum eigenvalue of When S1 and S2 have non-zero draft angles, is the area of ​​S1, is the area of ​​S2, and When S1 has a non-zero draft angle and S2 has a zero draft angle, is the area of ​​S1, is the area of ​​S2; and / or - The second difference is of the following type: in is a matrix The minimum eigenvalue of ; Where S1 is another input segment, S2 is the input segment, is the normal matrix of S1 The minimum eigenvalue of is the normal matrix of S2 The minimum eigenvalue of ; in yes The non-central normal matrix of is defined as follows where represents the normal vector and |S2| is the surface area of ​​S2.

9. The method according to any one of claims 1 to 8, wherein: For each group, determining the CAD body draft operator corresponding to the groups includes constructing a profile curve for the groups.

10. The method according to claim 9, wherein: Constructing the contour curve includes: - for each segment of said groups, providing a corresponding contour curve of said segment; and - iteratively connecting the corresponding contour curves, wherein a pair of contour curves are connected if a third difference between the pair of contour curves is smaller than a third predefined threshold.

11. The method according to any one of claims 9 to 10, wherein: For each group, determining the CAD volume draft operator corresponding to the respective group further includes determining a draft type of the CAD volume draft operator based on the constructed contour curve.

12. The method according to claim 11, wherein: Determining the draft type includes: - determining whether the contour curve is closed; and - calculating the total curvature of the contour curve, in: - if the profile curve is open and the absolute value of the total curvature is strictly less than 2π, the CAD body draft operator is a draft surface, if the profile curve is closed and the total curvature is equal to β2π, the CAD body draft operator is a boss operator, and - if the profile curve is closed and the total curvature is equal to -β2π, then the CAD body draft operator is a dimple operator, Where β∈{-1,1}; wherein optionally the total curvature is of the following type: κ tot =∫ I κ γ (t)dt where κ γ (t) is the algebraic curvature of the curve γ under parameter t.

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 system comprising a processor coupled to a memory having recorded thereon the computer program according to claim 13.

Citation Information

Patent Citations

  • Curable composition

    EP2960297A1

  • Segmenting a 3D modeled object representing a mechanical part

    EP4044116A1

  • Machine-learning for 3D segmentation

    EP4057222A1

  • Parameterization of CAD model

    EP4092558A1

  • CAD volume extrusion operator detection

    EP4141725A1