Generating CAD feature trees from discrete geometric representations of mechanical parts

The method optimizes CAD feature tree generation from discrete geometric representations by balancing fitting and complexity, addressing inefficiencies in existing technologies and enhancing manufacturing accuracy and efficiency.

JP2025158964APending Publication Date: 2025-10-17DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025062443
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-04
Filing Date
2025-04-04
Publication Date
2025-10-17

AI Technical Summary

Technical Problem

Existing solutions lack efficient methods for generating CAD feature trees from discrete geometric representations of mechanical parts, particularly in complex or non-simplified mechanical products, which affects manufacturing efficiency and accuracy.

Method used

A computer-implemented method that optimizes an objective function to generate CAD feature trees by performing a depth-first search, rewarding fitting and penalizing complexity, using a set of CAD features to determine sequences that accurately represent the discrete geometric representation while controlling complexity.

Benefits of technology

The method enables the generation of high-quality CAD feature trees that accurately fit complex mechanical products, controlling complexity and ensuring computational efficiency, facilitating efficient manufacturing processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025158964000001_ABST
    Figure 2025158964000001_ABST
Patent Text Reader

Abstract

To disclose a method for generating a CAD feature tree from a discrete geometric representation of a portion.SOLUTION: A method comprises providing a representation and providing a set of CAD features. The method comprises optimizing an objective function that rewards fitting of a discrete geometric representation with a candidate sequence of CAD features and penalizes the complexity of the candidate sequence. The complexity of the candidate sequence is a function of the candidate sequence that increases when features are added to the candidate sequence. The method comprises performing a depth-first search in a tree of the candidate sequences of CAD features based on rewarding fitting of the discrete geometric representation by the candidate sequences and penalizing the complexity of the candidate sequences, and determining one or more sequences of CAD features from a set of CAD features.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to the field of computer programs and systems, and more particularly to methods, systems, and programs for generating a CAD feature tree from a discrete geometrical representation of a mechanical part. [Background technology]

[0002] Multiple solutions, hardware, and software are available on the market for designing, engineering, and manufacturing objects. CAD is an acronym for Computer-Aided Design, e.g., software solutions for designing objects. CAE is an acronym for Computer-Aided Engineering, e.g., software solutions for analyzing and simulating the physical behavior of future products. CAM is an acronym for Computer-Aided Manufacturing, e.g., software solutions for defining processes and resources for product manufacturing. In the above computer-aided design solutions, the graphical user interface plays a key role in the efficiency of the techniques. The aforementioned techniques may be embedded within product lifecycle management (PLM) solutions. PLM refers to an engineering strategy that helps companies share product data, apply common processes, and leverage enterprise knowledge for product development from conception to the end of product life, across the extended enterprise concept. PLM solutions offered by Dassault Systèmes (under the trademarks CATIA, SIMULIA, DELMIA, and ENOVIA) provide an "Engineering Hub" that organizes product engineering knowledge, a "Manufacturing Hub" that manages manufacturing engineering knowledge, and an "Enterprise Hub" that enables enterprise integration and connectivity to both the Engineering Hub and the Manufacturing Hub. Together, the solutions deliver a common model that connects products, processes, and resources, enabling dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production, and service.

[0003] There remains a need for improved solutions for generating CAD feature trees from discrete geometric representations of mechanical parts. Summary of the Invention

[0004] Therefore, a computer-implemented method for generating a CAD feature tree from a discrete geometric representation of a mechanical part is provided. The method includes providing the discrete geometric representation. The method further includes providing a set of CAD features. The method further includes optimizing an objective function. The objective function rewards fitting of the discrete geometric representation by candidate sequences of CAD features. The objective function penalizes the complexity of the candidate sequences. The complexity of the candidate sequences is a function of the candidate sequences that increases when features are added to the candidate sequences. The optimization includes determining one or more sequences of CAD features from the set of CAD features. Determining the one or more sequences of CAD features includes performing a depth-first search in the tree of candidate sequences of CAD features. The depth-first search is based on rewarding fitting of the discrete geometric representation by the candidate sequences. The depth-first search is further based on penalizing the complexity of the candidate sequences. The method may include one or more of the following:

[0005] - Doing a depth-first search involves one or more iterations of:

[0006] o Select the partial candidate sequence with the best selection score from among the partial candidate sequences of the tree resulting from the previous iteration, where the selection score of a partial sequence is the score such that:

[0007] ● Reward fitting of discrete geometric representations by subsequences; ● Penalize the complexity of subsequences, Rewarding expected maximal fitting for subsequence parents, where the expected maximal fitting for subsequence parents is based on known maximal fitting for subsequence children; o Iteratively add CAD features to the selected partial candidate sequences based on a greedy score, where the greedy score of a partial sequence is the score as follows:

[0008] ● Reward fitting of discrete geometric representations by subsequences; ● Penalize the complexity of subsequences, and ● Obtain candidate sequences of CAD features by rewarding fitting upper bounds of discrete geometric representations by subsequences; Add to the partial candidate sequences of the tree all partial candidate sequences that were considered in the iterative addition for the CAD features and that did not result in a obtained candidate sequence of the CAD features; For each subsequence of the obtained candidate sequence, update the fitting of the local maxima for the children of the subsequence and increase the number of times the children of the subsequence are selected based on the selection score; and Among all the obtained candidate sequences, prune each candidate sequence of the tree having a pruning score smaller than the best value of the objective function, and the pruning score of a candidate sequence is the score as follows:

[0009] ● Reward upper bounds on the fitting of discrete geometric representations by candidate sequences; ● Penalize the complexity of candidate sequences; The selection score of a sequence s is a score of the following type: u(s)=decay(s)*(A M (T(s)) +(1-A M(T(s)))*A M expected (s)-αC M (s)) however, ○ decay(s)=θ n(s) ,θ is a constant, and n(s) is the number of times, where the children of parent s are selected based on the selection score, ○ A M (T(s)) is the fitting of the discrete geometric representation by the sequence s, and T(s) is the CAD feature tree resulting from the candidate sequence s, ○ A M expected (s) is the expected maximal fitting of the parent of sequence s, ○ C M (s) is the complexity of the sequence s, ○ α is a constant, -

[0010]

number

[0011] however, ○ γ is a constant, ○

[0012]

number

[0013] is a fitting upper bound on s, ○ A M max (s) is the maximal fitting of the child of the parent of s, - The greedy score of a sequence s is a score of the following type:

[0014]

number

[0015] however, ○

[0016]

number

[0017] is a fitting upper bound on s, ○ A M (T(s)) is the fitting of the discrete geometric representation by the sequence s, and T(s) is the CAD feature tree resulting from the candidate sequence s, ○ C M (s) is the complexity of the sequence s, ○ α and β are constants, The pruning score of a sequence s is a score of the following type:

[0018]

number

[0019] however, ○

[0020]

number

[0021] is a fitting upper bound on s, ○ C M (s) is the complexity of the sequence s, ○ α is a constant, the objective function includes subtracting the complexity of the candidate sequence by a term that rewards fitting the discrete geometric representation by the candidate sequence; - The term that rewards fitting is weighted by a weighting parameter, - The objective function is a function of the following type: J(s)=αC M (s)-A M (T(s)) where s is a candidate sequence, J(s) is the objective function, and C M is the complexity of the candidate sequence, and A M where (T(s)) is a term that rewards fitting, α is a weighting parameter, and T(s) is the CAD feature tree resulting from candidate sequence s. The optimization of the objective function is under the constraint that each of the determined one or more sequences has a fitting of the discrete geometric representation greater than a fitting threshold, - rewarding the fitting is based on the ratio between the surface area of ​​the coverage of the discrete geometric representation by the candidate sequence and the surface area of ​​the discrete geometric representation, and / or - Complexity is the following type of complexity:

[0022]

number

[0023] However, C M is the CAD feature (f1, ,f n ), and ∂T(f1, ,f n ) + is the bounds of features due to sequence s, n is the number of CAD features in sequence s, and ∂f i is the CAD feature f i is the boundary of ∂f i ∩M is the boundary ∂f i and the discrete geometric representation M, and the function |N| outputs the surface area of ​​argument N.

[0024] There is further provided a computer program comprising instructions for carrying out the method.

[0025] Additionally, a computer-readable recording medium having a computer program recorded thereon is provided.

[0026] A system is further provided that includes a processor coupled to a memory, the memory storing a computer program.

[0027] Non-limiting examples will now be described with reference to the accompanying drawings. [Brief explanation of the drawings]

[0028] [Figure 1] FIG. [Figure 2] FIG. [Figure 3] FIG. [Figure 4] FIG. [Figure 5] FIG. 1 illustrates a system. DETAILED DESCRIPTION OF THE INVENTION

[0029] A computer-implemented method for generating a CAD feature tree from a discrete geometric representation of a mechanical part is proposed. The method includes providing the discrete geometric representation. The method further includes providing a set of CAD features. The method further includes optimizing an objective function. The objective function rewards fitting of the discrete geometric representation by a candidate sequence of CAD features. The objective function penalizes the complexity of the candidate sequence. The complexity of the candidate sequence is a function of the candidate sequence that increases when features are added to the candidate sequence. The optimization includes determining one or more sequences of CAD features from the set of CAD features. Determining the one or more sequences of CAD features includes performing a depth-first search in the tree of candidate sequences of CAD features. The depth-first search is based on rewarding fitting of the discrete geometric representation by the candidate sequence. The depth-first search is further based on penalizing the complexity of the candidate sequence.

[0030] What has just been described constitutes an improved solution for generating CAD feature trees from discrete geometric representations of mechanical parts.

[0031] First, generating a CAD feature tree from a discrete geometric representation of a mechanical part allows for preparing the mechanical part for manufacturing considerations and is particularly relevant in the field of manufacturing computer-aided design (CAD). In fact, a CAD feature tree is a manufacturable model of the part. Manufacturing CAD refers to the field of software solutions and systems (CAD systems, CAM systems) for the design and / or manufacturing of mechanical parts. Generating a CAD feature tree representing a mechanical part allows for easy processing and / or editing capabilities and / or efficient storage in memory. Furthermore, the CAD model including the CAD feature tree forms the basis for downstream manufacturing of the part represented by the CAD model, as described further herein below. The method can be part of a mechanical part design and / or manufacturing process. In the just-described process, the method can form or be part of a step of obtaining a CAD model of a discrete geometric representation (e.g., consisting of a feature tree), such as a step of converting a CAE model to a CAD model. The just-described process can include using the output of the method (e.g., a CAD feature tree representation of the part) to manufacture the part, as described further herein below.

[0032] Relatedly, the method obtains one or more CAD models, each including or consisting of one of one or more determined sequences of CAD features or one or more obtained determined CAD feature trees (i.e., each CAD feature tree corresponding to the determined sequences of CAD features), by optimizing an objective function. The objective function rewards fitting of a provided discrete geometric representation by candidate sequences (of CAD features) while penalizing the complexity of said candidate sequences. The method thereby enables simultaneous control of the quality of generated CAD features fitting a provided geometry and the complexity of the generated CAD features using an objective function optimization procedure. The objective function combines both fitting quality and complexity factors. What has just been described constitutes an improved solution for generating CAD feature trees with accuracy and fidelity appropriate to a provided geometric representation of said product, particularly for non-simplified (e.g., standard or complex) mechanical products, by controlling the complexity of the generated CAD feature tree while preserving computational efficiency. The above complexity is an increasing function of the size of the candidate sequence in the sense that the value of the complexity function increases as features are added to the candidate sequence, thereby allowing the method to effectively control the size (i.e., the number of features contained) in the sequence.

[0033] Furthermore, determining the one or more sequences of CAD features includes performing a depth-first search in a tree of candidate sequences of CAD features. In other words, the optimization is based on a depth-first search of the tree of candidate solutions. The depth-first search is based on the aforementioned objective criteria for optimization (rewarding fitting and penalizing complexity). Using a depth-first search to explore the set of possible solutions for the optimization is particularly fast and efficient (e.g., compared to exploring the breadth of the tree of possible solutions). Hence, high-quality sequences are quickly returned by the method. For example, for a very simple mechanical part, one iteration of the depth-first search may already yield high-quality solution(s).

[0034] The method is for generating a CAD feature tree from a discrete geometric representation of a mechanical part. That is, the method outputs data that allows the feature tree to be defined. Each sequence determined by the method is the output data, and the method may include defining a feature tree corresponding to the sequence. The sequence itself may be a tree, with the order of features in the sequence resulting in the topology of the tree. The method may obtain one or more sequences of CAD features. The method may then output all the determined sequences, for example, by presenting them to a user. The user may select one of the determined sequences based on technical criteria; for example, the user may select the most accurate sequence (i.e., the one with the best fit) or the least complex one. Alternatively, the method may output one of the determined sequences to the user according to the criteria (e.g., the most accurate sequence or the least complex sequence). In other words, the method finds combination(s) of features from a provided set to create a feature tree, i.e., combinations of different features in a certain order such that the final combined result is a 3D volume whose boundary is close to the boundary of the 3D discrete representation (e.g., a surface mesh).

[0035] The method includes providing a discrete geometric representation (of the mechanical part) and a set of CAD features. "Providing" an input (e.g., the discrete geometric representation or the set of CAD features) can consist in or include retrieving (e.g., downloading) the input from a (e.g., remote) memory or database or server or cloud. Alternatively, "providing" an input can consist in or include creating the input. For example, for a set of CAD features, the method can include detecting at least some (e.g., all) of the CAD features in the discrete geometric representation. For example, what has just been described can include detecting extrusion using the extrusion detection method disclosed in European Patent Application EP 21305673.2 or European Patent Application EP 21306184.9, detecting rotation using the rotation detection method disclosed in European Patent Application EP 21305763.1, and / or detecting draft using the draft detection method disclosed in European Patent Application EP 23306189.4. All of the above-mentioned European patent applications are incorporated herein by reference. Canonical features may be detected using suitable detection methods. Alternatively or additionally, providing the set of CAD features may include using a pool of classical CAD features (extrusions, sweeps, revolves, drafts, fillets, rounds, canonic features) as, or as part of, the set.

[0036] The provided discrete geometric representation may be a 3D mesh or a 3D point cloud representing a mechanical part. The provided discrete geometric representation may result from physical measurements of a real object (mechanical part), for example, through a reconstruction process as described herein below, e.g., scanning (e.g., 3D scanning) the real object. In the above case, providing the discrete geometric representation may include a reconstruction process that obtains the discrete geometric representation of the mechanical product from the physical measurements. The method may then determine one or more sequences of CAD features from the provided set of CAD features by optimizing an objective function based on the obtained discrete geometric representation. What has just been described makes it possible to infer a CAD feature tree in a measured model, i.e., a model resulting from physical measurements (e.g., 3D scanning) in the real world.

[0037] The provided discrete geometric representation may alternatively originate from a CAD or CAE model designed by another CAD system, where the CAD feature tree is unknown. In the above cases, providing the discrete geometric representation may involve inputting the discrete geometric representation (e.g., by reading it from a local memory or a remote database) and determining one or more CAD feature sequences, respectively (e.g., simultaneously with conversion from an existing CAD / CAE model).

[0038] As described above, the method includes providing a set of CAD features. As known per se, a "CAD feature" or equivalently, a geometric CAD feature is a parametric shape description of a spatial region having specific geometric or topological properties. As known per se from CAD, a CAD feature includes shape / geometry information and parametric information for representing a portion of a manufactured product modeled / captured by the CAD feature. As known per se, a CAD feature may include a geometry / shape definition / specification (e.g., geometric primitives of the definition / specification) corresponding to the portion modeled by the CAD feature and one or more CAD parameters specifying the geometry and its topology. Features may be combined with Boolean operations such as split, union, or subtraction to result in a corresponding geometry.

[0039] The concept of a CAD feature tree is well known in CAD. A (CAD) feature tree is a tree organization of CAD operations (e.g., including Boolean and non-Boolean operations) on CAD features, each modeling a portion of a manufactured product. More specifically, a feature tree is a directed acyclic graph (as described in https: / / en.wikipedia.org / wiki / Directed_acyclic_graph) that describes / captures the sequence and combination order of CAD operations. Thus, a feature tree includes one or more CAD parameters, each of which corresponds to a respective CAD feature in the feature tree. Non-limiting examples of such CAD parameters include the coordinates of a point in a sketch, the extrusion height of a profile, the thickness of a shell, the radius of a fillet, and the smoothness of a lofted surface.

[0040] The provided set of CAD features may thereby include or consist of providing a set of parameters, each element of the set (i.e., a group of parameters) including one or more CAD parameters of a CAD feature in the provided set of CAD features. The provided set of CAD features may include or consist of CAD features detected from the provided discrete geometric representations (as described above). In the above case, as outlined above, providing the set of CAD features may further include performing a feature detection method on the set of discrete geometric representations (among which the provided discrete geometric representations) to obtain one or more detected features and inserting the one or more detected features in the provided dataset. Alternatively, or in addition, providing the set of CAD features may include providing a set of CAD features extracted from a general CAD feature library that includes (e.g., significantly) all common CAD features. Subsequently, or in addition, providing the set of CAD features may include providing a tailored set from relevant real-world uses of the mechanical product in which the mechanical product is assumed to be used (e.g., features representing standard holes according to standards known in the aforementioned technical field).

[0041] In this disclosure, any feature f may be defined as a pair of two disjoint open 3D domains as follows: f=(f - ,f + ) However, f - is the erasing volume, and f + is the additive volume. f is

[0042]

number

[0043] or

[0044]

number

[0045] If F (or F e ) is the set of all features (or elementary features). A combination of two features f and g may be defined by the operation * as follows:

[0046]

number

[0047] A set of features is a collection of features that are to be applied in some order, and the composition of the features in that order is the resulting feature sequence. What we have just said is sometimes defined as follows: B0 ⊂ F e Let be a finite subset of elementary features. A feature sequence from is a sequence such that s=(f1, ,f n )∈(B0) n however, ∀ 1≦i≠j≦n,f i ≠f j (A feature cannot appear more than once in a sequence). Let δ(B0) denote the set of all possible feature sequences from B0. The mapping

[0048]

number

[0049] calculates the features of the results from the feature sequence.

[0050] To make the depth-first search more efficient, the set of sequences can be restricted in the implementation by choosing a subset δ val (B0) ⊂ δ(B0). An example of how to do this is to define a partial order

[0051]

Number

[0052] in the basket B0 of the initial features. For 1 ≤ i < j ≤ k,

[0053]

Number

[0054] only when none of them have s = (f1, ···, f n ) ∈ δ(B0) belongs to δ val (B0).

[0055] The completion of the sequence s = (f1, ···, f k ) ∈ δ val (B0) is the sequence s' = (f1, ···, f k , f k+1 , ···, f m ) ∈ δ val (B0) (when m > k). The length of the completion is the difference in length between s and s' (so at least 1 when estimated minimally). The sequence s ∈ δ(B0) is said to be maximal if it has no completion.

[0056] The method further includes optimizing an objective function. The objective function is a function that takes as input a candidate sequence of CAD features. By "candidate sequence of CAD features" is meant any sequence of CAD features from the provided set of CAD features that is considered, at least at some point in the optimization, as a possible solution for the optimization. The objective function rewards fitting of the discrete geometric representation by the candidate sequence of CAD features. This means that the function tends to decrease as the number of candidates increases, i.e., the more a candidate sequence generates a geometry that fits the input discrete geometric representation well, the value of the objective function decreases. Furthermore, the function penalizes the complexity of the candidate sequence. This means that the function tends to increase as the complexity of the candidates increases, i.e., the more complex the candidate sequence, the greater the value of the objective function. The complexity of the candidate sequence is a function of the candidate sequence that increases as features are added to the candidate sequence.

[0057] The objective function may include or consist in subtracting the complexity of the candidate sequence by a term that rewards fitting of the discrete geometric representation by the candidate sequence. The term that rewards fitting may be weighted by a weighting parameter. The objective function may be a function of the following type (e.g., may be given by the formula): J(s)=αC M (s)-A M (T(s)) where s is a candidate sequence, J(s) is the objective function, and C M is the complexity of the candidate sequence, and A Mwhere (T(s)) is a fitting term (i.e., a term that rewards fitting), α is a weighting parameter (which can be between 0 and 0.5, for example), and T(s) is the CAD feature tree resulting from candidate sequence s. In all aspects of this disclosure, T(s) refers to the CAD feature tree resulting from sequence s.

[0058] A M (T(s)) is sometimes called the accuracy function, and the mapping A M :F→[0,1] where A M (f) measures how close a feature f (f can be an elementary feature or a feature sequence) is to the input geometry M (i.e., the discrete geometric representation). Rewarding the fit can be based on the ratio of the surface area of ​​the coverage of the discrete geometric representation by the candidate sequence to the surface area of ​​the discrete geometric representation. In other words, A M The closer (f) is to 1, the more accurate f is with respect to M. For example, if M is a surface mesh, then A M (f) may be given by the following formula:

[0059]

number

[0060] , ∂ is the classical mathematical symbol for boundary.

[0061] Complexity C M is a mapping that satisfies

[0062]

number

[0063] and may satisfy the following: ∀(f1, ,f k ,f k+1)∈δ(B0), C M (f1,...,f k )≦C M (f1,...,f k ,f k+1 ) For example, the complexity may be of the following type (eg, may be given by the formula):

[0064]

number

[0065] However, C M is the CAD feature (f1, ,f n ), and ∂T(f1, ,f n ) + is the boundary of the features resulting from sequence s (i.e., the boundary of the features (actually the volume of the added features) resulting from the composition corresponding to the sequence), n is the number of CAD features in sequence s, and ∂f i is the CAD feature f i is the boundary of ∂f i ∩M is the boundary ∂f i and the discrete geometric representation M, and the function |N| outputs the surface area of ​​argument N.

[0066] The optimization of the objective function may be under the constraint that each of the determined sequences has a fitting of the discrete geometric representation greater than a fitting threshold. In other words, the optimization problem may be formulated as follows:

[0067]

number

[0068] where δ ad (B0)⊂δ val (B0) is a δ that satisfies the constraint s. valSequence A of (B0) M (T(s))≧ρ (sometimes called “possible sequences”), where α is a constant (which can be taken, for example, between 0 and 0.5), and ρ is a constant (which can be taken, for example, between 0.8 and 1).

[0069] Optimization involves determining one or more sequences of CAD features from the set of CAD features, i.e., searching for one or more sequences of CAD features by constructing one or more sequences of CAD features from the set of CAD features so as to optimize or tend to optimize (i.e., with respect to a suitable convergence criterion) an objective function.

[0070] Determining one or more sequences of CAD features includes performing a depth-first search in a tree of candidate sequences of CAD features. It is understood that the tree of candidate sequences may not be provided as input, i.e., the input may not consist of a tree of all possible solutions (candidate sequences) of the optimization. Instead, the tree may be iteratively constructed by the search, where in each iteration, the search explores and further builds (in a depth-first search manner) the tree resulting from the previous iteration.

[0071] Depth-first search is based on rewarding the fitting of candidate sequences to the discrete geometric representation and also penalizing the complexity of the candidate sequences. What has just been said is that the search tends to select / construct candidate sequences that fit the discrete geometric representation well, but at the same time are not too complex. The fitting and / or complexity may be defined as defined for the objective function (i.e., may be defined by the same functions as described above for the objective function).

[0072] Doing a depth-first search may involve one or more iterations.

[0073] The tree may be initialized as a tree of all sequences of exactly one feature selected from a set of provided features in the first iteration. The sequence just mentioned may be stored as a set of traversable nodes. The root of the tree may be defined as an empty sequence. In the tree, each node represents a subsequence, and the children of the node add features (selected from the set) to the sequence corresponding to the node. Each node may contain information about the previous iteration (e.g., the best optimization score J(s) obtained from iterative addition using greedy scoring as described below (further, the just mentioned step is also called "rollout"), the number of rollouts made from the node or one of its children n(s), etc.). In the first iteration, the method selects the best sequence s * (i.e., the candidate sequence with the lowest value for J(s)) and the set S of all acceptable sequences. ad * (That is, the inequality A mentioned earlier M (the set of all possible sequences in the first iteration such that (T(s))≧ρ) may be stored. Figure 1 shows an exemplary illustration of a tree.

[0074] Each iteration involves selecting a partial candidate sequence with the best selection score from among the partial candidate sequences of the tree resulting from the previous iteration. This means that in each iteration, there is a tree of partial candidate sequences resulting from the previous iteration. This tree is explored to select the partial candidate sequence in the tree with the best selection score (i.e., the highest selection score). The selection score of a partial sequence is a score (e.g., quantified by a function) such that:

[0075] - Reward the fitting of the subsequence to the discrete geometric representation (i.e., the better the subsequence fits the discrete geometric representation, the higher the score value), - penalize the complexity of the subsequence (i.e., the more complex the subsequence, the lower the score value), and - Reward expected maximal fitting for subsequence parents (i.e., the higher the expected maximal fitting value, the higher the score value), and expected maximal fitting for subsequence parents is based on known maximal fitting for subsequence children.

[0076] The selection score of a sequence s may be of the following type (eg, may be given by the formula): u(s)=decay(s)*(A M (T(s)) +(1-A M (T(s)))*A M expected (s)-αC M (s)) however, ○ decay(s)=θ n(s) ,θ is a constant (e.g., between 0.5 and 1), and n(s) is the number of times a child of s's parent is selected (i.e., in the selection step in the previous iteration) based on its selection score (and n(s) corresponds to the number of rollouts made from s's parent node). The decay just mentioned can favor the exploration of unexplored branches, ○ A M (T(s)) is the fitting of the discrete geometric representation by the sequence s, ○ A M expected (s) is the expected maximal fitting of the parent of sequence s, ○ C M (s) is the complexity of the sequence s, ○ α is a constant.

[0077] α, C M (s), and A M (T(s)) may be defined as above for the objective function,

[0078]

number

[0079] Therefore, the selection step consists in selecting the partial candidate sequence of the tree with the largest value of u(s). The selection score is used to determine the most promising node during the selection step, since the more promising the node, the higher the selection score.

[0080] A M expected (s) may be given by the following formula:

[0081]

number

[0082] however, γ is a constant (for example, between 0.5 and 1), ○

[0083]

number

[0084] is a fitting upper bound on s, ○ A M max (s) is the fitting of the maximal child of s's parent (i.e., the fitting that reached the maximal rollout made from s's parent node).

[0085] The selection involves calculating, for each exploreable node, its selection score u(s) and selecting the node with the highest selection score. Since multiple nodes may have equally high selection scores, the method may select one node from among them using the following SoftMax strategy:

[0086] o Assign a SoftMax weight to each of the top k nodes (e.g., k=50) using the following SoftMax function:

[0087]

number

[0088] where τ is a parameter called SoftMax temperature. A lower temperature makes the SoftMax weights more confident (nodes with higher selection scores get higher weights), and when τ → 0, the SoftMax strategy approaches choosing the node with the highest selection score. Select nodes among those top k nodes using random sampling with SoftMax weights as the probability for each node.

[0089] Each iteration then involves iteratively adding CAD features to the selected partial candidate sequence based on the greedy scores. This means that CAD features are iteratively added (i.e., iteratively within each aforementioned iteration) to the partial candidate sequence with the best selection score, with each CAD feature being added for its greedy score (e.g., the greedy score with the highest value). If multiple CAD features have the best greedy scores, the method may add any one of them (e.g., by randomly selecting among the CAD features with the best greedy scores). In practice, the situation just described rarely occurs, except when two CAD features are completely equivalent, i.e., represent the same volume up to machine accuracy. The iterative addition is sometimes referred to as "rollout," and thus may consist in iteratively selecting the greediest child (equivalent to adding a feature to the partial sequence corresponding to the node) using the greedy scores, starting from the selected node (the node corresponding to the partial candidate sequence). The rollout may stop if no features are available or if no features are available that improve the feature sequence. Figure 2 illustrates a rollout.

[0090] The greedy score of a subsequence is a score (eg, quantified by a function) such that: ○ Rewarding the fitting of the discrete geometric representation with the subsequence (i.e., the better the fitting, the higher the score value), penalize the complexity of the subsequence (i.e., the higher the complexity, the lower the score value), and Rewarding upper bounds on the fitting of discrete geometric representations by subsequences (i.e., the higher the upper bound, the higher the score value), The just described iterative addition of CAD features to selected part candidates results in obtaining a new candidate sequence of CAD features in the tree (selected part candidates with features iteratively added).

[0091] The greedy score of a sequence s may be of the following type (eg, may be given by the formula):

[0092]

number

[0093] however, ○

[0094]

number

[0095] is a fitting upper bound on s, ○ A M (T(s)) is the fitting of the discrete geometric representation by the sequence s, ○ C M (s) is the complexity of the sequence s, ○ α and β are constants.

[0096] α, C M (s), and A M (T(s)) may be defined as above for the objective function. The greedy score is the function

[0097]

number

[0098] where β is a constant that can be taken, for example, between 0 and 0.5. The greedy score is used to choose the best sequence (i.e., the one with the highest score) during greedy rollout.

[0099] Each iteration further includes adding (i.e., as new nodes) all partial candidate sequences that have been considered (i.e., explored, browsed) in the iterative addition of CAD features to the partial candidate sequences of the tree (i.e., as in the current iteration) and that did not result in a obtained candidate sequence of CAD features.

[0100] Each iteration further includes, for each subsequence of the obtained candidate sequence (i.e., one resulting from the rollout), updating the maximal fitting for the subsequence's children and incrementing n(s), the number of times the subsequence's children were selected based on the selection score. What has just been described is therefore sometimes referred to as the "backpropagation step", which may involve updating the information of all parent nodes using the complete sequence obtained from the rollout. The update may update the obtained best optimization score if the complete sequence gives a better score (i.e., than the current best sequence) and increase the number of rollouts made from the parent node. Backpropagation is performed by updating the set S of possible sequences. ad * Backpropagation may involve adding the complete sequence to the current best sequence s. * If it provides a better optimization score than ( ), then replacing the best sequence with this new one.

[0101] Each iteration further includes pruning each candidate sequence of trees that has a pruning score less than the best value of the objective function among all the obtained candidate sequences. The pruning just mentioned may be part of backpropagation, and s * It consists in removing from the traversable nodes all nodes from which it is not possible to derive a sequence better than .Backpropagation is illustrated by FIG.

[0102] The pruning score of a candidate sequence is a score that rewards the fitting upper bound of the discrete geometric representation by the candidate sequence and penalizes the complexity of the candidate sequence.

[0103] The pruning score of a sequence s can be of the following types:

[0104]

number

[0105] however, ○

[0106]

number

[0107] is a fitting upper bound on s, ○ C M (s) is the complexity of the sequence s, ○ α is a constant.

[0108] α and C M (s) may be defined as above for the objective function. The pruning score is calculated by the function

[0109]

number

[0110] The best sequence s * Taking into account, the method may remove any sequence s from the traversable nodes if: h(s)<-J(s * )=A M (T(s * ))-αC M (s * ) For any sequence s, the pruning score is always higher than -J(s), and for all child sequences of s, -J(s child ) is higher than the score just mentioned. Therefore, the score is compared with the optimization score in the method to obtain s * It may remove nodes that are not capable of giving a better optimization score than

[0111] A fitting upper bound (also called an "accuracy upper bound") is a bound on the accuracy of any function

[0112]

number

[0113] and for any sequence (f1, ,f k+1 ), the following holds true:

[0114]

number

[0115] and

[0116]

number

[0117] However, the inequality becomes an equality if s is maximal. In implementation, the fitting upper bound can be a theoretical covering as disclosed in European Patent Application EP22305934.6.

[0118] The iterations may be stopped when a predefined stopping criterion is reached. The criterion may be defined, for example, as a maximum number of rollouts, a maximum number of nodes visited, or when the best sequence score stops improving. The method is to ad * ⊂S ad (B0). Then, the method calculates δ ad * The method may select the m best sequences in (a) and (b) and denote the result. The method may include a user selecting any one of the m sequences that the user wants to keep. The selected sequence constitutes an optimal CAD design of the 3D model given the discrete representation of the 3D model as input.

[0119] Figure 4 shows an overview of the iterations.

[0120] Therefore, the method focuses on combinations that take the form of sequences. In other words, the feature tree considered by the method consists of a feature selection using one of all possible basic features given as input, and then an ordering between the selected operations (i.e., an order of the selected features that specifies which operations should be performed first, second, third, etc.). To do so, the method relies on an efficient exploration strategy (depth-first search) that looks at several possible sequences that can be built from a starting feature set. In fact, performing an exhaustive search is theoretically possible, but is not feasible in practice because the combinatorial complexity blows up very quickly. The method solves what has just been described using, for example, a depth-first search tree exploration, which may be selected from a set of suitable known methods, such as, for example, a Monte Carlo tree search algorithm. As explained above, the exploration may consist of iterative rounds that are stopped when a stopping criterion is met.

[0121] Each round of exploration may be divided into three steps, as described above: - A selection step: Using a selection criterion, the method selects one subsequence to be completed from the set of searchable subsequences. - A rollout step, in which the method iteratively adds features to the previously selected sequence using a greedy completion criterion until a complete sequence is reached. - Backpropagation step. Using the results of the rollout step, the method updates the information of all subsequences that led to the complete sequence. The method adds all other subsequences encountered to the set of searchable sequences. Furthermore, using a pruning criterion, the method removes from the searchable sequence set all subsequences that are not capable of outperforming the complete sequence.

[0122] The notion of a "good" feature tree is objectively captured by the notion of accuracy (good fitting to the input 3D model) (mesh, point cloud), as well as the notion of the complexity of the feature tree, which are translated into quantities that can be used to numerically evaluate the quality of feature trees (and select the best one), as well as to build heuristics.

[0123] The method implements a depth-first search method, making it possible to obtain the complete and accurate feature sequence after a few iterations. What has just been described makes it possible to quickly eliminate subsequences that do not perform better than the best sequence. Furthermore, during the selection step, the method may select any subsequence, so even for longer sequences, the method may explore a very diverse set of different sequences.

[0124] Moreover, the method is fast, thus enabling the automatic generation / reconstruction of complex CAD models, at least of the quality just mentioned, that would previously have been nearly impossible to compute.

[0125] Furthermore, the method is general and through different concepts of accuracy and complexity that can be used, the method can favor preferred design patterns that serve a particular technical application, for example, whether the design will follow some legacy regarding CAD models, the most accurate geometry possible is desired, or the model that is most easily usable for simulation.

[0126] The method only considers CAD models that are built from a set of elementary operators. What has just been described offers a reduction in the complexity of the optimization (it is easier to explore) and there are significant efficiency gains.

[0127] Finally, the method is not limited to volume fitting as the fitting metric, but may use any other metric that compares the fitting quality of the CAD reconstruction with respect to the 3D input.

[0128] "Designing a manufactured product / mechanical part / product" refers to any operation or series of operations that is at least part of a process that details a modeled object (2D or 3D) of a manufactured product / mechanical part / product. The method may form a process or may form at least part of a process. As mentioned above, the method may be a method or part of a part of a design processing step that consists in converting a discrete geometric representation (which may be a CAE model) into a CAD model, such as for example a CAE to CAD conversion step.

[0129] Thus, methods generally operate on modeled objects, such as, for example, discrete geometric representations provided as input to the method or acquired CAD models (e.g., CAD feature trees). A modeled object is any object defined by data stored, for example, in a database. By extension, the expression "modeled object" designates the data itself. Depending on the type of system, a modeled object may be defined by different kinds of data. Indeed, a system may be any combination of a CAD system, a CAE system, a CAM system, a PDM system, and / or a PLM system. In different systems, a modeled object is defined by corresponding data. Thus, one may speak of CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data. However, a system does not exclude one of the others, as a modeled object may be defined by corresponding data in any combination of systems. Thus, a system may be a CAD system, a CAE system, a PLM system, and / or a CAM system, as is clear from the definitions provided below.

[0130] By CAD solution (e.g., CAD system or CAD software) we also mean any system, software, or hardware adapted to at least design a modeled object, based on a graphical representation of the modeled object and / or its structural representation (e.g., a feature tree), such as CATIA. In this case, data defining the modeled object includes data enabling the representation of the modeled object. A CAD system may, for example, provide a representation of the CAD modeled object using edges or lines, and possibly faces or surfaces. The lines, edges, or surfaces may be represented by various interfaces, for example, NURBS (non-uniform rational B-splines). Specifically, a CAD file contains specifications, enabling geometry to be generated and then a representation to be generated. The specifications of the modeled object may be stored in a single CAD file or in multiple files. Typical sizes of files representing modeled objects based on a CAD system are in the range of one megabyte per part. And, the modeled object may typically be an assembly of thousands of parts.

[0131] In the context of CAD, a modeled object may typically be a 2D or 3D modeled object representing, for example, a product, such as a part or assembly of parts, or possibly an assembly of a product. The 2D or 3D modeled object may be a manufactured product, i.e., a product to be manufactured. By "3D modeled object," we mean any object modeled by data that allows for a 3D representation. The 3D representation allows for a view of the part from all angles. For example, once represented in 3D, a 3D modeled object may be manipulated and rotated around any axis of the object or around any axis of the screen on which the representation is displayed. Specifically, we exclude 2D icons that are not 3D models. Displaying 3D representations expedites design (i.e., increases the speed at which designers statistically accomplish tasks). The foregoing speeds up the manufacturing process in industry, since product design is part of the manufacturing process.

[0132] A 2D or 3D modeled object may represent, for example, the geometry of a (e.g., mechanical) part or assembly of parts (or equivalently, an assembly of parts, such that the assembly of parts may be viewed as the part itself from the perspective of a method, or such that the method may be applied independently to each part of the assembly), or more generally, any assembly of rigid bodies (e.g., moving mechanisms), such as a product to be manufactured in the real world following completion of a virtual design with, for example, a CAD / CAE software solution or CAD / CAE system. CAD / CAE software solutions enable the design of products in a variety of and limitless industrial sectors, including aerospace, architecture, construction, consumer goods, high-tech devices, industrial equipment, transportation, ships, and / or offshore oil / gas production or transportation. Thus, the 3D modeled objects designed by the present method may represent any mechanical part, for example, a part of a ground vehicle (including, for example, automobiles and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, and trains), a part of an air vehicle (including, for example, airframe equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, and space equipment), a part of a naval vessel part (including, for example, naval equipment, merchant marine, offshore equipment, yachts and workboats, and marine equipment), a general mechanical part (including, for example, industrial manufacturing machinery, heavy vehicle machinery or equipment, installed equipment, industrial equipment products, fabricated metal products, and tire manufacturing products), an electric or electronic part (including, for example, consumer electronics products, security and / or control and / or instrumentation products, computer and communications equipment, semiconductors, and medical equipment and devices), a consumer product (including, for example, furniture, home and garden products, leisure products, fashion products, hard goods retailer products, and soft goods retailer products), or an industrial product, which may include packaging (including, for example, food and beverage and tobacco, beauty and personal care, and household product packaging).

[0133] CAD systems can be history-based. In this case, the modeled object is further defined by data containing the history of geometric features. In practice, the modeled object may be designed by a physical person (i.e., designer / user) using standard modeling functions (e.g., extrude, revolute, cut, and / or round) and / or standard surfacing functions (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CAD systems that support the above modeling functions are history-based systems. This means that the creation history of design features is preserved, usually through acyclic data flows that link the aforementioned geometric features together through input and output links. The theoretical framework of history-based modeling has been well known since the early 1980s. The modeled object is described by two persistent data representations: history and B-rep (i.e., boundary representation). The B-rep is the result of the calculations defined in the history. The shape of a part that appears on a computer screen when a modeled object is rendered is a B-rep (e.g., a tessellation of the B-rep). The history of a part is the design intent. Essentially, the history collects information about the operations that the modeled object has undergone. B-reps are sometimes saved with the history to make it easier to view complex parts. History is sometimes saved with the B-rep to allow design changes to the part to conform to the design intent.

[0134] Furthermore, by PLM system we mean any system adapted for the management of modeled objects that represent physically manufactured products (or products to be manufactured). Thus, in a PLM system, a modeled object is defined by data suitable for the manufacture of a physical object. These may typically be dimensional and / or tolerance values. In practice, it is better to have these values ​​for an object to be manufactured correctly.

[0135] By CAE solution, we mean any solution, hardware or software, adapted to analyze the physical behavior of a modeled object. A well-known and widely used CAE is finite element modeling (FEM), hereafter equivalently referred to as a CAE model. FEM typically involves dividing a modeled object into elements, i.e., a finite element mesh, so that physical behavior can be calculated and simulated by equations. The above CAE solution is offered by Dassault Systemes under the trademark SIMULIA. Another growing CAD approach involves modeling and analyzing complex systems containing multiple components from different disciplines of physics without CAD geometry data. CAE solutions enable the simulation and therefore optimization, refinement, and validation of manufactured products. The above CAE solution is offered by Dassault Systemes under the trademark DYMOLA. CAE may be used to verify that various structural requirements (e.g., but not limited to, mass, stiffness, strength, durability, etc.) are achieved by a new CAD model. Some of these requirements may be referred to as key performance indicators (KPIs). In many industrial products (e.g., automobiles, airplanes, consumer packaged goods, high-tech products), these KPIs are in conflict, e.g., lower mass usually results in lower stiffness, so optimization methods are often applied to find the best trade-off between the KPIs.

[0136] By CAM solution, we mean any solution, hardware or software, adapted to manage a product's manufacturing data. Manufacturing data generally includes data about the product to be manufactured, the manufacturing process, and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, they may provide CAM users with information about the feasibility, duration of the manufacturing process, and the number of resources, such as robots, that may be used at a particular step in the manufacturing process, thus enabling management or necessary investment decisions. CAM is a process that follows the CAD process and potentially the CAE process. For example, a CAM solution may provide information about the processing or molding parameters associated with extrusion features provided in the CAD model. The above CAE solutions are offered by Dassault Systemes under the trademarks CATIA, Solidworks, or DELMIA.

[0137] Therefore, CAD and CAM solutions are closely related. In fact, CAD solutions focus on the design of a product or part, while CAM solutions focus on how to make it. Designing a CAD model is the first step towards computer-aided manufacturing. In fact, CAD solutions provide important functionalities, such as feature-based modeling and boundary representation (B-Rep), to reduce the risk of errors and loss of precision during the manufacturing process, which CAM solutions address. In fact, the CAD model is intended to be manufactured. It is therefore also called a digital twin, a virtual twin of the object to be manufactured, with two purposes: - checking the correct behavior of the object to be manufactured in a specific environment, and - Guaranteeing the manufacturing capability of the objects to be manufactured.

[0138] PDM stands for Product Data Management. By PDM solution we mean any solution, hardware or software, adapted to manage any kind of data related to a specific product. PDM solutions may be used by all stakeholders involved in the product lifecycle, including primarily engineers but also project managers, finance personnel, sales personnel, and buyers. PDM solutions are generally based on a product-oriented database. They allow stakeholders to share consistent data about the product, thus preventing them from using divergent data. The above PDM solution is offered by Dassault Systemes under the trademark ENOVIA.

[0139] The modeled object taken as input by the method is a 2D / 3D discrete geometric representation of a manufacturing product / mechanical product / mechanical part. A discrete geometric representation is a data structure containing a discrete set of data. Each piece of data specifies an element of the product / mechanical part and may be called a discrete element. The discrete geometric representation may be 3D or alternatively 2D. Subsequently, the discrete geometric representation may alternatively be both 3D and 2D, i.e., it may contain 3D parts that are 3D discrete geometric representations and 2D parts that are discrete geometric representations, such as, for example, hybrid 3D-2D meshing (e.g., for modeling a product that includes both thin parts modeled using 2D parts and thick parts modeled using 3D parts). The discrete geometric representation may contain, for example, 100, 1000, or even higher than 10,000 pieces of data.

[0140] In the case of a 3D discrete geometric representation, the 3D discrete geometric representation may be, for example, a solid / volumetric 3D discrete geometric representation of a product / mechanical part, such as a solid 3D finite element model (FEM) or a 3D volume mesh (e.g., a 3D tetrahedral mesh). In the above case, each portion of data may represent a respective geometric entity located in 3D space such that the portions of data form a solid representation of the mechanical product / product (i.e., a "solid 3D discrete geometric representation"). Each geometric entity may represent a respective location (i.e., material point) of the 3D object (in other words, a respective portion of material comprising the solid represented by the 3D object). The collection (i.e., combination or juxtaposition) of the geometric entities collectively represents the 3D object as a solid / volume. Alternatively, the 3D discrete geometric representation may be, for example, a skin 3D discrete geometric representation, such as a 3D surface mesh (e.g., a triangular surface mesh) or a tessellation, representing the skin of the product / mechanical product. In the above case, each portion of data may represent a respective geometrical entity located in 3D space such that the portions of data form a representation of the skin of a mechanical product (i.e., a "skin 3D discrete geometric representation"). In the above case, each geometrical entity represents a respective location (i.e., material point) of the exterior surface of the three-dimensional object (in other words, a respective portion of the exterior surface of the volume occupied by the material comprising the solid represented by the object). The collection (i.e., combination or juxtaposition) of the geometrical entities collectively represents at least a portion of the exterior surface of the object.

[0141] In the case of a 2D discrete geometric representation, each portion of data may represent a respective geometric entity located in 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 value(s), e.g., a distribution of thickness values ​​across its finite elements. For example, the 2D discrete geometric representation may represent a generally flat product, such as a stamped part (e.g., having a constant thickness value) or a composite part (e.g., having different thickness values).

[0142] The discrete geometric representation may be a CAE model, also called a "finite element model (FEM)." The CAE model may originate from a CAD model representing a mechanical part / product; for example, the method may include, at an initial stage, obtaining the CAE model from the CAD model, for example, using a meshing process (e.g., triangulation). Conversely, the CAE model may be converted to a CAD model. The method may design / output a CAE model, which may then be converted to a corresponding CAD model. The method may include, or be included in, a broader process that may include (e.g., automatically) converting the CAE model designed / output by the method into a CAD model, or form a solution to converting, by using any known (e.g., automatic) CAE-to-CAD conversion process that converts a CAE model to a CAD model.

[0143] The modeled object output by the method may be, or resides in, a CAD model, including, for example, a feature tree and / or B-rep. The model may originate from a CAE model or result from a CAE to CAD conversion process, and the method may form or be part of a method as described.

[0144] The CAD model is feature-based (including a feature tree and, optionally, a corresponding B-rep obtained by executing the feature tree). The feature-based 3D model enables the detection and automatic resolution of geometric errors in the CAD model, such as collisions, that will affect the manufacturing process (e.g., during the determination of manufacturing or CAM files as described herein below). A collision is when two parts of a 3D model interfere with each other, for example, due to relative motion. Moreover, the collisions just mentioned can sometimes only be detected by finite element analysis based on the CAD feature-based model. Therefore, collision resolution can be performed together with the CAD solution or automatically by iteratively modifying the parameters of the features and performing finite element analysis.

[0145] As another example, feature-based 3D models enable the automatic creation of tool paths for machines via computer numerical control (CNC) (e.g., during the determination of manufacturing files or CAM files as described herein below). With CNC, each object to be manufactured gets a custom computer program that is stored and executed on a microcomputer, the machine control unit, attached to the machine. The program contains instructions and parameters that the machine tool will follow. Mills, lathes, routers, grinders, and lasers are examples of common machine tools whose operations can be automated with CNC.

[0146] A key feature of CAD models is that they may be precisely and unambiguously designed by chaining a small number of high-level, parameterized design operations (e.g., including but not limited to, sketching, extrusion, and chamfering), and may be edited by modifying the high-level parameters. This is an important distinction from polyhedral representations, such as triangular surface meshes, which may represent any 3D shape but do not offer the modification or parameterization capabilities required in the context of industrial design. Because CAD models are parameterized models of parts / products, they are lighter in terms of memory footprint than other models, e.g., CAE models. Indeed, instead of storing a collection of discrete geometric elements, e.g., finite elements, a CAD model can store a list of features and parameters, which is lighter in terms of storage and memory footprint. Thus, working with a CAD model, compared to, e.g., a CAE model, reduces the memory requirements of the underlying system and also makes the model easier to edit. What has just been said is that the CAE-to-CAD conversion process, in addition to converting the CAE model into a CAD model that is easier to edit, also compresses the CAE model into a CAD model that is lighter in terms of memory requirements (e.g., footprint).

[0147] The generation of custom computer programs from CAD files can be automated. Therefore, such generation can be errorproof, ensuring perfect reproduction of the CAD model in the manufactured product. CNC is believed to offer greater precision, complexity, and repeatability than manual machining. Other benefits include improved accuracy, speed, and flexibility, as well as capabilities such as contouring, which allows for milling of contoured shapes, including those produced from 3D designs.

[0148] A B-rep (i.e., boundary representation) is a 3D representation of a mechanical part. Specifically, a B-rep is a persistent data representation that describes a 3D modeled object that represents the mechanical part. A B-rep can be the result of a calculation and / or a series of operations performed during the design phase of the 3D modeled object that represents the mechanical part. The shape of the mechanical part that is displayed on a computer screen when representing the modeled object is (e.g., a tessellation of the B-rep). In an example, a B-rep represents a portion of a model object.

[0149] B-Rep contains topological and geometric entities. Topological entities are faces, edges, and vertices. Geometric entities are 3D objects such as surfaces, planes, curves, lines, and points. By definition, a face is the boundary of a surface, called a supporting surface. An edge is the boundary of a curve, called a supporting curve. A vertex is a point in 3D space. They are related to each other as follows: The boundary of a curve is defined by two points (vertices) on the curve. The boundary of a surface is defined by its boundary, which is the set of edges on the surface. The boundaries of edges of a face are connected by sharing a vertex. Faces are connected by sharing an edge. Two faces are adjacent if they share an edge. Similarly, two edges are adjacent if they share a vertex. In a CAD system, B-Rep collects the "bounded by" relationship, the relationship between topological entities and supporting geometry, and the mathematical description of the supporting geometry in an appropriate data structure. An interior edge of a B-Rep is exactly an edge shared by two faces. By definition, boundary edges are not shared and touch only 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 of its edges are interior edges. A B-Rep is said to be open if it contains at least one boundary edge. Closed B-Reps are used to model 3D volumes with thickness, since they define the interior portion of a material that (virtually) encloses a space. Open B-Reps are used to model 3D skins, which represent 3D objects that are small enough that their thickness can be ignored.

[0150] A key advantage of B-rep over other representation types used in CAD modeling is its ability to accurately represent arbitrary shapes. All other representations used—for example, point clouds, distance fields, and meshes—approximate the shape they represent through discretization. B-rep, on the other hand, contains surface equations that represent the exact design and therefore constitute a true “master model” for further manufacturing, whether that be generating toolpaths for CNC or discretizing to 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 object to be manufactured. Furthermore, B-rep is advantageous for simulating the behavior of the 3D model. It supports local refinement of the simulation mesh to capture physical phenomena for stress, thermal, electromagnetic, or other analyses, and can support true contact modeling between curved surfaces in kinematics. Finally, B-Rep allows for a small memory and / or file footprint. First, the representation contains surfaces based solely on parameters. In other representations, such as meshes, the equivalent surface contains up to several thousand triangles. Second, B-rep does not contain any historical information.

[0151] The method may be included in a production process, which may include, after performing the method, producing a physical product corresponding to the modeled object output by the method. The manufacturing process may include the following steps: - (e.g. automatically) applying the method to obtain the CAD or CAE model output by the method; - Use the acquired CAD model to manufacture the part / product. Using a CAD model for manufacturing refers to any real-world action or series of actions that involve / participate in the production of the product / part represented by the CAD model. Using a CAD model for manufacturing may include, for example, one or more of the following steps: - Editing the CAD model that has been obtained, - performing one or more simulations based on the CAD model or on the corresponding CAE model (e.g. the CAE model resulting from the CAD model after a CAE-to-CAD conversion process), such as simulations (e.g. structural simulations, thermodynamic simulations, aerodynamic simulations) for the validation of mechanical properties and / or constraints, usage properties and / or constraints, and / or manufacturing properties and / or constraints, - Editing the CAD model based on the results of the simulation(s); - optionally (i.e. depending on the manufacturing process used, the manufacturing of the mechanical product may or may not include the steps just mentioned), determining (e.g. automatically) a manufacturing file / CAM file (e.g. containing manufacturing instructions for manufacturing the product represented by the CAD model and / or control instructions for the manufacturing process and / or control instructions for instructing the manufacturing process or manufacturing tool(s)) based on the (e.g. edited) CAD model (e.g. the control instructions originate from the CAD model and / or a CAD file storing the specifications of the CAD model) for the production / manufacturing of the manufactured product, - Sending CAD and / or manufacturing / CAM files to a factory with a view to manufacturing the product represented by the CAD model; and / or - (e.g. automatically) producing / manufacturing the machine product originally represented by the model output by the method based on the determined manufacturing file / CAM file or CAD model. What has just been said may involve (e.g. automatically) feeding the manufacturing file / CAM file and / or CAD file to machine(s) that perform the manufacturing process.

[0152] The final step of production / manufacturing just described may be referred to as the manufacturing or production step. This step involves, for example, manufacturing / fabricating a part / product based on the CAD model and / or CAD file once the CAD model and / or CAD file is provided to one or more manufacturing machines or computer system(s) controlling the machines. The manufacturing step may include any known manufacturing process or 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 punching steps. As the design methodology improves the design of the model (CAE or CAD) representing the part / product, manufacturing and its productivity are also improved.

[0153] Editing a CAD model may involve a user (i.e., a designer) making edits to one or more of the CAD models, for example, using a CAD solution. Modifying a CAD model may include one or more modifications of the geometry and / or parameters of the CAD model. The modifications may include any modification or series of modifications made in the model's feature tree (e.g., modification of feature parameters and / or specifications) and / or modifications made in the displayed representation (e.g., B-rep) of the CAD model. The modifications are modifications that maintain the technical functionality of the part / product; i.e., the user makes modifications that may affect the model's geometry and / or parameters, but only for the purpose of making the CAD model more technically suitable for downstream use and / or manufacturing of the part / product. The modifications may include any modification or series of modifications that technically adapt the CAD model to the specifications of a machine(s) used in downstream manufacturing processes. The modifications may also or alternatively include a modification or series of modifications that technically adapt the CAD model for further use of the product / part once manufactured, for example, based on the results of simulation(s).

[0154] The CAM file may include a manufacturing setup model obtained from the CAD model. The manufacturing setup may include all data (e.g., control instructions for controlling the manufacturing process) necessary to manufacture a machined product so that it has a geometry and / or distribution of material corresponding to that 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-CAM solution (e.g., any automated CAD-CAM conversion algorithm) to (e.g., automatically) determine the production file from the CAD model. The CAM or CAD-CAM solution may include one or more of the following software solutions that enable the automatic generation of manufacturing instructions and toolpaths for a given manufacturing process based on a CAD model of the product to be manufactured: - Fusion 360, - Free CAD, - CATIA, - SOLIDWORKS, - Dassault Systèmes NC Shop Floor Programmer, as exemplified at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer - A Dassault Systèmes NC Mill Turn Machine Programmer, such as the one shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer, and / or - Dassault Systèmes Powder Bed Machine Programmer, as exemplified at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer.

[0155] The product / part can be an additively manufacturable part, i.e., a part to be manufactured by additive manufacturing (i.e., 3D printing). In this case, the production process does not include a step of determining a CAM file and proceeds directly to the production / manufacturing step by directly (e.g., automatically) feeding the CAD model to the 3D printer. The 3D printer is configured to receive a CAD model representing the mechanical product (e.g., upon initiating 3D printing by the 3D printer operator) and directly and automatically 3D print the mechanical product according to the CAD model. In other words, the 3D printer receives (e.g., automatically) the CAD model, reads (e.g., automatically), and prints (e.g., automatically) the part by, for example, adding material together layer by layer to reproduce the geometry and / or distribution of material captured by the CAD model. The 3D printer adds material to realistically and accurately reproduce the geometry and / or distribution of material captured by the CAD model, up to the resolution of the 3D printer and optionally with or without tolerance errors and / or manufacturing corrections. Manufacturing may include determining the above-mentioned manufacturing corrections and / or tolerances, either by a user (e.g., a 3D printer operator) or automatically (e.g., by the 3D printer or a computer system controlling it), e.g., by modifying the CAD file to match the 3D printer's specifications. Additionally or alternatively, the manufacturing process may include determining from the CAD model (e.g., automatically by the 3D printer or a controlling computer system) print direction (e.g., to minimize overhang volume (as described in EP 3327593, incorporated herein by reference), layer slicing (i.e., determining the thickness of each layer and the layer-wise path / trajectory), and other characteristics for the 3D printer head (e.g., for a laser beam, e.g., path, speed, intensity / temperature, and other parameters).

[0156] Alternatively, the product / part may be a machined part (i.e., a part manufactured by machining), for example, a milled part (i.e., a part manufactured by milling), etc. In the above case, the production process may include a step of determining a CAM file. The just-mentioned step may be performed automatically by any suitable CAM solution that automatically obtains a CAM file from a CAD model of the machined part. Determining the CAM file may include (e.g., automatically) inspecting whether the CAD model has geometric peculiarities (e.g., errors or artifacts) that may affect the production process and (e.g., automatically) correcting such peculiarities. For example, if the CAD model still contains sharp edges, machining or milling based on the CAD model may not be performed (because the machining or milling tool cannot create sharp edges). In that case, determining the CAM file may include (e.g., automatically) rounding or filleting such sharp edges (e.g., with a corresponding round or fillet radius that is substantially equal to the tolerance and radius of the cutting head of the machining tool) so that machining or milling based on the CAD model may be performed. More generally, determining the CAM file may include automatically rounding or filleting geometry in the CAD model that is incompatible with the radius of the machining or milling tool to enable machining / milling. The inspections and possible corrections just mentioned (e.g., rounding or filleting geometry) may be performed automatically as described above, but may also be performed by a user (e.g., a machining engineer) making the corrections manually in the CAD and / or CAM solution, for example, a solution that forces the user to make corrections to conform the CAD model to the specifications of the tool used in the machining process.

[0157] Upon further inspection, determining the CAM file may include (e.g., automatically) determining a machining or milling path, i.e., a path to be performed by a machining tool to machine a product. The path may include a set of coordinates and / or a parameterized trajectory to be followed by the machining tool for machining, and determining the path may include (e.g., automatically) calculating the coordinates and / or trajectory based on a CAD model. The calculation may be based on calculating the boundaries of a Minkowski subtraction of the CAD model with a CAD model representation of the machining tool, for example, as discussed in European Patent Application EP21306754.9 filed December 13, 2021 by Dassault Systemes and incorporated herein by reference. It will be understood that the path may be, for example, a single path that the tool follows continuously without breaking contact with the workpiece. Alternatively, the path may be a concatenation of a series of sub-paths that the tool follows in a fixed order, for example, each of which may be followed continuously by the tool without breaking contact with the workpiece. Optionally, determining the CAM file may then include (e.g., automatically) setting machine parameters including, for example, cutting speed, cut / pierce height, and / or mold opening stroke based on the determined path and machine specifications. Optionally, determining the CAM file may include (e.g., automatically) configuring nesting, in which the CAM solution determines the optimal orientation of the part to maximize machining efficiency.

[0158] In the case of machined or milled parts, determining the CAM file thus results in outputting a CAM file containing the machining path and, optionally, the set machine parameters and / or configured nesting specifications. The output CAM file may then be (e.g., directly or automatically) fed to a machining tool, and / or the machining tool may then (e.g., directly or automatically) be programmed by reading the file, and the production process includes a producing / manufacturing step in which the machine performs machining of the product according to the production file, for example, by directly or automatically executing the production file. The machining process includes the machining tool cutting a block of real-world material to reproduce the geometry and / or distribution of material captured by the CAD model, for example, to within tolerances (e.g., tens of microns for milling).

[0159] Alternatively, the product / part may be a molded part, i.e., a part produced by molding (e.g., injection molding). In the above case, the production process may include a step of determining a CAM file. The just-mentioned step may be performed automatically by any suitable CAM solution that automatically derives the CAM file from a CAD model of the molded part. Determining the CAM file may include (e.g., automatically) performing a series of molding inspections based on the CAD model to verify that the geometry and / or distribution of material captured by the CAD model is mold-compatible, and (e.g., automatically) making appropriate corrections if the CAD model is not mold-compatible. The inspections and making appropriate corrections (if any) may be performed automatically, or alternatively, may be performed by a user (e.g., a molding engineer) using a CAD and / or CAM solution that, for example, allows the user to make appropriate corrections to the CAD model but forces the corrections to fit the CAD model to the specifications of the molding tool(s). The inspections may include verifying that the virtual product represented by the CAD model matches the dimensions of the mold and / or verifying that the CAD model includes all draft angles necessary to demold the product as known per se from the mold. Determining the CAM file may then further include determining, based on the CAD model, the amount of liquid material to be used in molding and / or the time for the liquid material to harden / settle in the mold, and outputting a CAM file containing these parameters. The production process then includes (e.g., automatically) molding based on the output file, where the mold forms the liquid material for the determined hardening time into a shape that corresponds to the geometry and / or distribution of the material captured by the CAD model, for example, up to tolerance errors (e.g., incorporating or correcting draft angles for demolding).

[0160] Alternatively, the product / part may be a stamped part, possibly also called a "stamped part," i.e., a part manufactured in a stamping process. In this case, the production process may involve (e.g., automatically) determining a CAM file based on a CAD model. The CAD model represents the stamped part, for example, possibly with one or more flanges if the part is to include some, and possibly, in the latter case, with excess material removed to form the developed state of one or more flanges of the part, as known per se from stamping. The CAD model thus includes a portion (possibly the entire portion) representing the flange-free part and possibly an outer excess patch portion representing the flange including excess material (if any). The excess patch portion may provide g2 continuity for one length and then g1 continuity for another length.

[0161] In the case of stamping just mentioned, determining the CAM file may include (e.g., automatically) determining stamping machine parameters, such as the size and / or stamping force of the stamping die or punch, based on the geometry and / or distribution of material in the virtual product as captured by the CAD model. If the CAD model also includes a representation of excess material to be removed to form the unfolded state of one or more flanges of the part, the excess material to be removed may be cut, for example, by machining, and determining the CAM file may also include determining a corresponding machining CAM file, for example, as discussed above. If there are one or more flanges, determining the CAM file may include determining the geometric specifications of the g2 and g1 continuations that enable folding the flanges along the g2 continuation toward the inner surface of the stamped part after the stamping itself and the removal of the excess material. Thus, the CAM file thus determined may include stamping tool parameters, optional flange folding specifications (if any), and optional machining production files (if any) for removing the excess material.

[0162] The stamping production process may then output the CAM file, for example, directly and automatically, and perform a stamping process (e.g., automatically) based on the file. The stamping process may include stamping (e.g., punching) a section of material to form the product represented in the CAD file, i.e., the unfolded flange and excess material, if any. If appropriate, the stamping process may then include cutting off the excess material based on the machining production file and folding the flange based on specifications for folding the flange, thereby folding the flange at its g2 continuous length to provide smooth sides to the outer boundary of the part. In this latter case, while the CAD model shows the excess material removed and the flange folded, the manufactured shape differs from the virtual part because the excess material is removed and the flange is represented in an unfolded state.

[0163] The method is computer-implemented. What is meant by this is that the steps (or substantially all steps) of the method are performed by at least one computer, or any similar system. Thus, the method steps are performed by a computer, perhaps fully automatically or semi-automatically. In an example, triggering of at least some of the method steps may occur through user-computer interaction. The level of user-computer interaction required depends on the expected level of automation and may be balanced against the need to implement the user's wishes. In an example, the level just mentioned may be user-defined and / or pre-defined.

[0164] A typical example of a computer implementation of the method is performing the method by a system adapted for the purposes just described. The system may include a processor coupled to a memory and a graphical user interface (GUI), the memory having stored thereon a computer program including instructions for performing the method. Additionally, the memory may store a database. The memory is any hardware adapted for such storage, possibly including several physically distinct parts (e.g., one for the program and possibly one for the database).

[0165] FIG. 5 shows an example of a system in which the system is a client computer system, eg, a user's workstation.

[0166] The example client computer includes a central processing unit (CPU) 1010 coupled to an internal communication bus 1000, and a random access memory (RAM) 1070 further coupled to the bus. Moreover, the client computer is provided with a graphical processing unit (GPU) 1110 associated with a video random access memory 1100 coupled to the bus. The video RAM 1100 is also known to those skilled in the art as a frame buffer. A mass storage device controller 1020 manages access to mass memory devices, such as a hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, by way of example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks, such as internal hard disks and removable disks, and magneto-optical disks. Any of the foregoing may be supplemented by, or incorporated in, specially designed application-specific integrated circuits (ASICs). A network adapter 1050 manages access to a network 1060. Additionally, the client computer may include a haptic device 1090, such as, for example, a cursor control device, keyboard, or the like. The cursor control device is used in the client computer to allow a user to selectively place a cursor at any desired location on the display 1080. In addition, the cursor control device allows a user to select various commands and input control signals. The cursor control device includes some signal generating device to input control signals into the system. Typically, the cursor control device is a mouse, and the mouse buttons may be used to generate signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.

[0167] A computer program includes computer-executable instructions, and the instructions may include means for causing the system to perform a method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuitry, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, for example, as an article of manufacture tangibly embodied in a machine-readable storage device for execution by a programmable processor. The method steps may be performed by a programmable processor by executing a program of instructions that perform the functions of the method by operating on input data and generating output. Thus, the processor may be programmable and coupled to receive data and instructions from, and transmit data and instructions to, a 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 assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language. The program may be a full installation or update program. The application of a program to a system in any case results in instructions for performing a method. The computer program may alternatively be stored and executed on a server in a cloud computing environment, the server being in communication with one or more clients via a network, in which case the method is performed in the cloud computing environment by a processing unit executing the instructions contained in the program.

Claims

1. 1. A computer-implemented method for generating a CAD feature tree from a discrete geometric representation of a mechanical part, comprising: - said discrete geometric representation, and ○ CAD feature set and - rewarding the fitting of said discrete geometric representation with a candidate sequence of CAD features; Penalize the complexity of the candidate sequence, where the complexity of the candidate sequence is a function of the candidate sequence that increases as features are added to the candidate sequence. Optimizing the objective function Equipped with The optimizing includes determining one or more sequences of CAD features from the set of CAD features, wherein determining the one or more sequences of CAD features comprises: performing a depth-first search in a tree of candidate sequences of CAD features, said depth-first search being based on rewarding the fitting of said discrete geometric representation by candidate sequences and penalizing the complexity of candidate sequences; A method comprising:

2. The depth-first search includes: - selecting, from among the partial candidate sequences of said tree resulting from the previous iteration, the partial candidate sequence having the best selection score, said selection score of the partial sequence being: rewarding the fitting of the discrete geometric representation by the subsequence; penalizing the complexity of the subsequence, o Rewarding the fitting of expected maxima for the parent of the subsequence, where the fitting of expected maxima for the parent of the subsequence is based on the fitting of known maxima for the child of the subsequence The score is - iteratively adding CAD features to the selected partial candidate sequences based on a greedy score, wherein the greedy score of a partial sequence is rewarding the fitting of the discrete geometric representation by the subsequence; penalizing the complexity of the subsequence, ○ Reward a fitting upper bound on the discrete geometric representation by the subsequence obtaining candidate sequences of CAD features by adding to said partial candidate sequence of said tree all partial candidate sequences that were taken into account in said iterative addition for said CAD features and that did not result in said obtained candidate sequence of CAD features; - for each subsequence of the obtained candidate sequence, updating the fitting of the maxima for the children of the subsequence and increasing the number of times that the children of the subsequence have been selected based on the selection score; pruning each candidate sequence of the tree that has a pruning score smaller than the best value of the objective function among all the obtained candidate sequences, the pruning score of a candidate sequence being: rewarding the fitting upper bound of the discrete geometric representation by the candidate sequence; Penalizing the complexity of the candidate sequences The score is 2. The method of claim 1, comprising one or more iterations of:

3. The selection score for a sequence s is u(s)=decay(s)*(A M (T(s)) +(1-A M (T(s)))*A M expected (s)-αC M (s)) where: ○ decay(s)=θ n(s) , θ is a constant, and n(s) is a count, where the children of the parent of s are selected based on the selection score; ○ A M (T(s)) is the fitting of the discrete geometric representation by the sequence s, and T(s) is the CAD feature tree resulting from the candidate sequence s; ○ A M expected (s) is the expected maximum fit of the parent of the sequence s, ○ C M (s) is the complexity of the sequence s; ○ α is a constant 3. The method of claim 2, wherein the score is of the type: 【Request 4】 【Number 1】 where: ○ γ is a constant, ○ [Equation 2] is the fitting upper bound of s, ○ A M max (s) is the fitting of the maxima of the children of the parents of s 4. The method of claim 3.

5. The greedy score of a sequence s is [Equation 3] where: ○ [Equation 4] is the fitting upper bound of s, ○ A M (T(s)) is the fitting of the discrete geometric representation by the sequence s, and T(s) is the CAD feature tree resulting from the candidate sequence s; ○ C M (s) is the complexity of the sequence s; ○ α and β are constants 5. The method according to claim 2, wherein the score is of the type:

6. The pruning score for a sequence s is [Equation 5] where: ○ [Equation 6] is the fitting upper bound of s, ○ C M (s) is the complexity of the sequence s; ○ α is a constant 6. The method according to claim 2, wherein the score is of the type:

7. 7. The method of claim 1, wherein the objective function comprises subtracting the complexity of the candidate sequence by a term that rewards fitting the discrete geometric representation by the candidate sequence.

8. 8. The method of claim 7, wherein the term that rewards fitting is weighted by a weighting parameter.

9. The objective function is: [())=α| M ())) M (()) where s is the candidate sequence, J(s) is the objective function, and C M is the complexity of the candidate sequence, and A M where (T(s)) is the term that rewards the fitting, α is a weighting parameter, and T(s) is the CAD feature tree resulting from the candidate sequence s.

9. The method according to claim 7, wherein the function is of the type:

10. 10. The method of claim 1, wherein the optimization of the objective function is under the constraint that each of the determined one or more sequences has a fit of the discrete geometric representation greater than a fitting threshold.

11. 11. The method of claim 1, wherein the reward for fitting is based on a ratio of a surface area of ​​the coverage of the discrete geometric representation by the candidate sequence to a surface area of ​​the discrete geometric representation.

12. The complexity is [Equation 7] where C M is the CAD feature (f 1 , ..., f n ) and ∂T(f 1 , ..., f n ) + is the bounds of features resulting from the sequence s, n is the number of CAD features in the sequence s, and ∂f i is the CAD feature f i is the boundary of ∂f i ∩M is the boundary ∂f i and the discrete geometric representation M, and the function |N| outputs the surface area of ​​argument N.

12. The method according to claim 1, wherein the complexity is of the type:

13. A computer program comprising instructions which, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 12.

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

15. 14. A computer system comprising a processor coupled to a memory, said memory having stored thereon a computer program according to claim 13.