Machine learning is configured as a function to predict the next CAD feature in the CAD feature tree

By automatically predicting the next feature of a CAD feature tree through machine learning training functions, the problem of cumbersome and ergonomic design of CAD feature trees in existing technologies is solved, and an efficient and intuitive feature tree design process is achieved.

CN122333940APending Publication Date: 2026-07-03DASSAULT SYSTEMES SA
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
DASSAULT SYSTEMES SA
Filing Date
2025-12-31
Publication Date
2026-07-03

AI Technical Summary

Technical Problem

The existing CAD feature tree design process is cumbersome and lacks ergonomics. Users need to spend a lot of time searching for and selecting the correct CAD features in complex menus, and best practices are not readily apparent.

Method used

The function is trained using machine learning methods to predict the next CAD feature in the CAD feature tree. By providing a training dataset and a graphical representation of a portion of the CAD feature tree, the function automatically predicts the next CAD feature using neural networks and fusion modules. Combined with a graphical user interface, this achieves an efficient and ergonomic feature tree design.

Benefits of technology

It improves the efficiency and ergonomics of CAD feature tree design. Users only need to graphically select the geometry of interest, and the system automatically provides the next CAD feature prediction, reducing the time spent manually browsing complex menus.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122333940A_ABST
    Figure CN122333940A_ABST
Patent Text Reader

Abstract

This disclosure relates to a machine learning method for learning a function configured to predict the next feature in a feature tree. The method includes a dataset providing examples, each example including a graph representing at least a portion of the feature tree. The graph includes nodes, each node representing a feature, and each node is labeled with a label from a set of labels, each label indicating a feature type of a predetermined set. The graph includes edges, each edge connecting nodes and representing parent-child relationships between features represented by the nodes. The graph includes ground truth data indicating the next feature based on one or more selected features, each selected feature corresponding to a node in the graph. The method also includes training the function to take the graph representing at least a portion of the feature tree as input and output a prediction of one or more next features in the feature tree.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer programs and systems, and more specifically, to methods, systems, and programs for performing machine learning on a function configured to predict the next CAD feature in a CAD feature tree, to functions that can be learned according to the methods, and to methods of using such functions. Background Technology

[0002] The market offers numerous solutions for the design, engineering, and manufacturing of objects, including both hardware and software. CAD, an acronym for Computer-Aided Design, refers to software solutions used for designing objects. CAE, an acronym for Computer-Aided Engineering, refers to software solutions used for analyzing and simulating the physical behavior of future products. CAM, an acronym for Computer-Aided Manufacturing, refers to software solutions used for defining product manufacturing processes and resources. In these computer-aided design solutions, graphical user interfaces play a crucial role in technological efficiency. These technologies can be embedded in Product Lifecycle Management (PLM) solutions. PLM refers to an engineering strategy that helps companies share product data, apply common processes, and leverage enterprise knowledge to develop products from concept to end-of-life, extending the enterprise's overall vision. Dassault Systämes' PLM solutions (traded as CATIA, SIMULIA, DELMIA, and ENOVIA) provide an engineering hub for organizing product engineering knowledge, a manufacturing hub for managing manufacturing engineering knowledge, and an enterprise hub that enables businesses to integrate and connect to both the engineering and manufacturing hubs. Together, all solutions provide a common model that links products, processes, and resources to enable dynamic, knowledge-based product creation and decision support that drives optimization of product definition, manufacturing readiness, production, and service.

[0003] In this context, design and manufacturing software solutions often utilize so-called feature-based CAD models, which are CAD models defined by a CAD feature tree (hereinafter sometimes simply referred to as a "feature tree"). These concepts are further described below, but essentially, a CAD feature tree is a series of operations (also called CAD features) organized in a tree structure that create the geometry of the CAD model (e.g., in B-rep format). The CAD model defined by the feature tree and / or by the B-rep representation obtained by executing that feature tree is typically a manufacturable model, meaning it defines the exact geometry used to manufacture the mechanical parts represented by the model. For example, as discussed further below, such a model can be converted into CAM (Computer-Aided Manufacturing) files, etc., for further manufacturing.

[0004] Therefore, designing the CAD feature tree for a CAD model is a typical and crucial step in the design and manufacturing process. Software solutions such as CATIA exist to accomplish this task. Typically, such solutions provide users with a large set of CAD features (which may also be referred to as "commands" in this disclosure). For example, for the CATIA generative shape design software application, there are approximately 250 available CAD features. This large set of commands can make the software solution seem very complex and unintuitive to users. In fact, some new users may spend time searching for the correct command to use in their design process at the right time. Commands are often displayed in menus of selectable commands that are fundamentally ergonomically inefficient for browsing: navigating menus requires the user's time and attention, and may also require multiple clicks (or touches) to select commands and / or navigate submenus. Figure 1 This image shows an example of such a menu in the CATIA generative shape design software solution. As can be seen from the image, selecting the correct CAD feature can require time and attention, especially for inexperienced users, and may require several user-machine interactions to navigate the sub-menus (some commands are accessible by clicking the vertical arrows).

[0005] Therefore, the current design process for designing CAD feature trees is often lengthy, cumbersome, and lacks ergonomics for end users. Furthermore, there are best practices adopted by companies to use more commands than others because they are more robust (resilient) to design changes, and these best practices are either not obvious or not applied to the displayed CAD feature set (such as menus).

[0006] Therefore, an improved solution is needed for designing / creating CAD feature trees. Summary of the Invention

[0007] Therefore, a computer-implemented method is proposed for machine learning of a function configured to predict the next CAD feature in a CAD feature tree. The method includes a training dataset providing training examples. Each training example includes a graph. The graph represents at least a portion of the corresponding CAD feature tree. The graph includes nodes. Each node represents a CAD feature of the corresponding CAD feature tree. Each node is labeled with a label from a predetermined set of labels, each label indicating the type of CAD feature in a predetermined set of CAD feature types. The graph also includes edges. Each edge connects two nodes and represents a parent-child relationship between the CAD features represented by the two nodes in the corresponding CAD feature tree. The graph also includes ground truth data, which indicates the next CAD feature predicted based on one or more selected CAD features, each selected CAD feature corresponding to a node in the graph. The method also includes training a function based on the training dataset. The function is trained to take a graph representing at least a portion of the CAD feature tree as input and output a prediction of one or more next CAD features in the CAD feature tree. Each predicted next CAD feature belongs to a predetermined set of CAD feature types. This method may be referred to as a "learning method".

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

[0009] - Each training example also includes data describing the global architecture of the corresponding CAD feature tree;

[0010] - Global data includes data describing the following items:

[0011] o The number of CAD features in the corresponding CAD feature tree;

[0012] o The number of one or more selected CAD features, the next CAD feature will be based on that one or more selected CAD features;

[0013] o Dimensional uniformity of one or more selected CAD features; and / or

[0014] o The number of different geometries in the corresponding CAD feature tree;

[0015] - This function is a neural network, which includes:

[0016] o Graph Neural Network (GNN) is configured to take an input graph representing at least a portion of a CAD feature tree as input and output an encoding of the input graph;

[0017] o A linear encoder, configured to encode data describing the global architecture using global feature encoding;

[0018] o A fusion module, configured to output a fusion code that corresponds to the fusion of the global feature code and the input graph's code; and

[0019] o Classification module, which is configured to take fusion encoding as input and output a prediction of one or more next CAD features in the CAD feature tree;

[0020] - Each node includes node attributes that describe the geometric features of the geometry created by the CAD feature represented by the node;

[0021] - The method includes forming a training dataset, which includes:

[0022] o Provides an initial set of drawings, each drawing representing a corresponding complete CAD feature tree. Each drawing in the initial set includes:

[0023] o Nodes, each node represents a CAD feature of the corresponding complete CAD feature tree, each node is labeled with a label from a predefined label list, and each label indicates the type of CAD feature in a predefined set of CAD features;

[0024] o Edges, each edge connects two nodes and represents the parent-child relationship between CAD features represented by the two nodes in the corresponding complete CAD feature tree;

[0025] o For each graph in the initial set, extract a subgraph of the graph, each subgraph representing at least a portion of the corresponding CAD feature tree represented by the graph, and the subgraphs thus form training examples;

[0026] - Subgraphs have different depths;

[0027] The formation of the training dataset also includes:

[0028] o Identify one or more groups, each of which has a topologically similar subgraph;

[0029] For each group, select a subgraph representing that group, and label the selected subgraph with the labels of the other subgraphs in that group; and

[0030] o Remove the other subgraphs;

[0031] - The initial set of graphics provided includes:

[0032] o Provides a set of CAD feature trees;

[0033] o Convert each CAD feature tree into a JSON file; and

[0034] o For each JSON file, form an initial set of graphics based on the JSON file, which represents the corresponding CAD feature associated with the JSON file; and / or

[0035] - Providing an initial set of graphics also includes: removing nodes in each graphics of the initial set that correspond to CAD parameters, geometry not parameterized by CAD features, or pure B-rep elements.

[0036] A function capable of learning according to the learning method is also provided, namely, a computer-implemented data structure forming the function and having weights / parameters, the values ​​of which are the same as those set during the training of the learning method. The provided function can, for example, be a function trained according to the learning method, having weights / parameters with values ​​set during the training of the learning method.

[0037] A computer implementation of the function is also provided, along with a method of using it. This method of use includes one or more iterations. Each iteration includes providing a CAD feature tree. The iteration also includes the user graphically selecting one or more CAD features in the CAD feature tree, or one or more geometries created from one or more CAD features. The iteration further includes predicting one or more next CAD features to be added to the CAD feature tree based on the user's selection, using the function. The iteration also includes displaying a graphical representation of the predicted one or more CAD features to the user. The iteration further includes adding the predicted CAD feature to the CAD feature tree by the user graphically selecting the displayed graphical representation of the predicted CAD feature. If there are more than one iteration, at each iteration, the CAD feature tree with the user-selected CAD features added forms the CAD feature tree provided for the next iteration. The method of using the function may be simply referred to as the "usage method".

[0038] A computer program is also provided that includes instructions for performing the learning method and / or the usage method.

[0039] A computer-readable storage medium is also provided on which the computer program and / or the function are recorded.

[0040] A system is also provided, including a processor coupled to a memory on which the computer program and / or the function are recorded.

[0041] An apparatus is also provided, comprising a data storage medium on which the computer program and / or the functions are recorded.

[0042] The device can form or serve as a non-transitory computer-readable medium, such as on SaaS (Software as a Service) or other servers, or cloud-based platforms. The device may alternatively include a processor coupled to a data storage medium. Therefore, the device can form, wholly or partially, a computer system (e.g., the device is a subsystem of a larger system). The system may also include a graphical user interface coupled to the processor. Attached Figure Description

[0043] A non-limiting example will now be described with reference to the accompanying drawings, in which:

[0044] - Figures 1 to 25 The method is shown; and

[0045] - Figure 26 An example of the system is shown. Detailed Implementation

[0046] A computer implementation method for machine learning of a function is proposed. The function is configured to predict the next CAD feature in a CAD feature tree. The method includes a training dataset providing training examples. Each training example includes a graph. The graph represents at least a portion of the corresponding CAD feature tree. The graph includes nodes. Each node represents a CAD feature of the corresponding CAD feature tree. Each node is labeled with a label from a predetermined set of labels, each label indicating the type of CAD feature in a predetermined set of CAD feature types. The graph also includes edges. Each edge connects two nodes and represents a parent-child relationship between the CAD features represented by the two nodes in the corresponding CAD feature tree. The graph also includes ground truth data indicating the next CAD feature predicted based on one or more selected CAD features, each selected CAD feature corresponding to a node in the graph. The method also includes training a function based on the training dataset. The function is trained to take a graph representing at least a portion of the CAD feature tree as input and output a prediction of one or more next CAD features in the CAD feature tree. Each predicted next CAD feature belongs to a predetermined set of CAD feature types. As previously discussed, this method may be referred to as a “learning method”.

[0047] The learning method constitutes an improved solution for the design, creation, and determination of CAD feature trees.

[0048] It is noteworthy that this method trains a function to take, during the design / creation of a complete feature tree, a graph representing at least a portion of the CAD feature tree (such as a graph representing a part of the feature tree, i.e., a partial feature tree) as input, and predicts one or more next CAD features in the tree (i.e., the set of all technically possible next CAD features to be added to the tree to continue its creation). Therefore, the function learned by this method leverages / benefits generative AI capabilities to predict the correct set of commands to continue the current design sequence. Thus, this method provides a powerful generative artificial intelligence (AI) tool (function) that improves the efficiency and ergonomics of the feature tree design process (compared to the user's manual iterative selection of features in current design software solutions), thereby providing automatic prediction of the appropriate next CAD feature based on the current state of the tree. Furthermore, the training dataset can be set up to include only or a sufficient number of training examples that follow best CAD feature tree practices, such as specific sequences / orders of CAD operations designed to satisfy certain constraints (e.g., constraints on usage, manufacturing, and / or constraints on optimizing CAD model storage using a minimum number of CAD features). In this context, the method provides powerful generative AI that allows users to respect best practices with improved efficiency and ergonomics.

[0049] These effects and advantages are particularly evident in the method of use. This method of use includes one or more iterations. Each iteration includes providing a CAD feature tree. The iteration also includes the user graphically selecting one or more CAD features from the CAD feature tree, or one or more geometries created from one or more CAD features. The iteration further includes predicting one or more next CAD features to be added to the CAD feature tree based on the user's selection using a function. The iteration also includes displaying a graphical representation of the predicted one or more CAD features to the user. The iteration further includes the user selecting the predicted CAD feature by graphically selecting the displayed graphical representation of the predicted CAD feature, thereby adding the CAD feature to the CAD feature tree. If there are more than one iteration, at each iteration, the CAD feature tree with the user-selected CAD features added forms the CAD feature tree provided for the next iteration.

[0050] As described in the usage method, in the design sequence, the user graphically selects a CAD feature (or equivalent geometry derived from that feature) in the feature tree being designed. Based on this, the function automatically predicts one or more next CAD features to be added to the tree, and these next CAD features will be suitable to follow the user's selection. The predicted features(s) can then be displayed to the user, who can graphically select the feature to be added to the tree as the next feature, and the method can then be used for the next iteration. Therefore, feature tree creation is particularly efficient and ergonomic, where the user only graphically selects the geometry (or CAD feature) of interest, and the system automatically provides predictions of suitable next features, rather than the user having to manually navigate through complex menus to find them.

[0051] Figure 2A , Figure 2B , Figure 2C and Figure 3 The methods of this disclosure, as well as these effects and advantages, are illustrated. Figure 2A , Figure 2B , Figure 2C The diagram illustrates how a user graphically selects (by clicking) the geometry 20 of a mechanical part 22 (which is a car rim), and the function (symbol "AI" in the diagram) provides a graphical display of a set 24 of predictions for the next CAD feature to be added to the feature tree based on the user's selection. Figure 3 The corresponding illustration is shown from the perspective of the feature tree itself.

[0052] Now let's discuss learning methods further.

[0053] The learning method is a type of machine learning method. As is known in the field of machine learning itself, the processing of inputs by a model or function involves applying operations to the inputs, which are defined by data including weight values ​​or parameters. Therefore, learning a model / function (e.g., a neural network or a backoff) involves determining the values ​​of the weights / parameters based on a dataset configured for this learning, which may be referred to as a learning dataset or training dataset. For this purpose, a dataset comprises data pieces, each forming a corresponding training sample or training example. Training samples / training examples represent the diversity of situations in which the model will be used after learning the model. Any training dataset in this document may include a number of training samples / training examples greater than 1,000, 10,000, 100,000, or 1,000,000. In the context of this disclosure, "learning a model based on a dataset" means that the dataset is the learning / training dataset for the model, and the values ​​of the weights / parameters are set based on that learning / training dataset. In this disclosure, the training dataset is a dataset of training examples for training a function.

[0054] As is known from machine learning, a neural network can be defined by its architecture, parameters, and hyperparameters. The architecture consists of layers, starting with an input layer whose neuron count can be determined by the dimension of the input data. Following this layer are several hidden layers with a given number of neurons and activation functions. These layers and neurons define the depth and width of the network, while the activation functions introduce non-linearity into the model. The output layer can have as many neurons as there are variables in the output data. The interconnections between these layers define the topology of the neural network. The parameters of the neural network are learnable weights and biases that are determined during training. Conversely, hyperparameters are predefined settings that are not learned from the training data. These cover the number of hidden layers, the number of neurons per layer, and so on. To train a neural network, at least two settings can be defined. First, the loss function, which is a measure of the error (such as mean squared error, MSE) between the training data and the model's predictions. Second, the optimizer, which modifies the model's weights and biases during training to minimize the loss function. Each optimizer has its own set of hyperparameters.

[0055] This method learns a function configured to predict the next CAD feature in a CAD feature tree. This means the function has an architecture for predicting the next CAD feature and is trained using a learning method. Specifically, the function is trained with an architecture that takes a graphical representation of at least a portion of the CAD features (i.e., the CAD features being constructed, and therefore possibly partial) as input and outputs predictions of one or more next CAD features in the CAD feature tree (i.e., one or more predictions of the next CAD feature to be added as at least a portion of the CAD feature tree). Therefore, the output of the learning method is this trained function.

[0056] The learning method involves providing a training dataset and then performing training on that dataset. The training dataset consists of training examples, meaning it has a sufficient quantity and variability known in the field of machine learning. Each training example includes a graph (i.e., the corresponding graph) representing at least a portion of the corresponding CAD feature tree. In other words, a graph can represent the entire feature tree or a portion thereof (e.g., a subtree). The training examples in total have a sufficient quantity and variability in this respect, meaning they have a sufficient quantity and variability in size (or depth) so that the function encounters appropriately diverse examples during its training to ensure robustness. These considerations related to the diversity of training examples are well-known in machine learning. Each graph includes nodes and edges, with each edge connecting two nodes.

[0057] Each node represents a CAD feature of the corresponding CAD feature tree represented by the drawing. Each node is labeled with a label from a predefined set (or list) of labels. The predefined set of labels consists of several labels, and each label in the set corresponds to a CAD feature of a corresponding type and indicates that type in a predefined set of CAD feature types. Therefore, the label of a node indicates that the node represents a feature of the type indicated by the label. The predefined set can consist of the following CAD feature types:

[0058] Line: Creates a geometric segment defined by two points.

[0059] Circle: Generates a circular shape defined by its center and radius.

[0060] Plane: Defines a flat, infinite 2D surface that is used as a reference for construction or manipulation.

[0061] Point: A specific location in space that is marked, and is usually used as a reference.

[0062] Curve: Constructs a smooth, continuous geometric line that can be opened or closed.

[0063] Intersect: Calculates the intersection point or intersecting curve between two geometric shapes.

[0064] Projection: Projecting a geometric shape onto a plane or curved surface.

[0065] CurvePar: Creates curves that are parameterized along a specific mathematical function or relation.

[0066] Extrusion: Extruding a selected geometry along a given extrusion axis at a given extrusion distance.

[0067] Loft: Generates a 3D surface by blending multiple contours along a guide path.

[0068] Fill: Creates a surface that spans a closed boundary or set of edges.

[0069] Sweep: Extends a profile along a predefined path to form a solid or surface.

[0070] Blend: A smooth transition between two or more surfaces or edges.

[0071] Assembly: Combining multiple components or features into a single structure.

[0072] Fillet: Rounds the edges or corners of a geometry with a specified radius.

[0073] Split: Divide a geometry into two parts using a cutting plane or surface.

[0074] Trim: Removes the portion of a geometry that extends beyond a specified boundary.

[0075] Offset: Creates a new geometry parallel to the original geometry at a specified distance.

[0076] Extrapolation: Extends an existing surface or curve beyond its current boundary.

[0077] Symmetry: Generates a mirror copy of the geometry across a specified plane.

[0078] Translation: Moves a geometry a specified distance in a given direction.

[0079] Boundary: Defines the outer limits of a geometry or surface.

[0080] Extremum: Identifies the maximum or minimum point of a geometric shape.

[0081] Polar coordinates: locate extreme points relative to a specific direction or axis.

[0082] Curve Smooth: Optimizes curves by reducing irregularities or sharp transitions.

[0083] Near: Find the nearest point or feature relative to other geometries.

[0084] Axis System: Defines a reference coordinate system with an origin and axes.

[0085] For example, the inventors have successfully tested this method in an implementation using CAD feature types for generative shape design in CATIA, which correspond to the aforementioned set in CATIA and are: GSMLine, GSMCircle, GSMMPlane, GSMPoint, GSMCurve, GSMIntersect, GSMProject, GSMCurvePar, GSMExtrude, GSMLoft, GSMFill, GSMSweep, GSMBlend, GSMAssemble, GSMFillet, GSMSplit, GSMMTrim, GSMOffset, GSMExtrapol, GSMymmetry, GSMTranslate, GSMBoundary, GSMExtremum, GSMExtremumPolar, GSMCurveSmooth, GSMMNear, and AxisSystem. Adapting this method to an implementation using corresponding CAD feature types from other CAD software solutions is within the skill of those skilled in the art.

[0086] Each node may also include node attributes, which describe the geometric features of the geometry created by the CAD feature represented by the node. Node attributes can be vectors (e.g., encoded vectors) that correspond to the node and include data describing (encoding) the geometric features (or attributes) of the CAD features of the nodes listed in the table below:

[0087]

[0088] Each edge connects two nodes and represents the parent-child relationship between the CAD features represented by these two nodes in the corresponding CAD feature tree. This means that one of the two nodes is the parent node, and the other is the child node; that is, the parent node represents the CAD feature that directly precedes the CAD feature represented by the child node in the feature tree. This means that there are directional arrows / edges in the feature tree that connect the CAD feature represented by the parent node to the CAD feature represented by the child node. In other words, in the CAD feature tree, the CAD feature represented by the child node is applied to the geometry produced by the CAD feature represented by the parent node.

[0089] Each training example also includes ground truth data. Ground truth data indicates the next CAD feature to be predicted based on one or more selected CAD features, each corresponding to a node in the graph. In other words, each training example includes: data specifying one or more selected CAD features, each corresponding to a corresponding node in the graph; and data specifying which label in a set / list of labels is the next CAD feature to be predicted for these selected CAD features. These selected CAD features represent what the user will choose during use (e.g., in the usage method), and the data specifying the label to be predicted represents what the next CAD feature prediction should be for that choice. Ground truth data may contain a vector of size N, where N equals the number of CAD feature types in a predetermined set of CAD feature types. Thus, each coordinate corresponds to a type of CAD feature and includes a value indicating the ground truth probability that the CAD feature to be predicted is of that type. It should be understood that for some training examples, the vector may include one coordinate corresponding to a probability of 1 (or 100%), while another coordinate is equal to zero, thus indicating the only possible type of the next CAD feature with 100% certainty. This might be the case for training examples where the selected CAD features can only result in one possible type of CAD feature. For other training examples, the vector can include several non-zero coordinates because several CAD feature types are possible for the next CAD feature to be predicted. For example, this is the case if the selected CAD features do not completely constrain the next CAD feature to one type, but can correspond to several possible next types (with different probabilities). As discussed further below, for each training example, the formation of the training dataset discussed below may include specifying the ground truth data.

[0090] The method may include (e.g., as part of the step of providing a training dataset) forming a training dataset. Forming the training dataset includes providing an initial set of graphs. Each graph in the initial set represents a corresponding complete CAD feature tree and includes nodes and edges, with each edge connecting two nodes. Each node represents a CAD feature of the corresponding complete CAD feature tree. Each node is labeled with a label from a predetermined set of labels. Each edge connects two nodes and represents a parent-child relationship between the CAD features represented by those two nodes in the corresponding complete CAD feature tree. Forming the training dataset then includes: for each graph in the initial set, extracting a subgraph from the graph. Each extracted subgraph represents at least a portion of the corresponding CAD feature tree represented by the graph. The extracted subgraphs thus form training examples.

[0091] The initial set of graphics provided may include a set of CAD feature trees, provided in sufficient quantity (e.g., more than 40 trees, such as 43 in this implementation) and diversity. Providing these CAD feature trees may include retrieving (e.g., retrieving or downloading) them from a (e.g., a remote) database, server, or storage, where the CAD feature trees have been further stored after creation. Providing the initial set of graphics may then include converting each CAD feature tree into a JSON file. Providing this initial set may then include, for each JSON file, forming graphics from the initial set based on the JSON file. The resulting graphics represent the corresponding CAD feature tree corresponding to the JSON file.

[0092] As is known, JSON stands for "JavaScript Object Notation" and is an open standard file format and data exchange format that uses human-readable text to store and transmit data objects consisting of name-value pairs and arrays (or other serializable values). It is a commonly used data format with various applications in electronic data interchange, including web applications with servers. JSON is a language-independent data format. It originated from JavaScript, but many modern programming languages ​​include code for generating and parsing JSON-formatted data. JSON filenames use this extension. Methods exist for reading CAD feature trees and extracting their JSON files; therefore, the step of converting a CAD feature tree to a JSON file can be performed using these methods. Figure 4 This step illustrates the conversion to a JSON file and the subsequent generation of a graph (the left side shows a 3D model with its feature tree, and the right side shows the corresponding graph). Shaded nodes represent features selected by the user (online / use phase), and other nodes represent features that could create those shaded nodes. Therefore, training examples associated with this tree include data specifying the next CAD feature to predict based on the selected shaded nodes. For each JSON file produced by the conversion step, the graph forming the initial set corresponding to that JSON file may include browsing / searching the JSON file to retrieve parent / child relationships, thereby creating the nodes and edges of the graph.

[0093] The initial set of drawings may also include: removing (i.e., all) nodes corresponding to CAD parameters, geometry not parameterized by CAD features, or pure B-rep elements in each drawing of the initial set. This step can be referred to as "data cleaning." Nodes corresponding to CAD parameters are nodes that correspond to features that modify the parameters of an existing CAD feature (or the geometry it generates), and such nodes are not considered CAD features themselves and are therefore removed. Nodes corresponding to geometry not parameterized by CAD features are nodes that correspond to features used to create geometry but are not CAD features themselves. An example of such a node is a "parameter node," which can exist in the feature tree to drive the values ​​of CAD parameters. Nodes corresponding to pure B-rep elements are nodes that do not correspond to CAD features but to child elements of CAD features (or their corresponding geometry), and are typically created on the fly (an example of such a node is a face selected on a surface). Therefore, the data cleaning step removes unnecessary nodes. Elements such as BRep, unknown geometry, and parameters, as well as their associated nodes, are also removed. Specifically, BRep nodes are removed along with their sibling nodes and all their child nodes. For parameter nodes, only the node itself is removed. This removal is particularly beneficial for BREP nodes, as BREP nodes do not correspond to any feature but rather to child elements of a feature. In fact, as mentioned earlier, BREPs correspond to child elements of existing features (created on the fly) (e.g., selecting faces of a surface). Using these objects as input can lead to instability because they are not naturally present in the tree.

[0094] The data cleaning step can also include discarding commands that are out of scope as data (Datum). A Datum type can correspond to a default class (or default label), meaning it does not correspond to any predicted commands or commands considered as input. For example, if it corresponds to a command from another software application, it can be considered a Datum. By performing this process, the method still preserves relevant information (dimensions, number of domains) and the graph architecture (relationships between objects).

[0095] The formation of the training dataset then involves: for each graph in the initial set, extracting a subgraph of the graph, each subgraph representing at least a portion of the corresponding CAD feature tree represented by the graph. These subgraphs thus form training examples. In this step, for each individual graph in the initial set, the method creates multiple subgraphs: starting from each node in the graphs of the initial set, the method forms several subgraphs by increasing the number of graph levels upwards (e.g., up to 10 levels). This step allows for augmentation of the data in the dataset, which improves the robustness of training. The subgraphs thus created can have different depths, i.e., sufficient variability in depth.

[0096] Forming the training dataset can also include filtering out subgraphs containing nodes representing CAD features that occur less than a predefined threshold in the training dataset, such as less than 24. This allows the removal of CAD feature types from the training dataset that have too few samples for the function to learn to predict them. This results in labels in the training data all belonging to the predetermined set discussed above, which corresponds to CAD features that have a sufficient number of occurrences in the training data.

[0097] Forming the training dataset may further include: identifying one or more groups, each group having topologically similar subgraphs. This means identifying graphs with the same topology and representing the same sequence of CAD features, i.e., isomorphic graphs and topologically similar graphs (in other words, repeating graphs). This can be accomplished using any known method for identifying such repeating graphs. Forming the training dataset may then further include: for each group, selecting a subgraph representing the group (i.e., selecting a subgraph among the copies), and labeling the selected subgraph with the labels of the other subgraphs of the group. Forming the training dataset may then further include removing said other subgraphs. Figure 5A , Figure 5B and Figure 5C The probability distribution of these unique representations on examples of CAD feature sequences is shown to illustrate the more likely and less likely sequences.

[0098] The formation of the training dataset may also include: for each training example, specifying ground truth data for that training example, and the ground truth data indicating the next CAD feature to be predicted based on one or more selected CAD features, each selected CAD feature corresponding to a node in the graph of the training example. This can be accomplished by: for each subgraph, selecting the output node (i.e., the leaf node) of the subgraph, removing it from the subgraph (so that the subgraph without this node becomes the training example), and adding to the training example 1) data specifying the exact (ground truth) label of the output node and 2) data specifying the one or more selected CAD features (i.e., data specifying which(s) of the output node(s) are considered as selected nodes for this training example).

[0099] Forming the training dataset may also include: for each training example, for each node of the graph for that training example, associating its node attributes with the node; this can be done after these attributes have been determined. Forming the training dataset may also include labeling the nodes with all their labels.

[0100] Each training example may also include data describing the global architecture of the corresponding CAD feature tree, which may be referred to as "global data". Global data is any data that globally describes the CAD feature tree, allowing the function to learn not only from local information (nodes and edge connections) but also from the global organization of the feature tree. Global data may include data describing one or more (e.g., all) of the following parameters: the number of CAD features in the corresponding CAD feature tree, the number of one or more selected CAD features upon which the next CAD feature will be based, the dimensionality uniformity of the one or more selected CAD features, and / or the number of different geometries of the corresponding CAD feature tree. The number of CAD features in the corresponding CAD feature tree is essentially a count of the number of CAD features present in the tree, which helps the function understand whether the tree corresponds to a large or small sequence of CAD features. The number of one or more selected CAD features upon which the next CAD feature will be based is the number of nodes that represent the direct parent of the next CAD feature to be predicted and are considered selected in the relevant training example. This helps the function distinguish the type of command to be predicted, as some commands may work strictly with a specific number of inputs. The dimensionality uniformity of the one or more selected CAD features is data that quantifies the uniformity of these selected CAD features in terms of dimensions. This data can be binary values; for example, one possible value (e.g., 1) indicates uniform dimensionality, and another possible value (e.g., 0) indicates non-uniform dimensionality. Binary values ​​allow the model to make decisions regarding dimensionality uniformity. This helps the function understand that certain commands can only be used when the selected inputs have the same dimensionality. The number of different geometries in the corresponding CAD feature tree is data indicating the count of each type of geometry that can be found in the feature tree (e.g., the number of planes, points, circles, lines, curves, surfaces, solids, and volumes). This allows identification of the type of graphical sequence in the current design. Forming the training dataset can include determining global data for each training example and associating the determined global data with the training examples.

[0101] Figure 6 An example of the process for forming the training dataset as discussed above is shown.

[0102] It should be understood that providing a training dataset may include forming a training dataset or at least a portion thereof, or consisting thereof, according to the process described above, but may also include simply obtaining (retrieving / downloading) a dataset or at least a portion thereof from (e.g., remote) storage, a server, or a database, wherein, after obtaining the dataset according to the process of forming the dataset described above, the dataset has been further stored in the storage, server, or database.

[0103] The method then includes training a function based on a training dataset. This function is trained to take a graph representing at least a portion of a CAD feature tree as input and output a prediction of one or more next CAD features in the CAD feature tree. Each predicted next CAD feature belongs to a predetermined set of CAD features. Training involves feeding training examples to the function. Thus, the function takes the graph of each training example and the labels of its nodes as input and processes them. The function may also process node attributes and global data of the training example. After this processing, the function outputs a prediction of one or more CAD features for that training example. The function may, for example, output a vector of size N, where N equals the number of CAD feature types in the predetermined set of CAD feature types. Thus, each coordinate corresponds to a type of CAD feature and includes a value indicating the probability that the CAD feature to be predicted, as determined by the function, is of that type. On the other hand, the training examples also include the aforementioned ground truth data. Therefore, for each training example, training involves quantifying the difference between the output predicted by the function and the ground truth data, and adjusting the weights / parameters of the function as long as the difference is not small. As is known inherently in the field of machine learning, this can be accomplished by minimizing the loss. Any suitable loss function can be used; it's a matter of implementation. For example, this method could use a common loss function for regression problems, namely Mean Squared Error (MSE), which measures the mean squared difference between the predicted and actual values. Alternatively, cross-entropy loss could be used, as it quantifies the difference between the predicted probability and the true class label.

[0104] This function can be a neural network.

[0105] The neural network includes a graph neural network (GNN) configured to take an input graph representing at least a portion of a CAD feature tree as input (i.e., the input to a function) and output an encoding of the input graph. The neural network also includes a linear encoder configured to encode data describing the global architecture using a global feature encoding. The neural network further includes a fusion module configured to output a fused encoding corresponding to a fusion of the global feature encoding and the encoding of the input graph. The neural network also includes a classification module configured to take the fused encoding as input and output a prediction of one or more next CAD features in the CAD feature tree.

[0106] Therefore, this method represents the data as a graph, which allows the use of graph neural networks, which are well-suited to the classification problem under consideration. Graph neural networks (GNNs) belong to a class of artificial neural networks designed to process and learn patterns from graph-structured data. GNNs perform neighborhood aggregation, updating node features by aggregating information from direct neighbors at each layer. This allows for information sharing and the capture of local context. Figure 7 The GNN architecture is shown.

[0107] The GNN function transforms and aggregates the node data (labels and node attributes) into encodings for dummy nodes, representing the next command (i.e., the next CAD feature to be predicted). In its implementation, the GNN can have a gated GNN architecture, which allows for favoring edges closest to the selected CAD feature (giving them more weight). For each training example, a linear encoder (also called a linear layer) augments the global data, encoding it as a global feature encoding. The dummy node encodings and the global feature encodings are then merged by a fusion module, which outputs the merged result as a fused encoding. The classification module is a linear layer that outputs predictions for one or more next CAD features based on the merged encodings.

[0108] Figure 8 A diagram illustrating the function's architecture is shown. It contains two types of information: Figure 8 Information related to nodes, their relationships, and global features on the left helps the model capture more information and user intent, allowing for robust prediction of the correct set of commands. Of course, local information alone already provides interesting results, and global features are additional information that leads to better accuracy.

[0109] We will now discuss further features of function learning / training.

[0110] First, the distribution of categories (labels) in the dataset may be imbalanced. Figure 9 An exemplary implementation of an imbalanced proportion with different classes is shown. To address this issue, the method can implement a weighted random sampling strategy during training. This involves sampling instances of different classes / labels (note: instances of a label are training examples containing that label) in batches using a probability inversely proportional to the class proportion. In this way, instances of the majority class (i.e., graphs containing labels of that class) will be downsampled, while instances of the minority class (i.e., graphs containing labels of that class) will be oversampled, thus achieving class / label balance. Figure 10 and Figure 11 The effect of the weighted random sampler is shown. Figure 10 The label counts are shown after 24 rounds without weighted random sampling. Figure 11 The chart shows the label counts after 24 rounds of weighted random sampling. The distribution of categories is more balanced. These figures illustrate how this sampling strategy makes the distribution much more balanced.

[0111] In the implementation, after preprocessing 43 3D models to form a training dataset using the aforementioned pipeline, the inventors obtained 7768 clean graphics. Different statistics are presented in... Figure 12 As shown in the figure. The following observations can be noted:

[0112] • These graphs are typically small (averaging 15.5 nodes and 18.8 edges), although their size varies significantly and has a standard deviation similar to the mean;

[0113] • More than half (61.8%) of the graphs had only one label, although 3% of the graphs could have up to eight labels that should be predicted from the data input;

[0114] • The distribution of categories is far from balanced, with GSMSplit, GSMIntersect, and GSMPoint being the top three categories.

[0115] Overall, it can be seen that in these implementations, the function learns different design patterns quite quickly and demonstrates good results.

[0116] Regarding the evaluation of training results, this method aims to solve multi-class prediction problems and provides multiple good solutions for prediction. Therefore, the inventors used different types of metrics to verify the accuracy of the model. The table below shows the results with these different metrics.

[0117]

[0118] Figure 13 The comparison between the ground truth (gt) and the predictions (pred) for the second metric (top of the figure) and the third metric (bottom of the figure) is shown to illustrate the above explanation of the different accuracies.

[0119] As previously explained, the function is configured to output predictions for one or more next CAD features used as input to the feature tree. The function may also include modules configured to filter out these predictions and retain only the more relevant ones (i.e., the M predictions with the highest probability values ​​(where M is an integer greater than or equal to 1, 2, 3, 4, or 5), and / or predictions with probability values ​​greater than a predefined threshold (e.g., the threshold could be equal to 0.5, 0.6, 0.7, 0.8, or 0.9)). The function may also include modules configured to display graphical icons on the display of the underlying computer system (e.g., the GUI of the underlying CAD system), each icon representing a corresponding symbol of one of the predicted CAD features. The icons may be displayed adjacent to each other, for example, as lines or circles. Each icon may be configured to display the name of the CAD feature corresponding to that icon when the user moves the cursor of a haptic device (e.g., a mouse) over the icon. The module displaying the icon can also be configured to: when the user graphically selects (e.g., clicks) the icon, add the corresponding CAD feature tree as a sub-feature of the CAD feature previously selected by the user (just before the function is applied), and display the editable parameters, specifications, and attributes of the CAD feature (e.g., as a widget, as currently done in existing CAD software solutions) (e.g., the extrusion direction and length of an extrusion feature). When the user selects a feature (or more precisely, its icon) and edits the parameters and specifications, the module fully integrates the new CAD feature into the feature tree, and the display of the corresponding object can be updated accordingly by the system executing the feature tree. The function can also include a preprocessing module configured to: based on the feature tree to be input into the function (on which the user has selected one or more CAD features), convert the feature tree and the selection of one or more CAD features into graphics, associated global data, and node attributes (as discussed above for the training example) (without ground truth, of course), and then input them into the function, or more precisely, into its neural network portion. Preprocessing can be performed only on the sub-feature trees of the feature tree; that is, it selects five parents of all selected CAD features (e.g., CAD features selected by the user in the usage method) and computes the corresponding graphic, node attributes, and global data only on the sub-feature trees formed by the selected features and their five parents. This number of parents can be a hyperparameter of the function and therefore can be edited. All these modules are deterministic and therefore may not be part of the training, where only the neural network portion of the function is trained.

[0120] Now let's discuss the usage method further.

[0121] This usage method includes one or more iterations.

[0122] Each iteration includes providing a CAD feature tree. The provided CAD feature tree is a feature tree designed by the user. If the iteration is the first iteration, the CAD feature tree may include a single initial geometry that the user has already created. If the iteration is a subsequent iteration, the CAD feature tree already includes one or more CAD features (at least two of which are from the second or subsequent iterations). In any case, providing the CAD feature tree may include: displaying CAD features in a conventional CAD solution (such as in CATIA) as is known per se, where subtrees in the feature tree are displayed only when the user selects its root / initial node, and / or displaying the geometry produced by the execution of the feature tree.

[0123] The iteration also includes the user graphically selecting one or more CAD features in the CAD feature tree or one or more geometries created from one or more CAD features. For example, a user can graphically select one or more geometries of the model currently produced by the execution of the feature tree (e.g., by clicking or touching a geometry), which is displayed on a computer monitor (e.g., a dedicated GUI of the CAD system). Alternatively, a user can graphically select CAD features directly in the feature tree (e.g., by clicking or touching), which can be displayed on the same screen as the visual representation model produced by the execution of the feature tree. The system can display visual indicators of the selected features to provide visual feedback to the user. For example, these features can be highlighted in the feature tree, and / or their corresponding geometries can be highlighted in the visual representation of the model produced by the execution of the feature tree.

[0124] The iteration then includes predicting one or more next CAD features to be added to the CAD feature tree based on the user's selection, using the function. This can be done automatically by the system: the user's selection of CAD features automatically triggers the application of the function. As explained above, the function's preprocessing module can automatically determine the graph of the feature tree, calculate node attributes and global data associated with the feature tree, and then the neural network portion of the function calculates the prediction of one or more next CAD features to be added to the tree. The method may also include, for example, displaying a graphical representation of the predicted one or more CAD features to the user by automatically executing the module of the function described above. For example, each predicted CAD feature can be displayed as an icon, and all icons can be displayed together as a line or circle. When the user moves the cursor of a computer mouse or a touch-sensitive haptic device over an icon, the system can display the name of the CAD feature associated with that icon. The system can also additionally (e.g., immediately next to the icon) display the probability associated with that predicted feature, allowing the user to see which prediction has more confidence.

[0125] The iteration then further includes: the user selecting a predicted CAD feature by graphically choosing (e.g., clicking or touching) a displayed graphical representation of the predicted CAD feature, thereby adding the CAD feature to the CAD feature tree. In practice, after feature selection, the system (e.g., by executing a module of the previously discussed function) automatically adds the feature to the feature tree. When the CAD feature is added to the tree, the system can display a widget to the user, allowing them to set and select parameters and specifications for the feature, as is customarily done in existing CAD systems. The system can then execute an updated feature tree to update the visual representation of the model. If multiple iterations exist (which is typically the case when designing a feature tree), in each iteration, the CAD feature tree with the user-selected CAD feature added forms the CAD feature tree provided for the next iteration.

[0126] Now for reference Figures 14 to 25 This section provides examples illustrating the usage methods.

[0127] Figure 14 The diagram shows a CAD model 100 and its feature tree 120 displayed on the CAD system's GUI in the early stages of designing the feature tree. The user has selected two geometries (a square and a line), and the selected geometries and their features in the feature tree are highlighted to provide visual feedback on the selection. This triggers the automatic application of functions. A list of seemingly reasonable next CAD features predicted by the function is then displayed as lines 140 with visual icons representing these features. The user clicks the icon corresponding to the extruded CAD feature type.

[0128] Figure 15 The user-selected extrusion type is shown, along with a graphical widget that allows the user to set the extrusion distance (to extrude the selected line in a direction orthogonal to the plane defined by the selected square).

[0129] Figure 16 The results of the extrusion feature are shown, and this result is selected by the user in the next iteration (the geometry produced by the extrusion and its name in the feature tree are highlighted to provide visual feedback on the selection). This selection again triggers the automatic application of the function and the subsequent display of icons representing the features predicted by the function.

[0130] Figure 17 It shows that the user has already selected the offset type in the function's prediction, and displays a widget to allow the user to set the parameters and specifications of the offset feature.

[0131] Figure 18 The results of the offset are shown, as well as the user's selection in the next iteration. Figures 15-16The function automatically provides its predictions again, and the user again selects the offset type and defines another offset, such as... Figure 19 As shown.

[0132] exist Figure 20 The above shows the results of the next iteration, where the user has selected one of the square geometry and offset features, as highlighted in the figure. The function again automatically provides multiple predictions, and the user selects the cross feature type, such as... Figure 21 As shown.

[0133] exist Figure 22 In the next iteration, the user selects the results of the cross features and the offset features. The function again automatically provides several predictions, and the user selects the sweep feature type, such as... Figure 23 As shown, the figure also displays a graphical widget for setting the sweep specifications.

[0134] Figure 24 The diagram illustrates the sweep and its results in the next iteration, as well as the selection of offset features. The function again automatically provides multiple predictions, and the user selects the type of cross-feature, such as... Figure 25 As shown.

[0135] Figures 14 to 25 Only a few iterations within a larger CAD feature tree design sequence are shown, which includes many more iterations and eventually leads to a complete CAD model representing a manufacturable mechanical part. In other words, the usage method (i.e., repeated iterations) can be performed until a complete CAD model representing a manufacturable mechanical part is obtained. However, these figures have already demonstrated the ergonomic advantages offered by the proposed method: each time the user selects one or more geometries to add a new CAD feature, the user only needs to select the next CAD feature from a limited list of possible options (only 5 choices in the figure), rather than having to go through, for example... Figure 1 The method avoids navigating complex menus as shown in the diagram. Therefore, it objectively reduces user eye strain and the amount of user-machine interaction (e.g., clicks or touches) required to select features (without having to navigate complex menus). Once a feature is selected, its parameters and specifications are routinely set using widgets similar to or identical to those in existing CAD solutions (e.g., CATIA), thus offering no ergonomic advantages or reducing the number of clicks. However, this method objectively provides these advantages each time a new feature is selected.

[0136] The learning method and the usage method can be integrated into the same computer-implemented process, which includes executing the method and then executing the usage method. This process, either the usage method or integrating both methods, can be part of a design and manufacturing process, wherein the usage method is executed until a complete CAD model representing the manufacturable mechanical part is obtained. The design and manufacturing process can then include using the CAD model to manufacture the part. Using the CAD model to manufacture the part can include one or more of the following:

[0137] - Store the CAD model as a CAD specification, such as in a data file (e.g., a CAD file), or as distributed data available on one or more storage devices, which can be translated into manufacturing instructions to control and / or set up manufacturing processes and / or machines for manufacturing mechanical parts;

[0138] - Convert CAD specifications or CAD models into CAM specifications, such as storing them as CAM files or CAM distributed data, to control and / or set up manufacturing processes and / or machines for manufacturing mechanical parts;

[0139] - Manufacturing mechanical parts based on CAD models / specifications or CAM specifications.

[0140] "Designing and manufacturing a product / mechanical component / mechanical product" refers to any action or series of actions that are at least part of a process for refining the modeling object (3D or 2D) of the product / mechanical component / mechanical product. Therefore, the method can form such a process, or at least part of a process as described above.

[0141] Therefore, this method typically manipulates modeling objects, such as feature trees and / or their (B-rep) visual representations as described above. A modeling object is any object defined by data, for example, stored in a database. By extension, the term "modeling object" specifies the data itself. Depending on the type of system, modeling objects can be defined by different types of data. This system can actually be any combination of CAD, CAE, CAM, PDM, and / or PLM systems. In those different systems, modeling objects are defined by the corresponding data. Therefore, references to CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, and CAE data are possible. However, these systems are not mutually exclusive, as modeling objects can be defined by data corresponding to any combination of these systems. Therefore, a system can be a CAD system, CAE system, PLM system, and / or CAM system, as is evident from the definitions of these systems provided below.

[0142] CAD solutions (such as CAD systems or CAD software) also refer to any system, software, or hardware that is at least suitable for designing modeling objects based on a graphical representation and / or a structured representation (such as a feature tree) of the modeling object (such as CATIA). In this context, the data defining the modeling object includes data that allows the modeling object to be represented. A CAD system may provide a representation of a CAD modeling object, for example, using edges or lines (and in some cases, faces or surfaces). Lines, edges, or surfaces can be represented in various ways (e.g., non-uniform rational B-splines, NURBS). Specifically, a CAD file contains specifications from which geometry can be generated, which in turn allows for the generation of representations. The specifications of a modeling object can be stored in a single CAD file or multiple CAD files. The typical size of a file representing a modeling object in a CAD system is in the range of one megabyte per part. A modeling object may typically be an assembly consisting of thousands of parts. The specifications of a CAD model (also known as "CAD specifications") can be stored in a CAD file as described above, but can also be stored as distributed CAD data on one or more storage devices (i.e., in a cloud environment).

[0143] In the context of CAD, modeling objects can typically be 2D or 3D modeling objects, such as representing products (e.g., parts or assemblies of parts) or assemblies that may represent products. 2D or 3D modeling objects can be manufactured products (i.e., products to be manufactured). A "3D modeling object" refers to any object modeled using data that allows for its 3D representation. 3D representation allows viewing a part from various angles. For example, when 3D represented, a 3D modeling object can be manipulated and rotated around any of its axes or around any axis on the screen where the representation is displayed. This clearly excludes 2D icons that are not 3D modeled. The display of 3D representations facilitates design (i.e., increases the speed at which designers can statistically complete their tasks). This accelerates the manufacturing process in industry, as product design is part of the manufacturing process.

[0144] 2D or 3D modeling objects can represent the geometry of a product that will be manufactured in the real world after its virtual design has been completed using, for example, CAD / CAE software solutions or CAD / CAE systems. This could include (e.g., mechanical) components or assemblies of components (or equivalently, assemblies of components, since from a methodological perspective, assemblies of components can be considered as the components themselves, or the method can be applied independently to each component of the assembly), or more generally, any rigid body assembly (e.g., a moving mechanism). CAD / CAE software solutions allow for the design of products in a wide and limitless range of industrial sectors, including: aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, and marine and / or offshore oil / gas production or transportation. Therefore, the 3D model objects involved in this method can represent industrial products, which can be any mechanical component, such as parts of land vehicles (including, for example, automobiles and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, trains), parts of aircraft (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, space equipment), parts of maritime transport vehicles (including naval equipment, merchant ships, marine equipment, yachts and workboats, marine equipment), general mechanical components (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installation equipment, industrial equipment products, processed metal products, tire manufacturing products), electromechanical or electronic components (including, for example, consumer electronics products, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer goods (including, for example, furniture, home and garden products, leisure goods, fashion products, products of hard goods retailers, products of soft goods retailers), and packaging (including, for example, food and beverage packaging, as well as tobacco, beauty and personal care, and household product packaging).

[0145] CAD systems can be history-based. In this case, the modeling object is further defined by historical data including geometric features. The modeling object can indeed be designed by a natural person (i.e., a designer / user) using standard modeling features (e.g., extrusion, revolve, cut, and / or rounding) and / or standard surface features (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CAD systems that support this modeling capability are history-based systems. This means that the creation history of design features is typically maintained through a non-cyclic data stream that links the geometric features together via input and output links. The history-based modeling paradigm has been well-known since the 1980s. The modeling object is described by two persistent data representations: history and B-rep (i.e., boundary representation). The B-rep is the result of calculations defined in the history. When representing the modeling object, the shape of the part displayed on the computer screen is the B-rep (e.g., a tessellation of B-rep). The part's history is the design intent. Essentially, the history collects information about the operations the modeling object has undergone. The B-rep can be maintained along with the history to make it easier to display complex parts. History can be preserved along with B-rep so that design changes to components can be made according to design intent.

[0146] A PLM system also refers to any system adapted for managing modeled objects representing physically manufactured products (or products to be manufactured). In a PLM system, modeled objects are thus defined by data applicable to the manufacture of the physical object. These can typically be dimensional values ​​and / or tolerance values. Having such values ​​is indeed better for correctly manufacturing the object.

[0147] CAE solutions also refer to any solution (software or hardware) applicable to analyzing the physical behavior of a modeled object. A well-known and widely used CAE technique is the Finite Element Model (FEM), which will be equivalently referred to as a CAE model below. FEMs typically involve dividing the modeled object into elements (i.e., finite element meshes) that can be used to calculate and simulate these physical behaviors through equations. Such CAE solutions are provided by Dassault Systèmes under the SIMULIA® trademark. Another evolving CAE technique involves modeling and analyzing complex systems composed of multiple components from different physical domains without CAD geometry data. CAE solutions allow for the simulation of products to be manufactured, enabling optimization, improvement, and validation. Such CAE solutions are provided by Dassault Systèmes under the DYMOLA® trademark. CAE can be used to ensure that various structural requirements (such as, but not limited to, mass, stiffness, strength, and durability) are met through new CAD models. Some of these requirements may be referred to as Key Performance Indicators (KPIs). For many industrial products (e.g., automobiles, aircraft, consumer packaging, high-tech), these KPIs are conflicting; for example, lighter mass often results in lower stiffness. Therefore, optimization methods are often used to find the best trade-off between KPIs.

[0148] A CAM solution refers to any solution (software or software) applicable to managing manufacturing data for a product. Manufacturing data typically includes data related to the product to be manufactured, the manufacturing process, and the resources required. CAM solutions are used to plan and optimize the entire manufacturing process of a product. For example, it can provide CAM users with information about feasibility, the duration of the manufacturing process, or the number of resources (e.g., a specific robot) that can be used at a particular step in the manufacturing process, allowing for decisions regarding management or required investment. CAM is a follow-up process to CAD processes and potential CAE processes. For example, a CAM solution can provide information on machining or forming parameters related to extrusion features provided in a CAD model. Such CAM solutions are provided by Dassault Systèmes under the trademarks CATIA, Solidworks, or DELMIA®.

[0149] 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 manufacture it. Designing a CAD model is the first step towards computer-aided manufacturing. Indeed, CAD solutions provide key functionalities such as feature-based modeling and boundary representation (B-Rep) to reduce the risk of errors and loss of accuracy during manufacturing processes using CAM solutions. In fact, the CAD model is intended for manufacturing. Therefore, it is a virtual twin of the object to be manufactured, also known as a digital twin, with two objectives:

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

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

[0152] PDM stands for Product Data Management. A PDM solution refers to any solution (software or hardware) suitable for managing all types of data related to a specific product. PDM solutions can be used by all stakeholders involved in the product lifecycle: primarily engineers, but also project managers, finance personnel, sales staff, and buyers. PDM solutions are typically based on a product-oriented database. It allows stakeholders to share consistent data about their products, thus preventing stakeholders from using conflicting data. Such PDM solutions are provided by Dassault Systèmes under the ENOVIA® trademark.

[0153] Any modeling object involved in these methods can be a CAD model, which includes a feature tree and, optionally, its B-rep, or consists of the feature tree and its optional B-rep. Such a model can originate from a CAE model and can originate from a CAE-to-CAD conversion process, which the method may include, for example, in the initial stage.

[0154] Any CAD model described herein is feature-based (e.g., it includes a feature tree and, optionally, a corresponding B-rep obtained by performing the feature tree). Feature-based 3D models allow for the detection and automatic resolution of geometric errors in the CAD model, such as conflicts affecting the manufacturing process, as discussed below during the determination of manufacturing files, CAM files, or CAM specifications as distributed data storage. Conflicts are, for example, due to the interpenetration between two parts of the 3D model due to relative motion. Furthermore, sometimes such conflicts can be detected solely through finite element analysis of the CAD feature-based model. Therefore, conflict resolution can be performed either iteratively by modifying the parameters of the features and performing finite element analysis, either in conjunction with or automatically through the CAD solution.

[0155] As another example, feature-based 3D models allow for the automated creation of toolpaths for machines via computer numerical control (CNC), for instance, during the determination of manufacturing files, CAM files, or CAM specifications as distributed data storage, as discussed below. With CNC, each object to be manufactured receives a customized computer program, which is stored in and executed by the machine control unit, a microcomputer attached to the machine. This program contains the instructions and parameters that the machine tool will follow. Milling machines, lathes, planers, grinders, and lasers are common examples of machine tools whose operation can be automated via CNC.

[0156] A key feature of CAD models is that they can be precisely and explicitly designed and edited by modifying their advanced parameters through a linking of a small number of high-level parametric design operations (including but not limited to sketching, extrusion, and chamfering). This is a key difference from polyhedral representations (such as triangular surface meshes), which can represent any 3D shape but do not offer the modification or parametric capabilities required in an industrial design environment.

[0157] Because CAD models are parametric models of parts / products, they have a smaller memory footprint than other models, such as CAE models. In fact, CAD models allow for the storage of lists of features and parameters, rather than collections of discrete geometric elements like finite element methods, resulting in a smaller storage and memory footprint. Therefore, working with CAD models reduces the memory requirements of the underlying system compared to, for example, CAE models, and also facilitates model editability. This means that the CAE to CAD conversion process effectively compresses the CAE model into a CAD model, which is lighter in terms of memory requirements (e.g., footprint) in addition to converting the CAE model into a more easily editable CAD model.

[0158] Custom computer programs can be automatically generated from CAD files or distributed CAD specifications. Therefore, this generation can be error-proof and ensures that the CAD model is perfectly replicated in the manufactured product. CNC is considered to offer higher precision, complexity, and repeatability than manual machining. Other benefits include greater precision, speed, and flexibility, as well as the ability to perform contour machining, which allows milling of contour shapes (including shapes generated in 3D designs).

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

[0160] B-Rep comprises topological entities and geometric entities. Topological entities are: faces, edges, and vertices. Geometric entities are 3D objects: surfaces, planes, curves, lines, and points. By definition, a face is a bounded portion of a surface, called a supporting surface. An edge is a bounded portion of a curve, called a supporting curve. A vertex is a point in 3D space. The relationships between them are as follows: The bounded portion of a curve is defined by two points (vertices) on the curve. The bounded portion of a surface is defined by its boundary, which is a set of edges on the surface. The boundaries of the edges of a face are connected by sharing vertices. Faces are connected by sharing edges. If two faces share an edge, they are adjacent. Similarly, if two edges share a vertex, the two edges are adjacent. In CAD systems, B-Rep collects "bounded by..." relationships, relationships between topological entities and supporting geometries, and mathematical descriptions of the supporting geometries in an appropriate data structure. The inner edges of a B-Rep are edges that are shared by exactly two faces. By definition, boundary edges are not shared and only constrain one face. By definition, a boundary face is defined by at least one boundary edge. A B-Rep is said to be closed if all its edges are interior edges. A B-Rep is said to be open if it contains at least one boundary edge. Closed B-Reps are used to model thick 3D volumes because they define the (virtual) interior space surrounding the material. Open B-Reps are used to model 3D skins, which represent 3D objects whose thickness is small enough to be ignored.

[0161] A key advantage of B-Rep over any other representation type used in CAD modeling is its ability to accurately represent arbitrary shapes. All other representations in use, such as point clouds, distance fields, and meshes, approximate the shape to be represented through discretization. B-Rep, on the other hand, contains surface equations representing an accurate design, thus forming a true "master model" for further manufacturing, whether for toolpath generation for CNC or for discretizing to the correct sample density for a given 3D printer technology. In other words, by using B-Rep, a 3D model can be an accurate representation of the object being manufactured. B-Rep is also advantageous for simulating the behavior of 3D models. For stress, thermal, electromagnetic, or other analyses, it supports local refinement of the simulation mesh to capture physical phenomena, and for kinematics, it supports realistic contact modeling between curved surfaces. Finally, B-Rep allows for a small memory and / or file footprint. First, because the representation contains surfaces based solely on parameters. In other representations such as meshes, the equivalent surface comprises up to thousands of triangles. Second, because B-Rep does not contain any history-based information.

[0162] This method can be included in a production / manufacturing process, as discussed below, which may include producing a physical product corresponding to a modeled object designed through (and particularly using) this method after the method is executed. The production process may include the following steps:

[0163] - (For example, automatically) apply the method or use the method to obtain a CAD model output by the use method as described above;

[0164] - Use the obtained CAD model to manufacture parts / products.

[0165] Manufacturing using a CAD model specifies any real-world action or series of actions involved in the manufacturing of the product / part represented by the CAD model. For example, manufacturing using a CAD model may include one or more of the following steps:

[0166] - Edit the obtained CAD model;

[0167] - Perform simulations based on CAD models or corresponding CAE models (e.g., the CAE model from which the CAD model originates after a CAE-to-CAD conversion process), such as simulations for verifying mechanical, usage and / or manufacturing characteristics and / or constraints (e.g., structural simulations, thermodynamic simulations, aerodynamic simulations).

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

[0169] - Optionally (i.e., depending on the manufacturing process used, the production of the mechanical product may or may not include this step), manufacturing specifications / / CAM specifications (e.g., stored as manufacturing files / CAM files or distributed CAM data stored on one or more storage devices (e.g., including manufacturing instructions for manufacturing the product represented by the CAD model and / or control instructions for manufacturing processes and / or commanding its manufacturing processes or manufacturing tools) (e.g., control instructions derived from CAD files or distributed CAD data storing CAD models and / or specifications of CAD models) are determined for the production / manufacturing of the product;

[0170] - Considering the manufacturing of products represented by CAD models, send CAD specifications and / or manufacturing specifications / CAM specifications to the factory; and / or

[0171] - (e.g., automatically) produce / manufacture mechanical products initially represented by the model output by the method, based on determined manufacturing / CAM specifications or CAD models. This may include (e.g., automatically) feeding manufacturing / CAM specifications and / or CAD specifications to the machines performing the manufacturing process.

[0172] This final step in production / manufacturing can be referred to as the manufacturing step or production step. For example, this step manufactures / produces parts / products based on the CAD model and / or CAM specifications when the CAD model and / or CAD specifications are fed to one or more manufacturing machines or computer systems controlling those machines. The manufacturing step may include performing any known manufacturing process or a series of manufacturing processes, such as one or more additive manufacturing steps, one or more cutting steps (e.g., laser cutting or plasma cutting steps), one or more stamping steps, one or more forging steps, one or more bending steps, one or more deep drawing steps, one or more molding steps, one or more machining steps (e.g., milling steps), and / or one or more stamping steps. Because the design methodology improves the design of the model (CAE or CAD) representing the part / product, manufacturing and its productivity are also improved.

[0173] Editing a CAD model can include executing one or more versions of the CAD model by a user (i.e., a designer), for example, by using a CAD solution. Modifications to a CAD model can include one or more modifications to each of the geometry and / or parameters of the CAD model. Modifications can include any or a series of modifications performed on the model's feature tree (e.g., modifications to feature parameters and / or specifications) and / or modifications performed on the CAD model's display representation (e.g., B-rep). Modifications that maintain the technical function of the part / product, i.e., modifications made by the user that may affect the model's geometry and / or parameters, but only to make the CAD model technically more suitable for the downstream use and / or manufacturing of the part / product. Such modifications may include any or a series of modifications to make the CAD model technically suitable for the specifications of the machines used in the downstream manufacturing process. Such modifications may additionally or alternatively include any or a series of modifications to make the CAD model technically suitable for further use after the product / part is manufactured, such modifications or series of modifications being based, for example, on simulation results.

[0174] CAM specifications can include a manufacturing setup model obtained from a CAD model. The manufacturing setup can include all the data required to manufacture the mechanical product (e.g., control instructions for controlling the manufacturing process), giving it a corresponding geometry and / or material distribution captured by the CAD model, which may be within manufacturing tolerances. Determining production specifications can include applying any CAM (Computer-Aided Manufacturing) or CAD-to-CAM solution to (e.g., automatically) determine production specifications from the CAD model (e.g., any automated CAD-to-CAM conversion algorithm). Such CAM or CAD-to-CAM solutions can include one or more software solutions capable of automatically generating manufacturing instructions and toolpaths for a given manufacturing process based on a CAD model of the product to be manufactured:

[0175] Fusion 360

[0176] - FreeCAD

[0177] - CATIA,

[0178] - SOLIDWORKS,

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

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

[0181] - Dassault Systèmes Powder Bed Machine Programmer, as shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer.

[0182] The product / part can be an additively manufactured part, i.e., a part manufactured through additive manufacturing (i.e., 3D printing). In this case, the production process does not include the step of determining CAM specifications, but instead proceeds directly to the production / manufacturing step by feeding the CAD model directly (e.g., automatically) to the 3D printer. The 3D printer is configured to 3D print the mechanical product directly and automatically based on the CAD model when it is fed (e.g., when 3D printing is initiated by the 3D printer operator). In other words, the 3D printer receives (e.g., automatically) the CAD model fed to it, reads (e.g., automatically) the CAD model, and prints (e.g., automatically) the part by adding material (e.g., layer by layer) together to reproduce the geometry and / or distribution of the material captured by the CAD model. The 3D printer adds material to thereby reproduce the geometry and / or distribution of the material captured by the CAD model with virtually accurate reproduction within the resolution of the 3D printer, and optionally with or without tolerance error and / or manufacturing corrections. The manufacturing process may include determining such manufacturing correction values ​​and / or tolerance values ​​for errors, for example, by the user (e.g., the operator of the 3D printer) or automatically (by the 3D printer or the computer system controlling it), such as by modifying the CAD specifications to match the specifications of the 3D printer. The production process may additionally or alternatively include determining the printing orientation from the CAD model (e.g., automatically determined by the 3D printer or the computer system controlling it), for example, to minimize overhang volume (as described in European Patent No. 3327593, which is incorporated herein by reference), layer slicing (i.e., determining the thickness of each layer), and the layer-by-layer path / trajectory of the 3D printer head, and other characteristics (e.g., for the laser beam, such as path, speed, intensity / temperature, and other parameters).

[0183] The product / part can also be a machined part (i.e., a part manufactured by machining), such as a milled part (i.e., a part manufactured by milling). In this case, the production process may include a step of determining CAM specifications. This step can be performed automatically by any suitable CAM solution to automatically obtain CAM specifications from the CAD model of the machined part. Determining CAM specifications may include (e.g., automatically) checking the CAD model for any geometric peculiarities (e.g., errors or artifacts) that may affect the production process, and (e.g., automatically) correcting these peculiarities. For example, if the CAD model still includes sharp edges (because machining or milling tools cannot create sharp edges), CAD model-based machining or milling may not be performed. In this case, determining CAM specifications may include (e.g., automatically) rounding or chamfering these sharp edges (e.g., with a circle or chamfer radius corresponding to the cutting head radius of the machining tool (e.g., substantially equal within tolerance tolerance)), so that CAD model-based machining or grinding can be performed. More generally, CAM specification determination can automatically include rounding or chamfering of geometry within the CAD model that is incompatible with the radii of machining or milling tools to enable machining / milling. As mentioned earlier, this checking and possible corrections (e.g., rounding or chamfering of geometry) can be performed automatically, but can also be manually corrected by the user (e.g., a machining engineer) to ensure the CAD model conforms to the specifications of the tools used in the machining process.

[0184] In addition to inspection, determining CAM specifications may include (e.g., automatically) determining the machining or milling path, i.e., the path used by a machining tool to process the product. The path may include a set of coordinates and / or parametric trajectories followed by the machining tool for machining, and determining the path may include (e.g., automatically) calculating these coordinates and / or trajectories based on a CAD model. This calculation may be based on the calculation of the boundaries of a Minkowski subtraction of the CAD model through the CAD model representation of the machining tool, as discussed in, for example, European patent application EP21306754.9 filed by Dassault Systèmes on December 13, 2021, which is incorporated herein by reference. It should be understood that the path may be a single path, e.g., the tool follows continuously without interrupting contact with the material to be cut. Alternatively, the path may be a series of sub-paths followed by the tool in a specific order, e.g., the tool follows each sub-path continuously without interrupting contact with the material to be cut. Optionally, determining the CAM specifications may then include (e.g., automatically) setting machine parameters, including cutting speed, cutting / piercing height, and / or mold opening stroke, for example, based on the determined path and machine specifications. Optionally, determining the CAM specifications may then include (e.g., automatically) configuring nesting, wherein the CAM solution determines the optimal orientation of the part to maximize machining efficiency.

[0185] In the case of machining or milling parts, the determination of CAM specifications thus results in and outputs CAM specifications, which include machining paths and optionally nested machine parameters and / or specifications. The output CAM specifications can then be fed (e.g., directly and automatically) to machining tools and / or programmed by reading the specifications. Subsequently, the production process includes production / manufacturing steps where the machine machine the product according to the production specifications (e.g., by directly and automatically executing the production specifications). The machining process involves the machining tools cutting actual blocks of material to reproduce, for example, the geometry and / or distribution of the material captured by the CAD model within tolerances (e.g., tens of micrometers for milling).

[0186] The product / part can alternatively be a molded part, i.e., a part manufactured by molding (e.g., injection molding). In this case, the production process may include a step of determining CAM specifications. This step can be performed automatically by any suitable CAM solution to automatically obtain CAM specifications from the CAD model of the molded part. Determining CAM specifications may include (e.g., automatically) performing a series of molding checks based on the CAD model to check whether the geometry and / or distribution of the material captured by the CAD model is suitable for molding; and (e.g., automatically) performing appropriate corrections if the CAD model is not suitable for molding. Performing checks and appropriate corrections (if any) may be performed automatically or alternatively by the user (e.g., a molding engineer), for example using a CAD and / or CAM solution that allows the user to perform appropriate corrections to the CAD model but constrains his / her corrections to make the CAD model conform to the specifications of the molding tool. Checks may include: verifying that the virtual product represented by the CAD model is dimensionally consistent with the mold, and / or verifying that the CAD model includes all demolding angles required to demold the product, as known from the molding process itself. Determining the CAM specification may also include determining the amount of liquid material to be molded and / or the time for the liquid material to harden / solidify within the mold based on the CAD model, and outputting the CAM specification including these parameters. The production process then includes (e.g., automatically) performing molding based on the output specification, wherein the mold shapes the liquid material into a shape corresponding to the geometry and / or distribution of the material captured by the CAD model within a determined hardening time (e.g., within tolerances, such as within a draft angle introduced for demolding or a modified draft angle)).

[0187] The product / part can be an alternative stamped part, also known as a "stamped part," i.e., a part manufactured during the stamping process. In this case, the production process may include (e.g., automated) determining CAM specifications based on a CAD model. The CAD model represents the stamped part; for example, if the part is to include flanges, there may be one or more flanges. In the latter case, additional material may be removed to form the unfolded state of one or more flanges of the part, as is known from the stamping itself. Therefore, the CAD model includes portions representing the part without flanges (in some cases, the entire part), and external additional patch portions that may represent flanges (if any), where there may also be additional material (if any). This additional patch portion may exhibit g2 continuity over a certain length and then g1 continuity over a certain length.

[0188] In this stamping scenario, determining the CAM specifications may include (e.g., automatically) determining stamping press parameters, such as the dimensions of the stamping die or punch and / or stamping force, based on the geometry and / or material distribution of the virtual product captured from the CAD model. If the CAD model also includes a representation of the additional 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 by machining, for example, and determining the CAM specifications may also include determining the corresponding machining CAM file, such as as previously described. If one or more flanges are present, determining the CAM specifications may include determining the geometric specifications of the g2 continuity and g1 continuity portions, which allow the flanges to be folded toward the inner surface of the stamped part and along the g2 continuity length during the folding process, after the stamping itself and after the removal of the additional material. Therefore, the CAM specifications thus determined may include: parameters of the stamping tool, optionally the specifications for folding the flanges (if any), and optionally the machining production specifications for removing the additional material (if any).

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

[0190] This method is implemented by a computer. This means that the steps (or essentially all steps) of the method are executed by at least one computer or any similar system. Therefore, the execution of the steps by a computer may be fully automatic or semi-automatic. In the example, the triggering of at least some steps of the method can be performed through user-computer interaction, such as for example, for use with the method. The required level of user-computer interaction can depend on the expected level of automation and be balanced with the need to fulfill the user's wishes. In the example, this level can be user-defined and / or predefined.

[0191] A typical example of a computer implementation of a method is to execute the method using a system suitable for this purpose. This system may include a processor coupled to memory and a graphical user interface (GUI), on which a computer program containing instructions for executing the method is stored. The memory may also store a database. The memory is any hardware suitable for such storage and may comprise several physically distinct parts (e.g., one for the program, and perhaps one for the database).

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

[0193] The client computer in this example includes a central processing unit (CPU) 1010 connected to an internal communication bus 1000, and random access memory (RAM) 1070 also connected to the bus. The client computer also includes a graphics processing unit (GPU) 1110 associated with video RAM 1100 connected to the bus. The video RAM 1100 is also referred to in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices, such as a hard disk drive 1030. Mass storage devices suitable for tangibly representing computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor storage devices such as EPROM, EEPROM, and flash memory devices; disks such as internal hard disks and removable disks; and magneto-optical disks. Any of the above may be supplemented or incorporated by a specially designed application-specific integrated circuit (ASIC). A network adapter 1050 manages access to a network 1060. The client computer may also include a haptic device 1090, such as a cursor control device, a keyboard, etc. A cursor control device is used on the client computer to allow the user to selectively position the cursor at any desired location on the display 1080. Furthermore, the cursor control device allows the user to select various commands and input control signals. This cursor control device includes multiple signal generating devices for inputting control signals to the system. Typically, the cursor control device can be a mouse, with mouse buttons used to generate signals. Alternatively or additionally, the client computer system may include a sensitive board and / or a sensitive screen.

[0194] A computer program may include computer-executable instructions, which include means for causing the system to perform the method. The program may be recorded 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 means, for example, tangibly embodied in a machine-readable storage device for use in a product executed by a programmable processor. The method steps may be executed by a programmable processor that executes the program of instructions to perform the function of the method by manipulating input data and generating output. Thus, the processor may be programmable and coupled to receive data and instructions from the data storage system, at least one input device, and at least one output device, and to send data and instructions to the data storage system, at least one input device, and at least one output device. The application program can be implemented in a high-level procedural or object-oriented programming language, or, if desired, in assembly or machine language. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. The application of the program on the system in any case results in instructions for performing the method. Alternatively, the computer program can be stored and executed on a server in a cloud computing environment that communicates with one or more clients across a network. In this case, the processing unit executes the instructions included in the program, thereby enabling the method to execute on the cloud computing environment.

Claims

1. A computer-implemented method for performing machine learning on a function configured to predict the next CAD feature in a CAD feature tree, the method comprising: - A training dataset providing training examples, each training example including a graph representing at least a portion of a corresponding CAD feature tree, the graph comprising: o Nodes, each node representing a CAD feature of the corresponding CAD feature tree, each node is labeled with a label from a predetermined label list, and each label indicates the type of CAD feature in a predetermined set of CAD feature types; Each edge connects two nodes and represents the parent-child relationship between the CAD features represented by the two nodes in the corresponding CAD feature tree; and o Ground truth data, which indicates the next CAD feature predicted based on one or more selected CAD features, each selected CAD feature corresponding to a node of the graph; and - The function is trained based on the training dataset, the function being trained to take a graphic representing at least a portion of a CAD feature tree as input and output a prediction of one or more next CAD features in the CAD feature tree, each predicted next CAD feature belonging to a predetermined set of the CAD feature types.

2. The method according to claim 1, wherein, Each training example also includes data describing the global architecture of the corresponding CAD feature tree.

3. The method according to claim 2, wherein, The global data includes data describing the following items: - The number of CAD features in the corresponding CAD feature tree; - The number of the one or more selected CAD features, the next CAD feature will be based on the one or more selected CAD features; - Dimensional uniformity of the one or more selected CAD features; and / or - The number of different geometries of the corresponding CAD feature tree.

4. The method according to claim 2 or 3, wherein, The function is a neural network, which includes: - A graph neural network (GNN) configured to take an input graph representing at least a portion of a CAD feature tree as input and output an encoding of the input graph; - A linear encoder configured to encode the data describing the global architecture using global feature encoding; - A fusion module configured to output a fusion code corresponding to the fusion of the global feature code and the code of the input graphic; and - A classification module configured to take the fusion encoding as input and output a prediction of one or more next CAD features in the CAD feature tree.

5. The method according to any one of claims 1 to 4, wherein, Each node includes node attributes that describe the geometric features of the geometry created by the CAD feature represented by the node.

6. The method according to any one of claims 1 to 5, wherein, The method includes forming the training dataset, wherein forming the training dataset includes: - Provide an initial set of graphics, each representing a corresponding complete CAD feature tree, wherein each graphic in the initial set includes: o nodes, each node representing a CAD feature of the corresponding complete CAD feature tree, each node being labeled with a tag from a predetermined tag list, each tag indicating the type of CAD feature in a predetermined set of CAD features; and Each edge connects two nodes and represents the parent-child relationship between the CAD features represented by the two nodes in the corresponding complete CAD feature tree; - For each graph in the initial set, a subgraph is extracted from the graph, each subgraph representing at least a portion of the corresponding CAD feature tree represented by the graph, and the subgraphs thereby form the training example.

7. The method according to claim 6, wherein, The subgraphs have different depths.

8. The method according to claim 6 or 7, wherein, The formation of the training dataset also includes: - Identify one or more groups, each of which has a topologically similar subgraph; - For each group, select a subgraph representing the group, and label the selected subgraph with the labels of the other subgraphs of the group; and - Remove the other subgraphs.

9. The method according to any one of claims 6 to 8, wherein, The initial set of the graphics provided includes: - Provides a collection of CAD feature trees; - Convert each CAD feature tree into a JSON file; and - For each JSON file, a graph of the initial set is formed based on the JSON file, the graph representing the corresponding CAD feature tree corresponding to the JSON file.

10. The method according to claim 9, wherein, Providing the initial set of graphics further includes: in each graphics of the initial set, removing nodes corresponding to CAD parameters, geometry not parameterized by CAD features, or pure B-rep elements.

11. A function capable of learning according to any one of claims 1 to 10.

12. A method of using a computer implementation of the function according to claim 11, the method comprising one or more iterations of the following: - Provides CAD feature tree; - The user graphically selects one or more CAD features in the CAD feature tree or one or more geometries created from the one or more CAD features; - By using the function, one or more next CAD features to be added to the CAD feature tree are predicted based on the user's selection, and a graphical representation of the predicted one or more CAD features is displayed to the user; as well as - The user selects the predicted CAD feature by graphically choosing a displayed graphical representation of the predicted CAD feature, thereby adding the CAD feature to the CAD feature tree. If there is more than one iteration, at each iteration, a CAD feature tree with user-selected CAD features is added to form the CAD feature tree provided for the next iteration.

13. A computer program comprising instructions that, when executed by a computer system, cause the computer system to perform the method according to any one of claims 1 to 10 and / or the method of use according to claim 12.

14. A computer-readable data storage medium having a computer program as claimed in claim 13 and / or a function as claimed in claim 11 recorded thereon.

15. A computer system comprising a processor coupled to a memory, the memory storing a computer program according to claim 13 and / or a function according to claim 11.

Citation Information

Patent Citations

  • Orientation of a real object for 3D printing

    EP3327593A1

  • 3D axis machining design

    EP4195088A1