Computer-implemented method, program, medium and system for machine learning classification function
Patent Information
- Application Number
- CN202610494754.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-04-15
- Filing Date
- 2026-04-15
- Publication Date
- 2026-10-30
AI Technical Summary
然而,在现有技术中,确定机械接口是缓慢且手动的过程,这个过程涉及用户的大量时间并且容易出错
Smart Images

Figure CN123013214A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer programs and systems, and more specifically to computer implementation methods, programs, media, and systems for machine learning classification functions. Background Technology
[0002] The market offers numerous systems and programs for the design, engineering, and manufacturing of objects. 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 simulating the physical behavior of future products. CAM, an acronym for Computer-Aided Manufacturing, refers to software solutions used for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play a crucial role in technical efficiency. These technologies can be embedded in Product Lifecycle Management (PLM) systems. PLM refers to a business strategy that spans the extended enterprise, helping companies share product data, apply common processes, and leverage enterprise knowledge to develop products from product conception to the end of their lifecycle. PLM solutions offered by Dassault Systèmes (traded as CATIA, ENOVIA, and DELMIA) provide an Engineering Hub for organizing product engineering knowledge, a Manufacturing Hub for managing manufacturing engineering knowledge, and an Enterprise Hub that integrates and connects the Engineering Hub and Manufacturing Hub. Together, the system provides an open object model that links products, processes, and resources to enable dynamic, knowledge-based product innovation and decision support, driving optimized product definition, manufacturing preparation, production, and service.
[0003] CAD models representing assemblies of mechanical parts typically include mechanical interfaces. The mechanical interfaces of a part's mechanical assembly indicate the interaction areas, such as contact areas, between the different mechanical parts included in the assembly. Accurate identification of mechanical interfaces ensures the accurate production of the mechanical parts included in the assembly with appropriate tolerances. However, in the prior art, determining mechanical interfaces is a slow and manual process, requiring significant user time and prone to errors.
[0004] In this case, an improved method is still needed to determine the mechanical interfaces of the mechanical components of the parts. Summary of the Invention
[0005] Therefore, a method for a computer-implemented classification function for machine learning is provided, the classification function being configured to detect mechanical interfaces of a CAD model. The CAD model represents a mechanical assembly of a part. The learning method includes: acquiring a training dataset comprising training samples. Each training sample includes a graph indicating local contacts between parts of the CAD model representing the mechanical assembly of the part. The graph includes one or more nodes. Each node represents a canonical surface of the CAD model. Each node includes a label. The label is one of the following list of labels: primary face of the mechanical interface, secondary face of the mechanical interface, tertiary face of the mechanical interface, sustaining face of the mechanical interface, and no interface. The graph also includes one or more inner edges. Each inner edge represents an inner connection between canonical surfaces represented by nodes connected by the edge. The canonical surfaces represent portions of the same part of the mechanical assembly. The graph also includes one or more outer edges. Each outer edge represents a contact between canonical surfaces represented by nodes connected by the edge. The canonical surfaces represent portions of different parts of the mechanical assembly. The learning method further includes: training a classification function based on the training dataset to classify each node of the graph indicating local contacts between parts of the CAD model representing the mechanical assembly of the part using the labels of the label list. In this disclosure, the method may be referred to as a "learning method".
[0006] Learning methods may include one or more of the following: Each graph included in the training dataset includes: Each node's node vector, wherein the node vector is a feature vector representing the attributes of the canonical surface represented by the node; The inner edge vector of each inner edge, wherein the inner edge vector is a feature vector representing the attribute of the inner connection represented by the edge; and / or The outer edge vector of each outer edge is a feature vector representing the attribute of the contact represented by the edge; The properties of the canonical surface, represented by each node vector, include: surface type, area, radius, orientation, material, or a combination of the above. The properties of the inner connection represented by each inner edge vector include: convexity, concavity, coplanarity, coaxiality, adjacent smoothness, presence of fillets, presence of chamfers, presence of connections other than fillets or chamfers, or a combination of the above. The properties of the contact represented by each outer vector include: contact, stacking, coaxiality, coplanarity, or a combination of the above; Obtaining the training dataset includes: Obtain an initial dataset including CAD models of mechanical components representing parts; and For each CAD model representing a mechanical assembly of parts in the initial dataset, determine one or more diagrams representing the corresponding local contacts between the parts of the part assembly; Obtaining the training dataset also includes: determining, for each CAD model in the initial dataset, a diagram representing the CAD model for each CAD model before determining the one or more diagrams representing the corresponding local contacts between parts of the part assembly for each CAD model, including: Determine the specification surfaces of the CAD model and generate nodes for each specification surface; Determine the inner connections between pairs of specification surfaces representing portions of the same part of the assembly represented by the CAD model, and generate inner edges for each pair of specification surfaces having inner connections; and Determine the contact between pairs of specification surfaces representing portions of different parts of the component represented by the CAD model, and generate an outer edge for each pair of contacting specification surfaces; Specifically, for each CAD model in the initial dataset, one or more diagrams representing the corresponding local contacts between parts of a part assembly are determined based on the determined diagrams representing the CAD model.
[0007] For each CAD model, determining one or more diagrams representing the corresponding local contacts between parts of the part assembly represented by the CAD model, based on the determined diagrams representing the CAD model, includes: Determine a sub-drawing representing the CAD model, the sub-drawing comprising: A set of nodes, including all nodes on the boundary of the defined graph that are outside any edge of the defined graph; and A set of inner and outer edges, including all inner and / or outer edges of the defined graph defined by the two nodes included in the set of nodes. Determine one or more connecting components of the subgraph; and For each connecting component of the sub-graph, a graph representing local contact between parts of the part assembly is determined, the graph including: One or more nodes, the one or more nodes including all nodes of the connecting component of the subgraph and all nodes that are 1 distance away from the connecting component of the subgraph; All inner edges of the graph adjacent to any node of the connecting component of the subgraph; and All outer edges of the connecting components of the sub-graph; Each specification surface is part of a plane, sphere, cone, torus, or cylinder. The classification function includes a graph neural network; and / or The classification function is further configured to form mechanical interfaces based on the output labels by regrouping adjacent specification surfaces corresponding to the primary surface, secondary surface, tertiary surface, and maintenance surface, wherein the specification surfaces represent parts of the same mechanical part.
[0008] It also provides a classification function obtainable according to the learning method, that is, a computer-implemented classification function with weights learned by the learning method. The provided classification function can, for example, have already been learned directly by the learning method, where the weights of the classification function have been determined by the learning steps of the learning method.
[0009] A method for using a machine learning classification function is also provided. This method includes acquiring one or more graphs, each graph indicating a corresponding local contact between parts of the same CAD model representing a mechanical assembly of parts. Each graph includes: one or more nodes. Each node represents a specification surface of the CAD model. Each graph also includes: one or more inner edges. Each inner edge represents an inner connection between specification surfaces represented by nodes connected by the edge. The specification surfaces represent portions of the same part of the mechanical assembly. Each graph also includes: one or more outer edges. Each outer edge represents a contact between specification surfaces represented by nodes connected by the edge. The specification surfaces represent portions of different parts of the mechanical assembly. The method further includes: applying the machine learning classification function to the one or more graphs. In this disclosure, the method may be referred to as the "method of use".
[0010] In the usage method, obtaining the one or more graphs may include: Obtain the CAD model; Determining the drawing representing the CAD model includes: Determine the specification surfaces of the CAD model, and generate nodes for each specification surface; and Determine the inner connections between pairs of specification surfaces representing portions of the same part of the assembly represented by the CAD model, and generate inner edges for each pair of specification surfaces having inner connections; and Determine the contacts between pairs of specification surfaces representing portions of the component as represented by the CAD model, and generate an outer edge for each pair of contacting specification surfaces. Determining one or more drawings representing corresponding local contacts between parts of a part assembly represented by the CAD model, including: Determine a sub-graph representing the CAD model, the sub-graph including: A set of nodes, including all nodes on the boundary of the drawing representing the CAD model that are outside any edge of the drawing representing the CAD model; and A set of inner and outer edges, including all inner and / or outer edges of the graph representing the CAD model, defined by two nodes included in the set of nodes; Determine one or more connecting components of the subgraph; and For each connecting component of the sub-graph, a graph representing local contact between parts of the part assembly is determined, the graph including: One or more nodes, the one or more nodes including all nodes of the connecting component of the subgraph and all nodes that are 1 distance away from the connecting component of the subgraph; All inner edges of the graph adjacent to any node of the connecting component of the subgraph; and All outer edges of the connecting components of the sub-graph; The method further includes: collecting the results of applying the function to the one or more graphs by labeling the nodes of the graphs representing the graphs of the CAD model with the labels output by the function for each graph in the one or more graphs.
[0011] A computer program including instructions for performing learning methods and / or usage methods is also provided.
[0012] An apparatus including a data storage medium on which computer programs and / or classification functions are recorded is also provided.
[0013] The device can be formed or used as a non-transitory computer-readable medium, such as on SaaS (Software as a Service) or other server or cloud-based platforms. The device may alternatively include a processor coupled to the data storage medium. Therefore, the device can form wholly or partially of 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
[0014] A non-limiting example will now be described with reference to the accompanying drawings, in which: Figures 1 to 59 The method is shown.
[0015] Figure 60 An example of the system is shown. Detailed Implementation
[0016] A method for a computer-implemented classification function for machine learning is proposed, configured to detect mechanical interfaces of a CAD model. The CAD model represents a mechanical assembly (or equivalently, a mechanical part assembly) of a part. The learning method involves: acquiring a training dataset including training samples. Each training sample includes a graph representing local contacts between parts of the CAD model, which represents the mechanical assembly of the part. The graph includes one or more nodes. Each node represents a canonical surface of the CAD model. Each node includes a label. The label is one of the following: primary face of the mechanical interface, secondary face of the mechanical interface, tertiary face of the mechanical interface, sustaining face of the mechanical interface, and no interface. The graph also includes one or more inner edges. Each inner edge represents an internal connection between canonical surfaces represented by nodes connected by that edge. Canonical surfaces represent portions of the same part of the mechanical assembly. The graph also includes one or more outer edges. Each outer edge represents a contact between canonical surfaces represented by nodes connected by that edge. These canonical surfaces represent portions of different parts of the mechanical assembly. The learning method also includes training a classification function based on a training dataset to classify each node of a graph representing local contact between parts in a CAD model that represents the mechanical components of the parts, using the labels of a label list.
[0017] In this disclosure, a mechanical assembly of a part is a collection of two or more mechanical parts interconnected to form an integrated system. That is, each mechanical part is operatively connected to at least one other part, such that the assembly serves as a unified structure, wherein the connection can be fixed (e.g., by mechanical fasteners such as bolts or screws) or movable. A CAD model representing the mechanical assembly of the part is a digital representation of the assembly, including a digital representation of each mechanical part constituting the assembly (e.g., the parts in the CAD model). It is noteworthy that the digital representation includes depictions of connections and contacts, such that it can be said that, for example, a depiction of the contact between two parts in the CAD model corresponds to the parts of the assembly that are in contact with each other.
[0018] As will be explained in detail below, the mechanical interface of a CAD model representing a part of a mechanical assembly is a set of specification surfaces (e.g., portions of predetermined or specification surfaces) associated with individual parts of the assembly represented by the CAD model (e.g., outer surfaces). The mechanical interface specifies the interaction area between the part and other parts of the mechanical assembly that make up the part represented by the CAD model (e.g., between parts). The mechanical interface can specify areas with detailed tolerances to be produced.
[0019] Figure 1 , Figure 2A , Figure 2B and Figure 2CAn example of a mechanical assembly including a mechanical interface is shown, each mechanical assembly comprising several mechanical parts. Each specification surface included in the mechanical interface is shown with a corresponding shading line corresponding to the primary surface, secondary surface, tertiary surface, maintenance surface, and no-interface (label list) category of the mechanical interface. Specifically, the shading line associated with label "0" corresponds to the specification surface without an interface. The shading line associated with label "1" corresponds to the specification surface of the primary surface. The shading line associated with label "2" corresponds to the specification surface of the secondary surface. The shading line associated with label "3" corresponds to the specification surface of the tertiary surface. The shading line associated with label "4" corresponds to the specification surface of the maintenance surface.
[0020] In this disclosure, a CAD model representing a mechanical product (e.g., a single mechanical part or a mechanical assembly of parts) can be two-dimensional or three-dimensional, representing the outer surface of the mechanical product (in the two-dimensional case) or the mechanical product itself (in the three-dimensional case). The term "part of a CAD model" as used herein refers to either "a surface portion of the CAD model" (in the two-dimensional case) or "a portion of the outer surface of the CAD model" (in the three-dimensional case). Therefore, a part of a CAD model as used herein always includes two-dimensional surfaces included in the CAD model. A part of a CAD model can be connected or unconnected (as a surface, in a standard mathematical sense). It is noteworthy that any mechanical interface herein can include unjoined surfaces that share an inner connection (or equivalently, an inner connection type) with each other, an inner connection being one of a list, including but not limited to adjacent, as will be explained in detail below. Each CAD model (or corresponding outer surface) can be divided into multiple parts, each part being a surface with boundaries. For example, a CAD model can include a B-rep, which includes vertices, edges, and faces. A part of a CAD model can be, for example, a portion of the faces of a B-rep, faces, or a collection of faces (e.g., adjacent faces). Similarly, when referring to a "zone," it always means a two-dimensional part, corresponding to the outer surface of a mechanical part represented by a CAD model.
[0021] For any CAD model in this disclosure, a specification surface of the CAD model is a portion of the CAD model that corresponds to one of the specification surfaces (e.g., has affine isomorphism). A specification surface is a surface that can support a contact area between mechanical parts. A specification surface can be, for example, a plane, a sphere, a cone, a torus, or a cylinder. Each CAD model (or the outer surface of the CAD model) can be decomposed into one or more specification surfaces and freeform surfaces, i.e., portions of the CAD model that are not one of the specification surfaces. For example, a portion of the CAD model can be a chamfer or fillet that is not part of any specification surface.
[0022] Figure 3 The standard surface is shown.
[0023] In this paper, the interaction zone of mechanical parts within a mechanical assembly of a part can be a region of the mechanical parts that has a functional role within the mechanical assembly of the part. This functional role could be, for example, reducing the degrees of freedom of the mechanical assembly of the part or holding the mechanical assembly of the part together. The interaction zone can be part of a mechanical part, wherein the mechanical part, for example, contacts, stacks on, or interacts with other mechanical parts of the assembly. The interaction zone can be used to facilitate movement, force transmission, or perform functional operations within the mechanical assembly of the part.
[0024] It is worth noting that the mechanical interface of a CAD model representing a mechanical assembly of a part is a collection of specification surfaces of individual parts of the mechanical assembly. These specification surfaces correspond to the interaction areas between the part and other parts of the mechanical assembly that constitute the part. Specifically, the specification surfaces including the mechanical interface may each have (e.g., different) functional roles, such as reducing the degrees of freedom of the mechanical assembly of the part or holding the mechanical assembly of the part together.
[0025] For example, the mechanical components of a part can be a bolt and a nut. In the mechanical components of the part, the nut can be tightened onto the bolt. Therefore, the thread of the bolt can contact the threaded hole of the nut, which reduces the degrees of freedom of the mechanical components of the part because the nut is thus connected to the bolt. Therefore, the surface of the CAD model representing the thread of the bolt is included in the mechanical interface.
[0026] In this disclosure, any mechanical interface of a CAD model representing a mechanical assembly of a part may include a set of specification surfaces of the same part of the assembly, and these specification surfaces are internally connected to each other. Specifically, the internal connection between two specification surfaces of the CAD model may correspond to the adjacency, coplanarity, and / or coaxiality of the two specification surfaces within the same mechanical part. Additionally or alternatively, the internal connection between two specification surfaces of the CAD model may correspond to the separation between two specification surfaces within the same mechanical part, including fillets, chamfers, and / or another non-specific surface. In particular, the mechanical interface may include a set of specification surfaces connected relative to the internal connections defined above. That is, for any pair of specification surfaces included in the mechanical interface, there may be a way of passing from any specification surface to any other specification surface, such a way of passing from a specification surface to a specification surface internally connected therebetween within the mechanical interface each time.
[0027] It should be understood that the mechanical interface of the CAD model representing the mechanical components of a part corresponds to the associated mechanical interface of that part's mechanical components. Therefore, it can be said that the mechanical interface of the CAD model or the mechanical interface of the associated mechanical components of the part are corresponding concepts.
[0028] In the mechanical interface of a CAD model representing a part's mechanical assembly, each specification surface is classified according to its function into one of the following lists: primary surface, secondary surface, tertiary surface, or retaining surface of the mechanical interface. The classification can correspond to the associated functional role of each specification surface.
[0029] Primary / secondary / tertiary / maintaining surfaces can also be referred to as primary / secondary / tertiary / maintaining surfaces of mechanical interfaces. If a specification surface of a CAD model is not a primary, secondary, tertiary, or maintaining surface (i.e., if the specification surface is not an interface surface), then the specification surface is an interface-free surface.
[0030] Each mechanical interface in this disclosure includes one or more master surfaces. A master surface is a specification surface included in the mechanical interface that maximally constrains the mechanical assembly of the part (e.g., maximally constrains the corresponding mechanical parts within the mechanical assembly of the part). The maximal constraint can be with respect to the degrees of freedom of the mechanical assembly of the part; that is, the master surface can be a specification surface of the mechanical interface that reduces the maximum degrees of freedom in the mechanical assembly of the part. "Maximum" in this document can mean that the number of degrees of freedom reduced by the specification surface can be greater than a factor multiple of the number of maximum degrees of freedom reduced by any specification surface included in the mechanical interface. This factor can be 1, such that only the master surface is a specification surface of the mechanical interface that reduces the maximum degrees of freedom. Alternatively, the factor can be any number less than 1, such as 0.9 or 0.8.
[0031] Each mechanical interface in this disclosure may include one or more secondary surfaces. A secondary surface is a specification surface included in the mechanical interface that is not a principal surface, but, apart from (i.e., excluding or disregarding) the principal surface, maximally constrains the mechanical assembly position of the part (e.g., maximally constrains the corresponding mechanical parts within the mechanical assembly of the part). The maximal constraint may be with respect to the degrees of freedom of the mechanical assembly of the part; that is, the secondary surface may be a specification surface of the mechanical interface that is not a principal surface, but, apart from the principal surface, reduces the maximum degrees of freedom in the mechanical assembly of the part. "Maximum" in this document may refer to a factor greater than the number of degrees of freedom reduced by any non-principal surface of the mechanical interface. This factor may be 1, such that, apart from the principal surface, only the secondary surface is a specification surface of the mechanical interface that reduces the maximum degrees of freedom. Alternatively, the factor may be any number less than 1, such as 0.8 or 0.9.
[0032] Each mechanical interface in this disclosure may include one or more tertiary surfaces. A tertiary surface is a specification surface of the mechanical interface that is neither a primary nor a secondary surface, but which constrains the position of the mechanical assembly of the part (e.g., constrains the corresponding mechanical parts within the mechanical assembly of the part). The constraint may be with respect to the degrees of freedom of the mechanical assembly of the part; that is, a tertiary surface may be a specification surface of the mechanical interface that is neither a primary nor a secondary surface, but which at least reduces the degrees of freedom in the mechanical assembly of the part.
[0033] Each mechanical interface in this disclosure may include one or more holding surfaces. A holding surface is a specification surface of the mechanical interface that holds the mechanical part in a position defined by primary, secondary, and tertiary surfaces within the mechanical assembly of the part.
[0034] Therefore, in this disclosure, each mechanical interface of the CAD model representing the mechanical assembly of a part can reduce the number of degrees of freedom N≥1 for the mechanical assembly of the part. It can be written as the sum of the primary face, secondary face, and tertiary face. .
[0035] The main surfaces of the mechanical interface (in total) reduce the number of degrees of freedom of the mechanical components of the part. . degrees of freedom It is one or more degrees of freedom The sum of each degree of freedom The corresponding number of degrees of freedom reduced by the corresponding principal plane, i.e. Each degree of freedom reduced by each principal face. These degrees of freedom can be defined from below (for example, they can all be the same and equal to the maximum number of degrees of freedom reduced by any face, or they can be included in the intervals as described above).
[0036] Similarly, the secondary surfaces of the mechanical interface (if present) reduce the number of degrees of freedom of the mechanical components of the part (in total). . degrees of freedom (If not 0) is one or more degrees of freedom The sum of each degree of freedom Corresponding to the reduction in degrees of freedom due to the corresponding secondary surface, such that If a secondary surface exists (i.e., if...) Then each degree of freedom is reduced by each secondary surface. It can be defined from below as described above.
[0037] Similarly, the three-level surfaces of the mechanical interface (if present) (in total) reduce the number of degrees of freedom of the mechanical components of the part. . degrees of freedom (If not 0) is one or more degrees of freedom The sum of each degree of freedom Corresponding to the reduction in degrees of freedom due to the corresponding third-order surface, such that If a third-order surface exists (i.e., if...) Then each degree of freedom is reduced by each third-order surface. (Strictly) positive, as stated above.
[0038] As discussed above, the mechanical interface of a CAD model representing a mechanical assembly of a part includes one or more specification surfaces representing portions of the same part of the assembly. Each specification surface including the mechanical interface is classified as a primary surface / secondary surface / tertiary surface / maintaining surface. Therefore, the mechanical interface of the CAD model is a set of specification surfaces, each of which is a primary / secondary / tertiary / maintaining surface with internal connections (e.g., paths of specification surfaces that are internally connected to each other, as described above), such that all other specification surfaces of the CAD model representing portions of the same part of the assembly that have internal connections to any specification surface in the set of specification surfaces are interface-free surfaces. As described above, the internal connection between two specification surfaces of the CAD model can correspond to the adjacency, coplanarity, and / or coaxiality of the two specification surfaces within the same mechanical part. Additionally or alternatively, the internal connection between two specification surfaces of the CAD model can correspond to the separation between two specification surfaces within the same mechanical part, including fillets, chamfers, and / or another non-specific surface.
[0039] As will be explained below, each local contact between parts in a CAD model representing a mechanical assembly of a part can be represented by a diagram. Such a diagram includes nodes, each node representing a specification surface of the CAD model near the local contact (e.g., the surface having the local contact, or a surface internally connected to the surface having the local contact). The diagram includes inner and outer edges. Each inner edge represents an internal connection between specification surfaces (of the same part in the CAD model) represented by a node of the diagram. Each outer edge represents a contact between specification surfaces (of different parts in the CAD model) represented by a node of the diagram. Mechanical interfaces can be included in connecting parts of sub-diagrams of such local diagrams, which include only inner edges (i.e., excluding outer edges). It is also clear that each mechanical interface of the CAD model representing a mechanical assembly of a part is represented as one such diagram representing a local contact. In practice, the mechanical interface must be located near the local contact (e.g., adjacent to the local contact, such as a specification surface having the local contact or adjacent to a specification surface having the contact). Therefore, the diagrams representing the corresponding local contacts between parts in the corresponding CAD models can be the best fit mathematical structures for determining the mechanical interfaces, because these diagrams can represent all mechanical interfaces and do not represent the specification surface far from the local contact (therefore, the specification surface may not be part of the mechanical interface).
[0040] The learning method may also include defining a drawing representing the entire CAD model, which represents the mechanical components of the part. Such a drawing may have nodes representing specification surfaces, internal connections, and contacts, as well as inner and outer edges, as previously described for drawings representing local contacts. Each drawing representing a corresponding local contact may be a sub-drawing of the drawing representing the entire CAD model. Examples of CAD models and corresponding drawings are shown in Figures 5 through 10 described below. Figures 11 through 10 described below... Figure 18 An example diagram showing local contact between parts is shown.
[0041] It should be noted that inspecting the mechanical interfaces of a CAD model representing a part's mechanical assembly is a challenging task, as the user may need to be familiar with all possible connections between the individual mechanical parts constituting the part's mechanical assembly. Therefore, manually inspecting each mechanical interface and / or labeling each specification surface with the appropriate label is an extremely time-consuming task. Furthermore, this task is prone to error, as the user may forget and / or be unaware of some connections (e.g., some contacts) between mechanical parts (e.g., in cases where the part's mechanical assembly comprises several parts), or fail to use the correct classification labels for some specification surfaces constituting the mechanical interfaces. However, for the manufacturing process of the mechanical assembly of a part represented by a CAD model (and therefore for the manufacturing process of each individual mechanical part included in the part's mechanical assembly), it may be necessary to inspect the mechanical interfaces. In some cases, inspecting the mechanical interfaces can simplify the manufacturing process or increase the lifespan of the part's mechanical assembly.
[0042] When manufacturing mechanical assemblies of parts represented by CAD models, accurate inspection of mechanical interfaces is beneficial. In practice, the interaction areas (e.g., contact areas) between the mechanical parts of the mechanical assembly constituting the part can be manufactured with higher tolerances and / or precision to ensure proper assembly of the mechanical parts (e.g., minimizing distance between parts, minimizing friction between parts) together. Therefore, the interaction areas (e.g., contact areas) represented by mechanical interfaces can be manufactured with higher precision and more detailed tolerances than some other areas (e.g., specification surfaces) of the mechanical parts comprising the part, such as areas that should not have a functional role / should not contact other mechanical parts. Since manufacturing with higher precision may involve longer production times and / or more expensive materials / machinery, accurately inspecting which areas lack interfaces can be beneficial to accelerate the production process. The design and precision of these interaction areas can ensure proper alignment, minimize energy loss, and enhance the durability and performance of the mechanical assembly. Effective management of these interaction areas can involve considering material compatibility, surface finish, lubrication, and tolerances to maintain optimal function under varying operating conditions. By carefully defining mechanical interfaces, mechanical products can achieve higher efficiency, reliability, and lifespan.
[0043] When manufacturing mechanical assemblies of parts represented by CAD models, it is clear that all mechanical parts comprising the mechanical assembly of the part are manufactured solely for the mechanical assembly of the part. Therefore, areas requiring higher precision and more detailed tolerances are only the interaction areas implemented within the mechanical assembly of the part.
[0044] The learning method involves training a classification function based on a training dataset that includes graphs representing local contacts. By using these graphs, the learning method can detect mechanical interfaces by considering only the most relevant mathematical structures. In practice, by ignoring canonical surfaces far from the local contacts between parts (e.g., canonical surfaces not adjacent to surfaces with contacts), the classification function learned by the learning method is better able to detect mechanical interfaces, classifying each canonical surface adjacent to a local contact using labels from a label list. Canonical surfaces not adjacent to local contacts can always be classified as no-interface. Furthermore, the ratio between the number of interfaced surfaces and the number of no-interfaced surfaces is more balanced in the local graph compared to the entire set of canonical surfaces. Therefore, the classification function learned by the learning method can better predict the classification labels trained on a nearly balanced dataset.
[0045] The learning method is a method for using a machine learning classification function configured to detect the mechanical interfaces of a CAD model representing a mechanical assembly of parts. Therefore, the learning method can be used to obtain a machine learning classification function. A method for using the machine learning classification function is also provided. This method includes obtaining one or more graphs, each graph representing a corresponding local contact between parts of the same CAD model (the CAD model represents a mechanical assembly of parts). (i.e., all one or more graphs represent local contacts of the CAD model, where the local contact potentially depends on the graph, but the CAD model does not depend on the graph). Each graph includes one or more nodes. Each node represents a canonical surface of the CAD model. Each graph also includes one or more inner edges. Each inner edge represents an inner connection between canonical surfaces represented by nodes connected by that edge. Canonical surfaces represent portions of the same part of the mechanical assembly. Each graph also includes one or more outer edges. Each outer edge represents a contact between canonical surfaces represented by nodes connected by that edge. Canonical surfaces represent portions of different parts of the mechanical assembly. The method also includes applying the machine learning classification function to one or more graphs.
[0046] The usage method may include performing machine learning on the classification function, as in the learning method. A process for a computer implementation of an ensemble learning method and a usage method is also proposed. This process includes executing the learning method and then executing the usage method.
[0047] The machine learning classification function (both using the method and learned through the learning method) takes one or more graphs as input, each graph representing a local contact between parts of a CAD model (which represents a mechanical assembly of a part); the machine learning classification function outputs the classification of each node of each of the one or more local graphs as one of a list of labels. In the example, the one or more graphs considered as input can represent all local contacts between parts of the CAD model. That is, each local contact between parts of the CAD model can be represented by one of the one or more graphs. Therefore, the one or more graphs can include representations of all mechanical interfaces, since mechanical interfaces are adjacent to local contacts. Therefore, one or more graphs may be sufficient to represent the entire CAD model (specification surfaces not represented by local graphs may not be interfaces and may not require the classification function to be applied to these specification surfaces). As will be described below in this disclosure, the method may include: acquiring the CAD model and determining one or more graphs. Therefore, the method can be used to classify each specification surface of the CAD model representing the mechanical assembly of the part as one of the label lists defined above.
[0048] The classification function can also be configured to form mechanical interfaces based on output labels by regrouping adjacent specification surfaces corresponding to primary, secondary, tertiary, and sustaining surfaces, where the specification surfaces represent portions of the same mechanical part. Specifically, the classification function can also include modules configured to form mechanical interfaces based on output labels by regrouping specification surfaces corresponding to primary, secondary, tertiary, and sustaining surfaces with internal connections, as described above. That is, the classification function can also include modules that output all mechanical interfaces for each part of an assembly of mechanical parts represented by an input CAD model. Each mechanical interface includes one or more specification surfaces connected by internal connections, forming connecting parts relative to this connectivity definition. In an implementation, the module can take as input a graph representing local contacts between parts of the CAD model (or a graph representing the CAD model itself). The module can also be configured to obtain a subgraph of the input graph, which includes all interface nodes, i.e., all nodes labeled as primary, secondary, tertiary, or sustaining surfaces by the machine learning classification function. The subgraph can include all internal edges (but not external edges) between its nodes. The module may further include defining each connecting component of the subgraph. The module may also include, for each connecting component of the subgraph, forming a mechanical interface comprising a canonical surface represented by the nodes of the connecting components of the subgraph. In other embodiments, the mechanical interface may correspond to a subgraph that is not necessarily connected, because some internal connections between the canonical surfaces constituting the mechanical interface may not yet be represented in the figure. In this case, regrouping by other methods can be implemented. However, in embodiments of the methods of this disclosure, any mechanical interface involved in the method may correspond to a connecting component of the subgraph.
[0049] Therefore, the method can take a CAD model representing the mechanical assembly of a part as input and a classification of each specification surface of the CAD model as output. Optionally, the method can also take the mechanical interfaces of the CAD model as output. Implementations of the method show output acquisition in real time (e.g., a few seconds or fractions of a second after the input is provided). This is a significant improvement over manual methods. In fact, as described in detail above, the detection of mechanical interfaces is a complex task that considers all possible interaction zones between parts of a mechanical assembly of a part. Manual detection of mechanical interfaces can take more than an hour; in contrast, the method enables the classification of specification surfaces and / or mechanical interfaces to be obtained in real time (e.g., in less than a second). In particular, the machine learning classification function and the method greatly improve the ergonomics of the steps involved in the classification of specification surfaces and / or mechanical interfaces (and thus, more generally, the design of CAD models representing the mechanical assemblies of parts).
[0050] Furthermore, compared to manual methods, this method reduces the number of errors in the classification of specification surfaces and / or the inspection of mechanical interfaces. In fact, with manual methods, users may be unable to inspect some contact areas between parts within the mechanical assembly of a part, as the mechanical assembly may comprise several parts. Moreover, because the definitions involved can be complex, users may not be certain how to accurately classify each specification surface constituting the mechanical interface (e.g., in a primary, secondary, tertiary, and maintenance manner). Therefore, this method can be used to obtain the classification of surfaces in an example row provided by an expert, without the user needing to understand every definition involved in the classification.
[0051] The method of use may include the use of the output of the method in the manufacturing process and / or the use of the output of the method can be directly used to manufacture the product. For example, the method of use may include: after inspecting the mechanical interface, storing (or alternatively, storing the specifications of each CAD model of the mechanical assembly representing the part in a file and / or as distributed CAD data on one or more storage devices, optionally, converting the specifications and / or distributed CAD data (e.g., using a known CAD to CAM conversion process) into manufacturing instructions for manufacturing the product modeled from the mechanical assembly of the part (e.g., for manufacturing each mechanical part included in the mechanical assembly and / or for assembling the mechanical parts to obtain the mechanical assembly of the part). The manufacturing instructions may, for example, include different levels of precision for each specified surface to be used for the mechanical interface. The method may also automatically send the manufacturing instructions and / or specifications (e.g., stored files or distributed specifications) to manufacturing machinery, causing the manufacturing machinery to follow the instructions to produce the mechanical assembly of the part (e.g., each mechanical part including the assembly and / or assembling the mechanical parts). The method may include physical manufacturing or simply storing the manufacturing instructions obtained from the specifications and output of the method and / or sending these instructions to the manufacturing process. The manufacturing instructions may include instructions for assembling two or more mechanical parts. Assembly can depend on mechanical interfaces (e.g., mate the mechanical interfaces of different mechanical parts with each other). Manufacturing instructions may also include lubrication (e.g., lubrication of mechanical interfaces). Mechanical assemblies of parts manufactured according to such instructions can achieve higher efficiency, reliability, and lifespan.
[0052] Therefore, the method constitutes a significant improvement to the mechanical components of manufactured parts. In fact, the method ensures that all mechanical interfaces of the mechanical components of the part to be manufactured are produced with appropriate precision, thus ensuring a smooth and efficient manufacturing process. The method may also include: storing manufacturing instructions and / or manufacturing each specification surface with different precision according to a classification of specification surfaces. For example, the method may include manufacturing the main surface with higher precision and the holding surface with lower precision. This can further improve productivity, reduce costs, and minimize errors.
[0053] The method of use (e.g., acquiring a representation may include a CAD model of the mechanical assembly of the part used in the method) may also include: acquiring one or more images of the mechanical assembly of the part (e.g., one or more images of the entire assembly and / or one or more images of each respective part), and converting the acquired one or more images into a CAD model representing the mechanical assembly of the part. For example, one or more images may be acquired from a remote or local source. For example, acquiring one or more images may include: acquiring at least one image using a camera or using 3D scanning. Therefore, the method of use can be used to inspect the mechanical interfaces of the mechanical assemblies of real-world parts, more specifically, based on physical measurements of the mechanical interfaces of the mechanical parts. This can, for example, prove useful for manufacturing copies of the mechanical assemblies of parts, thereby ensuring that each specification surface is manufactured according to its function in relation to the mechanical assemblies of the part. In practice, the precision / tolerances used in image and / or 3D scanning inspection of each specification surface included in the manufacturing of the mechanical assembly of the part may not be accurate enough.
[0054] The learning method is a machine learning approach used to learn a classification function (also called a model). The learning method includes: acquiring a training dataset and training the classification function based on the training dataset. As is known in the field of machine learning, processing inputs by a model includes: applying operations to the inputs, these operations being defined by data including weight values or parameters. Therefore, learning a model (e.g., a neural network or GNN) includes: 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, the dataset includes data slices, each forming a corresponding training sample or training example. Training samples / training examples represent the diversity of situations on which the model will be used after learning. Any training dataset described herein may include multiple training samples / training examples greater than 1000, 5000, or 10000. In the context of this disclosure, "learning a model based on a dataset" means that the dataset is the learning / training dataset of the model, on which the values of the weights / parameters are set. In this disclosure, the training dataset is a dataset of acquired training examples on which the model is learned / trained. In an implementation, the training dataset includes tens of thousands of examples, each example corresponding to a B-rep and an associated conditional signal.
[0055] 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 the input layer, where the number of neurons can be determined by the dimension of the input data. Following the input 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 may 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. In contrast, hyperparameters are predefined settings that are not learned from the training data. These hyperparameters include the number of hidden layers, the number of neurons per layer, etc. To train a neural network, at least two settings can be defined. First is the loss function, which is a measure of the error between the training data and the model's predictions, such as mean squared error (MSE) or class-weighted cross-entropy loss. Second is 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.
[0056] Specifically, the learning method includes: acquiring a training dataset comprising training samples, each training sample comprising a graph representing local contacts between parts of a CAD model representing a mechanical assembly of the parts. In this disclosure, a graph representing local contacts between parts of a CAD model represents a portion of the CAD model, which includes specification surfaces adjacent to contacts between different parts of the mechanical assembly of the part represented by the CAD model. Nodes of the local graph represent each of the specification surfaces. Edges of the local graph represent inner connections (inner edges) between specification surfaces of the same part, or contacts (outer edges) between specification surfaces of different parts. Thus, a graph representing local contacts between parts of a CAD model is a mathematical representation of the geometry surrounding the (local) contacts of the CAD model. Each CAD model may include several different contacts between different parts, which are not adjacent. Therefore, multiple different graphs representing corresponding local contacts between parts can be associated with the same CAD model, each graph corresponding to one of the different contacts between different parts.
[0057] Obtaining a training dataset may include retrieving (e.g., from local or remote storage) or receiving (e.g., from a remote system). Additionally or alternatively, obtaining a training dataset may include generating at least a portion of the training dataset.
[0058] At least a portion of acquiring / generating the training dataset for the learning method may include: acquiring a dataset comprising CAD models of mechanical components (e.g., mechanical objects / products) representing parts. At least a portion of acquiring / generating the training dataset may further include: for each CAD model representing a mechanical component of a part in the initial dataset, determining one or more diagrams, each diagram representing a corresponding local contact between parts of the mechanical component of the part. The dataset comprising CAD models of mechanical components representing parts may be referred to as a CAD dataset. Therefore, at least a portion of acquiring / generating the training dataset may include: acquiring a CAD dataset, and for each CAD model in the CAD dataset, determining one or more diagrams, each diagram representing a corresponding local contact between parts of the part component.
[0059] Acquiring / generating the training dataset may further include: determining a diagram representing the CAD model (i.e., a single diagram representing the entire geometry of the CAD model, not just a portion of it) for each CAD model in the initial dataset (i.e., the CAD dataset) before determining one or more diagrams for each CAD model representing the part assembly, each diagram representing the corresponding local contact between parts of the part assembly. That is, at least a portion of acquiring / generating the training dataset may include: after acquiring the CAD dataset, determining a diagram representing the CAD model for each CAD model representing the mechanical assembly of the part included in the CAD dataset. The diagram representing the CAD model may represent the entire CAD model, rather than individual diagrams representing the corresponding local contact between parts of the mechanical assembly of the part; these diagrams may represent only a portion of the CAD model. At least a portion of acquiring / generating the training dataset may further include: determining one or more diagrams from each diagram representing the corresponding CAD model, each of the one or more diagrams representing the corresponding local contact between parts of the mechanical assembly of the part. Such one or more diagrams may each be a sub-diagram of the corresponding diagram representing the entire mechanical assembly of the part. That is, for each CAD model in the initial dataset, determining one or more diagrams representing the corresponding local contacts between parts of the part assembly can be based on the determined diagrams representing the CAD model (e.g., by restricting the diagrams representing the CAD model to sub-diagrams representing local contacts).
[0060] Obtaining a CAD dataset may include retrieving (e.g., from local or remote storage) or receiving (e.g., from a remote system).
[0061] It may be advantageous to acquire / generate at least a portion of the training dataset, since multiple CAD models representing the mechanical components of the parts are available to the user.
[0062] Figure 4 An example of a mechanical assembly that can be used to obtain parts from a CAD dataset is shown.
[0063] In this disclosure, a drawing representing a CAD model will be referred to as a CAD drawing, whereby the CAD model represents a mechanical assembly of a part. A drawing representing local contact between parts of a CAD model (which represents a mechanical assembly of a part) (e.g., a drawing included in the obtained training dataset) will be referred to as a local CAD drawing. Each local CAD drawing may be a sub-drawing of a corresponding CAD drawing (a CAD drawing representing a corresponding mechanical assembly of a part). Each CAD drawing may include one or more local CAD drawings (as sub-drawings). Local CAD drawings included in a CAD drawing (as sub-drawings of the CAD drawing) may be disjoint or have intersection.
[0064] In this disclosure, each CAD drawing and each CAD sub-drawing includes one or more nodes, one or more inner edges, and one or more outer edges. Each node represents a specification surface of the CAD model, and each inner edge represents an internal connection between specification surfaces represented by nodes connected by that edge. An "internal connection" means that the specification surfaces represented by the nodes connected by that edge are part of the same part of the mechanical assembly of the part. That is, the internal connection is within a single mechanical part. Each outer edge represents a contact between specification surfaces represented by nodes connected by that edge. A "contact" means that the specification surfaces represented by the nodes connected by that edge are part of different parts of the mechanical assembly of the part. That is, the contact is within two different parts. As described above, an internal connection between two specification surfaces of a CAD model can correspond to the adjacency, coplanarity, and / or coaxiality of two specification surfaces in the same mechanical part. Additionally or alternatively, an internal connection between two specification surfaces of a CAD model can correspond to the spacing between two specification surfaces in the same mechanical part, including fillets, chamfers, and / or another non-specific surface. A contact between specification surfaces of two different mechanical parts of a CAD model can correspond to contact properties between the two specification surfaces, such as contact, stackability, coaxiality, and / or coplanarity.
[0065] It is worth noting that, in this disclosure, determining a CAD drawing based on a CAD model representing a mechanical assembly of parts may include: determining each specification surface of the CAD model and all connections (i.e., internal connections and contacts) between the determined specification surfaces. Determining all connections may include: determining internal connections between pairs of specification surfaces representing portions of the same part of the assembly represented by the CAD model, and determining contacts between pairs of specification surfaces representing portions of different parts of the assembly represented by the CAD model. Determining the CAD drawing may also include: defining / generating nodes for each determined specification surface, defining / generating inner edges for each pair of specification surfaces of the same part of the assembly represented by the CAD model (i.e., having internal connections), and defining / generating outer edges for each pair of specification surfaces of different parts of the assembly in contact.
[0066] In this disclosure, determining one or more partial CAD drawings based on a CAD model representing a mechanical assembly of parts may include the same steps as determining CAD drawings, except that determining partial CAD drawings may only require determining specification surfaces, internal connections, and contacts adjacent to a given contact between the parts of the assembly represented by the CAD model.
[0067] Alternatively, determining one or more partial CAD drawings based on a CAD model representing a mechanical assembly of a part may include: first determining a CAD drawing of the CAD model, and then determining one or more partial CAD drawings based on the CAD drawing. Determining one or more partial CAD drawings may include: determining a sub-drawing of the CAD drawing comprising a set of nodes, which includes (e.g., consisting of nodes) all nodes of the CAD drawing within the boundary of any outer edge of the CAD drawing. The sub-drawing of the CAD drawing may also include a set of inner and outer edges, which includes all inner and / or outer edges of the CAD drawing defined by two nodes included in the set of nodes. Determining one or more partial CAD drawings may also include: determining each connecting component of the sub-drawing, each partial CAD drawing in the one or more partial CAD drawings being further determined by one of the connecting components. Determining a corresponding partial CAD drawing based on a connecting component of the sub-drawing may include: extending the connecting component to all adjacent vertices.
[0068] In an implementation, for each CAD model, determining one or more diagrams includes: determining sub-diagrams representing CAD drawings of the CAD model, each diagram representing a corresponding local contact between parts of a part assembly represented by the CAD model (i.e., one or more local CAD drawings). This determination may or may not include determining CAD drawings (e.g., the CAD drawings may be predetermined, e.g., already included in a dataset). A sub-diagram of a CAD drawing may include a set of nodes that include (e.g., consist of nodes) all nodes on the boundary of any outer edge of the CAD drawing. A sub-diagram of a CAD drawing may also include a set of inner and outer edges that include all inner and / or outer edges of the CAD drawing defined by two nodes included in the set of nodes. The determination may also include: determining one or more connecting parts of the sub-diagram. For example, the determination may include: determining all connecting parts of the sub-diagram. Each connecting part is a diagram including edges and nodes, and each connecting part may include each boundary node of each included edge. Each connecting part may correspond to a local contact between parts of a part assembly. In practice, the outer edge represents the contact between parts of the part assembly. This determination may further include: for each connecting component of the sub-figure, determining a drawing representing local contact between parts of the part assembly, i.e., a local CAD drawing. The local CAD drawing may include one or more nodes, which include (e.g., comprised of nodes such as) all nodes of the connecting component of the sub-figure and all nodes at a distance of 1 from the connecting component of the sub-figure (e.g., at a distance of 1 in the figure, e.g., considering only inner edges). The local CAD drawing may include all outer edges of the connecting component of the sub-figure and all inner edges of the figure adjacent to any node of the connecting component of the sub-figure. Therefore, the local CAD drawing may be connected and may include the neighborhood of the connecting component of the sub-figure at a distance of 1 in the figure (e.g., considering only inner edges).
[0069] In this disclosure, "graph distance" can refer to the standard distance metric in graph theory, where the distance between any two nodes is defined as the number of edges in the shortest path connecting the two nodes. The shortest path may consist only of inner edges. Therefore, a node with a distance of 1 from a subgraph (e.g., a connecting component of the subgraph as defined above) can be one that is directly adjacent to a node within the subgraph (i.e., separated by an edge (e.g., an inner edge)).
[0070] Implementations of the method may include: acquiring one or more local CAD drawings representing the same CAD model. One or more local CAD drawings may be acquired and / or determined in any possible manner described in the above implementations for determining local CAD drawings to be used as training samples in the training dataset. Specifically, the method may include: acquiring a CAD model, and determining one or more local CAD drawings based on the CAD model (using any of the above implementations). Alternatively, the method may include: acquiring a CAD model, determining CAD drawings representing the CAD model, and determining one or more local CAD drawings based on the CAD drawings (using any of the above implementations).
[0071] In implementations of the method, obtaining one or more partial CAD drawings may include: obtaining a CAD model and determining a CAD drawing of the CAD model. Determining a CAD drawing may include: (e.g., by regrouping by face-to-face) determining specification surfaces of the CAD model, and generating nodes for each specification surface. Determining a CAD drawing may also include: determining inner connections between pairs of specification surfaces representing portions of the same part of an assembly represented by the CAD model, and generating inner edges for each pair of connected specification surfaces. Determining a CAD drawing may also include: determining contacts between pairs of specification surfaces representing portions of different parts of an assembly represented by the CAD model, and generating outer edges for each pair of contacting specification surfaces. The method may include: determining one or more partial CAD drawings based on a CAD model (e.g., based on a CAD drawing (e.g., as described above)). For example, determining one or more partial CAD drawings may include: determining a sub-drawing representing a drawing of the CAD model, the sub-drawing comprising a set of nodes comprising (e.g., consisting of) all nodes representing the drawing of the CAD model within the boundaries of any outer edges of the drawing representing the CAD model. A sub-drawing of a CAD drawing may further include a set of inner and outer edges, which includes all inner and / or outer edges of the drawing representing the CAD model, and these inner and / or outer edges are defined by two nodes included in the set of nodes. Determining one or more local CAD drawings may further include: determining one or more connecting parts of the sub-drawing. Determining one or more local CAD drawings may further include: determining a local CAD drawing for each connecting part of the sub-drawing. The determined local CAD drawing includes one or more nodes, which include all nodes of the connecting parts of the sub-drawing and all nodes at a distance of 1 from the connecting parts of the sub-drawing (e.g., as described above, at a distance of 1, e.g., using only inner edges). The determined local CAD drawing includes all inner edges of the drawing adjacent to any node of the connecting parts of the sub-drawing, and all outer edges of the connecting parts of the sub-drawing.
[0072] Implementations of the method may include: after acquiring a CAD model, determining a CAD drawing representing the CAD model, determining one or more local CAD drawings based on the CAD drawing, and applying a machine learning classification function to the one or more local CAD drawings, labeling each node of the CAD drawing with a label list. Therefore, in implementations, the method may include: providing one or more local CAD drawings obtained from the CAD drawing as input to a machine learning classification function, and collecting the output of the classification function to label each node of the CAD drawing using the labels from the label list. That is, in implementations, the method may include: collecting the results of applying the machine learning classification function to one or more local CAD drawings by labeling the nodes of the CAD drawing using the labels output by the machine learning classification function for each local CAD drawing. Implementations of the method may further include: labeling each specification surface of the CAD model with a label from a label list, the label corresponding to the corresponding label of the node associated with the specification surface.
[0073] Since each local CAD drawing can be a sub-drawing of a CAD drawing, each node in each local CAD drawing can uniquely correspond to a node in the CAD drawing. Therefore, after applying a machine learning classification function to each local CAD drawing, the label obtained for each node in each local drawing can be directly used to label the corresponding node in the CAD drawing. Labeling each node in the CAD drawing with the label of the label list can include assigning the "no interface" label to any node in the CAD drawing that does not correspond to any node in any local CAD drawing included in the CAD drawing. This can be important because one or more nodes in the CAD drawing may not exist in any local CAD drawing determined based on the CAD drawing. In fact, each local CAD drawing can include nodes that are at most 1 unit away from the corresponding connecting parts of the sub-drawing of the CAD drawing that includes all its outer edges. Therefore, any node in the CAD drawing that is at least 2 units away from any outer edge (e.g., any node adjacent to any outer edge) may not exist in any local CAD drawing.
[0074] The implementation of the method can handle double labeling in any manner known in the art (e.g., selecting the highest-level interface if contradictory labels are assigned). In practice, the local CAD drawings included in a CAD drawing can have intersections, and a machine learning classification function might assign different labels to nodes in different local CAD drawings that correspond to the same node in the CAD drawing. However, these intersections are typically small, involving a limited number of nodes compared to the size of the CAD drawing (e.g., less than 10% or 5%).
[0075] In the learning method, each CAD drawing and / or local CAD drawing included in the dataset (e.g., the training dataset for machine learning methods and / or a dataset obtained from a CAD dataset) also includes a label for each node, which is one of the following list of labels: primary face of a mechanical interface, secondary face of a mechanical interface, tertiary face of a mechanical interface, sustaining face of a mechanical interface, and no interface. Each label for each node corresponds to the corresponding classification of the canonical surface associated with that node in the CAD model of the mechanical assembly representing the part. That is, a node is labeled as a primary face if and only if the canonical surface associated with the node is a primary face. The labels can be ground realities used to train the classification function.
[0076] In an implementation of the learning method, determining CAD drawings and / or partial CAD drawings based on CAD models representing mechanical components of parts included in the CAD dataset may include: labeling each node with classification labels of specification surfaces represented by nodes (using labels from a label list). Determining each partial CAD drawing based on the CAD drawing may further include: labeling each node of each partial CAD drawing with the classification labels of the corresponding nodes of the CAD drawing. That is, since a partial CAD drawing may be a sub-drawing of a CAD drawing, the labeling of the partial CAD drawing can be derived from the labeling of the corresponding CAD drawing (e.g., by constraints).
[0077] Figures 5 through 10 show different examples of CAD models and associated CAD drawings representing mechanical components of parts. Specifically, Figures 5A to 10A A CAD model is shown. Figures 5B to 10B The associated CAD drawing is shown. The CAD drawing includes a label for each node corresponding to a label list (corresponding to different shaded lines). Furthermore, the outer edges (corresponding to "True Contact" and "Stackable") are labeled differently from the inner edges.
[0078] Figures 11 and 12 show examples of partial CAD drawings. Specifically, Figure 11A and Figure 12A An example of a partial CAD drawing is shown, including labels for each node corresponding to the label list (corresponding to different shaded lines). Furthermore, the outer edges (corresponding to "True Contact" and "Stackable") are different from the inner edge labels. Figure 11B and Figure 12B The outer and inner edges between a pair of nodes adjacent to the corresponding outer edge are highlighted.
[0079] Figures 13 to 18 An example of a partial CAD drawing is shown, including labels for each node corresponding to the label list (corresponding to different shaded lines). Furthermore, the outer edges (corresponding to "True Contact" and "Stackable") are different from the inner edge labels.
[0080] Figure 19A flowchart is shown illustrating the determination of one or more local CAD drawings based on CAD drawings that may be included in a learning method. Specifically, an implementation of the learning method may include: after acquiring a CAD dataset, determining CAD drawings for each model in the CAD dataset, and labeling each node of each CAD drawing with labels from a label list, relabeling the nodes of the CAD drawings 191. In practice, some nodes may have been incorrectly labeled by experts. In such an implementation, the determination may further include: extracting 192 connective parts from the CAD drawings by considering all inner and outer edges defined by two nodes, each node defining an outer edge. In such an implementation, the determination may further include: extending 193 the extracted connective parts to a neighborhood of 1 distance (e.g., relative to the graph distance). In such an implementation, the determination may further include: forming 194 a dataset of local CAD drawings having the thus obtained local CAD drawings.
[0081] In this disclosure, the CAD model can be a B-rep comprising multiple faces. In embodiments of the learning or using method, determining each canonical surface of the CAD model (e.g., the B-rep) can include: determining whether each face of the CAD model (e.g., each face of the B-rep) is part of a canonical surface, i.e., part of a plane, sphere, cone, torus, or cylinder. In embodiments, determining each canonical surface can further include: engaging one or more different faces that are in contact with each other and are part of the same canonical surface. For example, engaging two faces that are part of a cylinder to obtain an engaging surface that is part of a cylinder. Therefore, in embodiments, each detected canonical surface can include one or more faces that define the B-rep of the CAD model.
[0082] Figure 20 An example of the above-described embodiment is shown. In the figure, the hollow cylinder includes two faces. These two faces are joined together to form a unique, canonical surface that is part of the cylinder.
[0083] In implementations of the learning method, acquiring the dataset (e.g., the training dataset of the learning method and / or the dataset obtained from the CAD dataset) may include: for each CAD drawing and / or local CAD drawing included in the training dataset, acquiring and / or determining the node vector of each node of the (local) CAD drawing, the inner edge vector of each inner edge of the (local) CAD drawing, and / or the outer edge vector of each outer edge of the (local) CAD drawing. In implementations of the learning method, the node vectors, inner edge vectors, and outer edge vectors of the local CAD drawing may be directly determined (e.g., identical) based on their corresponding counterparts associated with the respective CAD drawing.
[0084] Specifically, obtaining the training dataset may include retrieving (e.g., from local or remote storage) or (e.g., from a remote system) receiving the node vector of each node of each corresponding (local) CAD drawing, the inner edge vector of each inner edge of each corresponding (local) CAD drawing, and / or the outer edge vector of each outer edge of each corresponding (local) CAD drawing.
[0085] Additionally or alternatively, at least a portion of the dataset may be obtained / determined from the CAD dataset. Obtaining the dataset may further include: for each CAD model representing a mechanical assembly of parts included in the CAD dataset, determining the node vector of each specification surface (corresponding to a node) of the CAD model, the inner edge vector of each inner connection (corresponding to an inner edge) between specification surfaces of the same part of the assembly represented by the CAD model, and / or the outer edge vector of each contact (corresponding to an outer edge) between specification surfaces of different parts of the assembly represented by the CAD model.
[0086] Each of the node vectors, inner edge vectors, and / or outer edge vectors included in each (local) CAD drawing can be beneficial for training the classification function (and, after training, for the inference step using the method). In fact, during training, node vectors, inner edge vectors, and / or outer edge vectors can be used to better understand and predict training samples.
[0087] In implementations of the method, acquiring one or more local CAD drawings may include: acquiring and / or determining the node vector of each node in the local CAD drawing, the inner edge vector of each inner edge of the local CAD drawing, and / or the outer edge vector of each outer edge of the local CAD drawing. Acquiring and / or determining may be implemented in any possible manner as described above with respect to the equivalent steps of the learning method. For example, the method may include: acquiring a CAD model, determining the node vector of each specification surface (corresponding to a node) of the CAD model, the inner edge vector of each inner connection (corresponding to an inner edge) between specification surfaces of the same part of the assembly represented by the CAD model, and / or the outer edge vector of each contact (corresponding to an outer edge) between specification surfaces of different parts of the assembly represented by the CAD model.
[0088] The node vector associated with a node (which may be obtained and / or determined in the learning and / or usage methods) can be a feature vector representing the properties of the canonical surface represented by the node. Specifically, the node vector can be a vector comprising several entries, each corresponding to a specific property of the canonical surface represented by the node. For example, each node vector may include entries regarding: surface type (e.g., one in a list of canonical surfaces, i.e., plane, sphere, cone, torus, or cylinder), area, a parameter defining the surface type (e.g., the parameter is the radius if the surface type is sphere), orientation, material, or a combination of the above.
[0089] The inner edge vector (which may be obtained and / or determined in the learning and / or usage methods) associated with the inner edge can be a feature vector representing the attribute of the inner connection represented by the edge. The feature vector can be a vector comprising several entries, each entry corresponding to a specific attribute of the inner connection between canonical surfaces represented by the edge. For example, each attribute of the inner connection represented by each inner edge vector representing the connection between two canonical surfaces includes one or more of the following: Convexity, that is, whether a local part of the CAD model including these two specification surfaces is convex; Concavity, that is, whether a local part of the CAD model including these two standard surfaces is concave; Coplanarity, that is, whether the two gauge surfaces lie on the same plane; Coaxiality, that is, whether the two specification surfaces are portions of a cylindrical surface that share the same axis; Adjacent smoothness, that is, the two canonical surfaces share a common edge in the same plane; The presence of fillets means that these two standard surfaces are separated by fillets; The presence of a chamfer, i.e., the two specification surfaces are separated by a chamfer; and / or The existence of a reference means that the two specification surfaces are separated by a set of non-specific surfaces (e.g., surfaces that may not support mechanical interfaces), such as chamfers, fillets, or curved surfaces.
[0090] (The outer edge vector associated with the outer edge, which may be obtained and / or determined in the learning and / or usage methods, can be a feature vector representing the attribute of the contact represented by the edge. The feature vector can be a vector comprising several entries, each entry corresponding to a specific attribute of the contact between canonical surfaces represented by the edge. For example, each attribute of the contact represented by each outer edge vector representing the attribute of the connection between two canonical surfaces includes one or more of the following: Contact, i.e., whether two standard surfaces are in direct contact with each other and share a common surface area without any gaps or overlaps; Stackability, i.e., whether two specification surfaces are part of a cylindrical surface assembled together; Coaxiality, i.e., whether two specification surfaces are portions of a cylindrical surface (on different parts and) sharing the same axis; and / or Coplanarity refers to whether two standard surfaces (on different parts) lie on the same plane.
[0091] Figures 21 to 32 An example of a connection between standard surfaces is shown.
[0092] Figure 21Examples of inner joins are shown, including smooth, concave, convex, and other specifications.
[0093] Figure 22 This diagram illustrates a mechanical part comprising a mechanical assembly consisting of five specification surfaces that are portions of a hollow cylinder 221. These five portions of the hollow cylinder 221 are aligned on the same plane, i.e., coplanar. Therefore, these five portions of the hollow cylinder 221 have paired internal connections. The inner edge vector associated with the inner edge representing the internal connection can include information about the coplanar internal connection between the cylinders.
[0094] Figure 23 A mechanical part of a mechanical assembly is shown, comprising two specification surfaces that are portions of plane 231. These two portions of plane 231 are coplanar. Therefore, these two portions of plane 231 are internally connected. The inner edge vector associated with the inner edge representing the internal connection may include information that the internal connection is a coplanar internal connection between the planes.
[0095] Figure 24 A mechanical part is shown that has two specification surface parts as portions of a cylindrical surface 241. These two portions of the cylindrical surface 241 are coaxial. Therefore, these two portions of the cylindrical surface 241 are internally connected. The inner edge vector associated with the inner edge representing the internal connection can include information that the internal connection is a coaxial internal connection between the cylindrical surfaces.
[0096] Figure 25 This diagram illustrates two mechanical parts of a mechanical assembly having two specification surfaces that are portions of plane 251. These two portions of plane 251 are in contact. Therefore, these two portions of plane 251 are in contact. The outer edge vector associated with the outer edge representing the contact can include information that the contact is a (direct) contact between the planes.
[0097] Figure 26 A mechanical part of a mechanical assembly is shown, comprising a part having specification surfaces as portions of a planar surface and a cylindrical surface 261. These portions of the planar surface and the cylindrical surface 261 are in contact. Therefore, these portions of the planar surface and the cylindrical surface 261 are in contact. The outer edge vector associated with the outer edge representing the contact can include information that the contact is a (direct) contact between specification surfaces.
[0098] Figure 27 This diagram illustrates two mechanical parts of a mechanical assembly having two specification surfaces that are portions of plane 271. These two portions of plane 271 are in contact. Therefore, these two portions of plane 271 are in contact. The outer edge vector associated with the outer edge representing the contact can include information that the contact is a (direct) contact between the planes.
[0099] Figure 28Two mechanical assemblies are shown, each having two specification surfaces of a part that are portions of plane 281. These two portions of plane 281 are coplanar. Therefore, these two portions of plane 281 are in contact. The outer edge vector associated with the outer edge representing the contact can include information that the contact is a coplanar contact between the planes (of different parts).
[0100] Figure 29 This diagram illustrates two mechanical parts of a mechanical assembly having two specification surfaces that are portions of plane 291. These two portions of plane 291 are coplanar. Therefore, these two portions of plane 291 are in contact. The outer edge vector associated with the outer edge representing the contact can include information that the contact is a coplanar contact between the planes (of different parts).
[0101] Figure 30 and Figure 31 This diagram illustrates a mechanical part of a mechanical assembly having a specification surface that is a portion of a cylindrical surface. This portion of the cylindrical surface is stackable. Therefore, the two portions of the cylindrical surface are in contact. The outer edge vector associated with the outer edge representing the contact can include information that the contact is a stackable contact between the portions of the cylindrical surface.
[0102] Figure 32 This diagram illustrates two mechanical parts of a mechanical assembly having two specification surfaces that are portions of a cylindrical surface 321. These two portions of the cylindrical surface 321 are coaxial. Therefore, these two portions of the surface 321 are in contact. The outer edge vector associated with the outer edge representing the contact can include information that the contact is a coaxial contact between the cylindrical surfaces (of different parts).
[0103] Figure 33 A CAD drawing of the mechanical assembly of the part is shown. Nodes in the CAD drawing are indicated by shaded lines, each shading line corresponding to a portion of the assembly. Edges include information related to the type of internal connection or contact between the associated specification surfaces.
[0104] Figure 34 It shows Figure 33 The CAD drawings are assembly-level drawings (i.e., only the external connections and contacts between mechanical parts are shown), and a corresponding CAD drawing is shown for each part.
[0105] Figure 35 A CAD model of a mechanical assembly representing two mechanical parts is shown. Each node in the figure is labeled as part of a mechanical interface (without further specifying whether the node is associated with a primary, secondary, tertiary, or sustaining surface). Specifically, specification surfaces 11, 12, 13, 19, 20, and 21 are part of the mechanical interface. Figure 35In this context, each (inner or outer) edge is associated with a corresponding inner connection or contact. Figure 35 In this context, each node may also include a node vector. The node vector for each node other than nodes 11 and 19 may include information that the associated canonical surface type is "planar," while the node vectors for nodes 11 and 19 may include information that the associated canonical surface type is "cylindrical." Similarly, in... Figure 35 In this context, each edge can also include an edge vector.
[0106] In implementations of the learning and / or usage methods, determining a (local) CAD drawing, determining each node vector for each specification surface (and corresponding node), determining each inner edge vector for each internal connection, and / or determining each outer edge vector for each contact, based on a CAD model representing a mechanical component of the part, may include several different steps. For example, each determination may include several methods, each specifically designed to acquire a single feature (e.g., entries for node / inner edge vector / outer edge vector). In implementations, determining a (local) CAD drawing / each node vector / each inner edge vector / each outer edge vector based on a CAD model representing a mechanical component of the part may include one or more extraction steps.
[0107] In implementations of the learning method and / or the method of use, generating each node vector from the CAD model may include: extracting information related to the mechanical interface (e.g., ID, type). In implementations, generating each node vector from the CAD model may include: extracting the topology of the CAD model (e.g., ID, area, axis, material orientation, type of the specification surfaces). In implementations, generating each inner edge vector from the CAD model may include determining the type of inner connection (e.g., coaxial, coplanar). In implementations, determining the inner connections between specification surfaces of the CAD model may include: detecting fillets and chamfers to study the neighborhood between specification surfaces (e.g., portions of planes, cylinders, spheres, cones, tori). In implementations, generating each outer edge vector from the CAD model may include determining contacts (e.g., direct contact, stackable, coaxial).
[0108] In implementations of the learning and / or using methods, the extraction step (included in one or more extraction steps) may include: extraction of material meaning. Extraction of material meaning is a process that allows the determination of certain properties of a 3D object, particularly for cylinders. Extraction of material meaning enables the method to distinguish whether a cylinder represents a hollow or solid portion of a mechanical part. This can indicate whether the cylinder can be a screw, gear, or other type of object. In implementations, extraction may include determining which side of a specification surface (e.g., a portion of a plane) the material is located on.
[0109] In implementations of the learning and / or using methods, the extraction step (included in one or more extraction steps) may include: determining the normal and center of each face (e.g., each specification surface) of the CAD model. The normal and center can determine the orientation relative to the object. The extraction step may also include: determining the orientation of each face within its "shell," which represents the outer envelope of the object. Here, a "shell" can be a surface (e.g., a set of faces connected by edges) that defines a volume in 3D space. The shell can be an inner shell or an outer shell.
[0110] Figure 36 An implementation of the extraction steps is shown, including extracting data and resources, separating canonical and non-canonical surfaces, creating a baseline body (e.g., a set of non-canonical surfaces), and extracting resources from the canonical surfaces.
[0111] In implementations of the learning and / or application methods, after extracting various information such as axis and material orientation, this information can be processed to obtain different types of connections (internal connections and / or contacts) between two surfaces. Examples of the conditions to be checked for each type of connection are shown below.
[0112] In implementations, the above conditions may need to be extended to all combinations of the specified surfaces (e.g., planes, cylinders, spheres, cones, and / or tori). Furthermore, implementations may include filtering potentially compatible surfaces before performing the intersection operation. This ensures that the surfaces are indeed in true contact or stackable.
[0113] Figure 37 An example of this extraction step is shown.
[0114] In implementations, the distribution of node types, edge types, and labels in the label list of the training dataset may not be homogeneous. In implementations, having a diverse dataset (e.g., a dataset including many examples of different kinds) to increase the usability of the method may be beneficial. Figures 44 through 46, discussed below, illustrate the distribution of surface types, edge types, and labels in the dataset used to implement the method.
[0115] In implementation, the learning method may include: separating (e.g., partitioning) the training dataset into two (e.g., non-joined) parts, the first part of which may be used to learn a classification function, and the second part of which may be used to test the classification function. Separating the training dataset may include: considering different proportions of different features in the separated training dataset.
[0116] It is worth noting that the method includes: acquiring one or more regional CAD drawings representing a CAD model, which represents a mechanical assembly of a part. Acquisition may include: acquiring the CAD model, determining the CAD drawings representing the CAD model, and determining one or more regional CAD drawings based on the CAD drawings representing the CAD model. Acquiring one or more regional CAD drawings and / or determining the CAD drawings can be achieved using the steps described above (e.g., referring to the steps described in determining (local) CAD drawings to be included in the training dataset). Specifically, determining the (one or more regional) CAD drawings may include: determining each specification surface of the CAD model and all connections (inner connections and / or contacts) between the determined specification surfaces. It should be understood that whenever the training dataset includes some additional information (such as node vectors, inner edge vectors, and / or outer edge vectors) attached to each CAD drawing, the method may include: acquiring and / or determining at least a portion of the additional information (such as node vectors, inner edge vectors, and / or outer edge vectors) which will be used as input to a classification function. This determination can be achieved as described above, for example, using the extraction step.
[0117] Figure 38 A flowchart illustrating the method of use is shown, including creating and validating CAD drawings based on CAD models representing the mechanical components of the parts, using a classification function to predict the label of each node, and determining the mechanical interface based on the labeled nodes.
[0118] Classification functions can be based on (for example, including) graph neural networks (GNNs). GNNs are neural networks specifically designed to work with data structured as graphs. GNNs are powerful tools for analyzing data with complex interconnections, such as the connection types (internal connections and / or contacts) between canonical surfaces of a CAD model representing a mechanical component. GNNs perform neighborhood aggregation, updating node features by aggregating information from the immediate neighbors of each layer. This allows for information sharing and the capture of local context.
[0119] Figure 39 This demonstrates the key mechanism of "message passing" in GNNs.
[0120] Figure 40 An example of a GNN model that can be used in a classification function, including the ReLU activation function, is shown.
[0121] In implementations, the classification function may also include a multi-layer perceptron (MLP) neural network (e.g., an MLP before and after the GNN). MLPs can be used to enhance node features. Enhancing node features allows the model to handle more complex situations by increasing its expressiveness.
[0122] Figure 41 An implementation of a classification function is shown, which includes a feedforward architecture comprising three main blocks: an MLP for feature enhancement, a GNN for node representation learning, and another MLP for classification.
[0123] Training a classification function may include using a loss function. The loss function may be, for example, a cross-entropy loss function. In implementations, the cross-entropy loss may be weighted based on different classes to compensate for imbalances in class distribution. Specifically, samples from the minority classes may be associated with larger weights, while samples from the majority classes may receive smaller weights. In implementations, the loss function may be defined by the following formula: in It is a sample. It is the output vector of the classification function of the samples. , It is a sample Ground real-time labels, It is the number of all categories. It is a category The output of the classification function, It is a category The output of the classification function, and Is with category Associated weights.
[0124] In implementation, the learning method and / or usage method may include, for example, displaying a graphical representation on a display. The graphical representation may include illustrations of one or more of the steps described above. The graphical representation may show 3D components. For example, a CAD model representing a mechanical component of a part may be shown in the graphical representation, including some features of the CAD model (e.g., features contained in node vectors and / or edge vectors). Some features may include radius and / or material orientation. A user may interact with the graphical representation to perform the method (e.g., determining the classification of each specification surface and / or determining mechanical interfaces). The graphical representation may include a CAD drawing of the CAD model or one or more partial CAD drawings.
[0125] Figure 42A and Figure 42BAn implementation of the method is shown, wherein a CAD model is displayed in a graphical interface.
[0126] The learning method was implemented, and the classification function was tested on the dataset. The training dataset in this implementation was obtained from a CAD dataset. The CAD dataset includes 30 components of mechanical parts (such as...). Figure 4 The components shown contain a total of over 5,800 mechanical interfaces.
[0127] Figure 43 The boxplot shows statistics detailing the number of nodes, edges, and degrees of freedom in the local graphs of the implemented training dataset. The median number of nodes in each local graph of the implemented training dataset is 21. The median number of edges in each local graph of the implemented training dataset is 66. The median number of degrees of freedom per node in each local graph of the implemented training dataset is 4. Therefore, the local graphs are relatively small in size and have a moderate level of connectivity. This suggests that the method performs better.
[0128] Figure 44A and Figure 44B A distribution map of the types of canonical surfaces included in the CAD model of the implemented CAD dataset is shown. Figure 44A The distribution map indicates that 54.2% of the specification surfaces are planes 441, 38.5% are cylindrical surfaces 442, 2.1% are conical surfaces 443, and 5.0% are reference surfaces 444.
[0129] Figure 45A and 45B The distribution of edge types (i.e., inner connections and contacts) of CAD models in the implemented CAD dataset is shown. Figure 45A The distribution chart indicates that 32.5% of the edge types are convex, 21.5% are coaxial and internal, and the remaining edge types are between 7% and 13%.
[0130] Figure 46A and Figure 46B A distribution map of labels for the standard surfaces included in the CAD model of the implemented CAD dataset is shown. Figure 46A The distribution plot indicates that 59.3% of the canonical surfaces are interface-less (461), 23.1% are principal surfaces (462), 12.6% are secondary surfaces (463), 2.3% are tertiary surfaces (464), and 2.9% are maintenance surfaces (465). In the training dataset including local graphs, the proportion of interface-less surfaces is significantly reduced. Therefore, the training dataset has a more balanced proportion of interfaced and interface-less surfaces, ensuring better training of the classification function.
[0131] Figure 47The distribution of the three categories in the training and test datasets used in the implementation is shown, demonstrating that the proportion of features is the same during training and testing.
[0132] Figure 48 The evolution of the loss and metric during training of the classification function is shown. In this implementation, the learning rate is 5e-4, the optimizer used is ADAM, and the batch size is 32.
[0133] Figures 49 to 50 The confusion matrix and classification report of the results of training the classification function in the implementation are shown. Figure 49 The confusion matrix shows that the interface-less, primary, and secondary faces are predicted very well with an accuracy of over 76%.
[0134] Figures 51 to 54 The results of the implemented classification function applied to different local CAD drawings are shown. For example... Figure 1 , Figure 2A , Figure 2B and Figure 2C As shown, the shading associated with label "0" corresponds to the canonical surface without interfaces. The shading associated with label "1" corresponds to the canonical surface of the primary face. The shading associated with label "2" corresponds to the canonical surface of the secondary face. The shading associated with label "3" corresponds to the canonical surface of the tertiary face. The shading associated with label "4" corresponds to the canonical surface of the maintenance face. Nodes with only one shading are nodes correctly evaluated by the implemented classification function (i.e., the predicted classification corresponds to, for example, the ground reality given by an expert). Nodes with boundary shadings different from the central shading are nodes misclassified by the classification function, where the central shading is the ground reality (e.g., the label given by the expert) classification, and the boundary shading is the inferred classification. Dashed edges correspond to the outer edges.
[0135] Figure 55 The report shows the training results of the classification function that only considers whether each node is an interface node or a node without an interface.
[0136] Figures 56 to 59 The results of the implemented classification function applied to different local CAD drawings are shown, considering only whether each node is an interface node or a node without an interface. In these figures, the shaded line associated with label "0" corresponds to a specification surface without an interface. The shaded line associated with label "1" corresponds to a specification surface that is an interface surface. Figures 51 to 54 In the diagram, nodes with only one shaded line are correctly evaluated by the implemented classification function, while nodes with boundary shaded lines different from the central shaded line are misclassified by the classification function. Dashed edges correspond to the outer edges.
[0137] Unless otherwise expressly stated, the methods and implementations presented in this disclosure may be combined in any possible manner. In particular, any method described herein may include any steps described with respect to any method and / or implementation described in connection with this disclosure.
[0138] "Designing and manufacturing a product / mechanical part / mechanical product" refers to any action or series of actions that details at least a portion of the process of modeling an object (3D or 2D) for manufacturing a product / mechanical part / mechanical product. This method can form the process described above or at least a portion of the process described above.
[0139] Therefore, this method typically manipulates modeling objects, such as CAD models output by the method. A modeling object is any object defined by data, for example, stored in a database. By extension, the expression "modeling object" refers to the data itself. Depending on the type of system, modeling objects can be defined by different kinds of data. This system can actually be any combination of CAD and CAM systems. In those different systems, modeling objects are defined by corresponding data. Therefore, one can say CAD objects, CAM objects, CAD data, and CAM data. However, these systems are not exclusive to one another, because modeling objects can be defined by data corresponding to any combination of these systems. Therefore, as will be apparent from the definition of a system provided below, such a system can be a CAD and / or CAM system.
[0140] CAD solutions (e.g., CAD systems or CAD software) also refer to any system, software, or hardware, such as CATIA, that is at least suitable for designing modeling objects based on their graphical representation and / or structured representation (e.g., feature trees). In this context, the data defining the modeling object includes data that allows the modeling object to be represented. CAD systems may provide a representation of CAD modeling objects, for example, using edges or lines (and in some cases, faces or surfaces). Lines, edges, or surfaces can be represented in various ways, such as non-uniform rational B-splines (NURBS). Specifically, CAD files contain specifications from which geometry can be generated, which in turn allows for the generation of representations. The specifications of the 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. Modeling objects can typically be assemblies of thousands of parts. The specifications of a CAD model (also called "CAD specifications") can be stored in CAD files as described above, but can also be stored as distributed CAD data on one or more storage devices, i.e., in a cloud environment.
[0141] In the context of CAD, modeling objects can typically be 2D or 3D modeling objects, such as representing products like parts or part assemblies, or possibly product components. 2D or 3D modeling objects can be manufactured products, products that are about to be manufactured. A "3D modeling object" refers to any object modeled from data that allows for its 3D representation. 3D representation allows parts to be viewed from all angles. For example, when 3D represented, a 3D modeling object can be manipulated and rotated around any axis of the 3D modeling object or around any axis on the screen displaying that representation. This specifically excludes 2D icons that are not 3D modeled. The display of 3D representations aids in 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.
[0142] 3D modeling objects can represent the geometry of a product to be manufactured in the real world after a virtual design of the product has been completed using, for example, CAD / CAE software solutions or CAD / CAE systems. This could include (e.g., mechanical) parts or components of parts (or equivalently, component assemblies, since from a methodological perspective, a component of a part can be considered as the part itself, or the method can be applied independently to each part 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 virtually limitless range of industrial sectors, including: aerospace, architecture, construction, consumer goods, high-tech equipment, industrial equipment, transportation, marine and / or offshore oil / gas production or transportation. Therefore, the 3D modeling objects designed using this method can represent industrial products, which can be any mechanical parts, such as parts for land vehicles (including, for example, automobiles and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), parts for aircraft (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, aerospace equipment, space equipment), parts for naval vehicles (including, for example, naval equipment, commercial vessels, marine equipment, yachts and workboats, marine equipment), general mechanical parts (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installation equipment, industrial equipment products, manufactured metal products, tire manufacturing products), electromechanical or electronic parts (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 and tobacco, beauty and personal care, and household product packaging).
[0143] CAD systems can be history-based. In this case, the modeling object is further defined by data including historical geometry. The modeling object can actually be designed by a physicist (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. This means that the creation history of design features is typically maintained through a non-cyclic data stream that links the geometry together via input and output links. The history-based modeling paradigm has been widely known since the early 1980s. The modeling object is described by two persistent data representations: history and B-rep (i.e., boundary representation). The B-rep is the computational result 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., the subdivision surface of the B-rep). The history of the part is the design intent. Essentially, the history collects information about the operations that 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 parts can be made according to design intent.
[0144] CAM solutions refer to any solution, hardware, or software suitable for managing manufacturing data of 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, a CAM solution can provide CAM users with information about feasibility, the duration of the manufacturing process, or the amount of resources (such as a specific robot) that can be used at a specific step in the manufacturing process; thus 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 about machining or molding parameters consistent with extrusion features provided in a CAD model. Such CAM solutions are provided by Dassault Systèmes (traded as CATIA, Solidworks, or DELMIA®).
[0145] Therefore, CAD solutions and CAM solutions are closely related. In fact, CAD solutions focus on the design of products or parts, while CAM solutions focus on how to manufacture those products or parts. Designing a CAD model is the first step in computer-aided manufacturing. 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 the manufacturing process when using CAM solutions. In reality, the CAD model is designed to be manufactured. Therefore, the CAD model is a virtual twin of the object to be manufactured, also known as a digital twin, with the following two objectives: To check the correct behavior of objects to be created in a specific environment; and Ensure the manufacturability of the object to be manufactured.
[0146] The modeling object output / designed / input by this method can be a 2D / 3D discrete geometric representation of a manufactured product / mechanical product / mechanical part, which is a data structure comprising a set of discrete data pieces. Each data piece can specify an element of the product / mechanical part, referred to as a discrete element. The discrete geometric representation can be 3D or alternatively 2D. Alternatively, the discrete geometric representation can be both 3D and 2D, i.e., it can include a 3D portion as a 3D discrete geometric representation and a 2D portion as a discrete geometric representation, such as a hybrid 3D-2D mesh (e.g., for modeling a product that includes both a thin part modeled with 2D portions and a thick part modeled with 3D portions). In the example, the discrete geometric representation can include more than 100, 1000, or 10000 such data pieces.
[0147] The modeling object output / designed / processed / used as input by the method can be a CAD model, for example, comprising or composed of feature trees and / or B-rep. This model can originate from a CAE model and can be generated by a CAE-to-CAD conversion process, which the method may include, for example, in the initial stage.
[0148] CAD models can be feature-based (e.g., a CAD model may include a feature tree, optionally including a corresponding B-rep obtained by performing the feature tree). Feature-based 3D models (e.g., during the determination of manufacturing files, CAM files, or CAM specifications stored as distributed data, as discussed below) allow for the detection and automatic resolution of geometric errors in the CAD model, such as clashes that will affect the manufacturing process. A clash is the mutual penetration between two parts in a 3D model, such as mutual penetration caused by their relative motion. Furthermore, such clashes can sometimes only be detected through finite element analysis based on a feature-based CAD model. Therefore, clash resolution can be performed either iteratively by modifying the parameters of the features and by performing finite element analysis, either in conjunction with the CAD solution or automatically by the CAD solution.
[0149] As another example, feature-based 3D models (e.g., during the determination of manufacturing files, CAM files, or CAM specifications stored as distributed data, as discussed below) allow for the automated creation of toolpaths for the machine via computer numerical control (CNC). Using a CNC, each object to be manufactured receives a custom computer program stored in and executed by a 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 using CNC.
[0150] A key characteristic of CAD models is that they can be precisely and explicitly designed by linking a small number of high-level parametric design operations (including, but not limited to, sketching, extrusion, and chamfering), and edited by modifying their high-level parameters. This is a key difference from polyhedral representations such as triangular surface meshes, which can represent any 3D shape but do not provide the modification or parametric capabilities required in an industrial design context.
[0151] Because CAD models are parametric models of parts / products, they are lighter in terms of memory footprint than other models such as CAE models. In fact, instead of storing a collection of discrete geometric elements such as finite element methods, CAD models allow for the storage of lists of features and parameters, which is lighter in terms of storage and memory footprint. Therefore, in addition to improving the editability of the model, working with CAD models reduces the memory requirements of the underlying system compared to, for example, CAE models. This is equivalent to the CAE to CAD conversion process effectively compressing the CAE model into a CAD model that is lighter in terms of memory requirements (e.g., space footprint), beyond simply converting a CAE model into a more easily editable CAD model.
[0152] The generation of custom computer programs from CAD files or distributed CAD specifications can be automated. Therefore, this generation can be error-proof and ensure a perfect reproduction of the CAD model into the manufactured product. CNC is considered to offer higher precision, complexity, and repeatability than manual machining. Other benefits include greater accuracy, speed, and flexibility, as well as capabilities such as contour machining, which allows milling contour shapes, including those generated in 3D designs.
[0153] B-rep (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 the 3D modeled object of the 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 subdivision surface of the B-rep). In the example, the B-rep represents a portion of the model object.
[0154] 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. They are related to each other as follows: A bounded portion of a curve is defined by two points (vertices) located on the curve. A bounded portion of a surface is defined by its boundary, which is a set of edges located on the surface. The boundaries of the edges of a face are connected by sharing vertices. Faces are connected by sharing edges. If two faces share an edge, then the two faces are adjacent. Similarly, if two edges share a vertex, then the two edges are adjacent. In a CAD system, B-Rep aggregates in an appropriate data structure defined by the relationships between topological entities and supporting geometries, as well as the mathematical description of the supporting geometries. The inner edges of a B-Rep are edges that are shared by exactly two faces. By definition, boundary edges are not shared, and a boundary edge defines only one face. By definition, a boundary face is defined by at least one boundary edge. A B-Rep is considered closed if all its edges are interior edges. A B-Rep is considered open if it includes at least one boundary edge. Closed B-Reps are used to model thick 3D volumes because they define the interior portion of the space that (virtually) encloses the material. Open B-Reps are used to model 3D skins, representing 3D objects whose thickness is small enough to be ignored.
[0155] 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 shapes through discretization. B-Rep, on the other hand, contains surface equations representing an accurate design, thus constituting a true "master model" for further manufacturing, whether generating toolpaths for CNC or 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 a manufactured object. B-Rep is also advantageous for simulating the behavior of 3D models. For stress, thermal, electromagnetic, or other analyses, B-Rep supports local refinement of the simulated mesh to capture physical phenomena, and for kinematics, it supports realistic contact modeling between surfaces. Finally, B-Rep allows for a small memory and / or file footprint. This is because the representation contains surfaces based solely on parameters. In other representations such as meshes, the equivalent surface comprises up to thousands of triangles. Secondly, because B-Rep does not contain any history-based information.
[0156] This method can be incorporated into a production process, which may include, after executing the method, producing a physical product corresponding to the modeled object designed / processed / output by the method. The production process may include the following steps: (For example, automatically) the method is applied to obtain a CAD model; Use the obtained CAD model to manufacture parts / products.
[0157] 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. Manufacturing using a CAD model may include, for example, one or more of the following steps: Edit the obtained CAD model; 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) are used for purposes such as simulations to verify mechanical, usage, and / or manufacturing properties and / or constraints (e.g., structural simulations, thermodynamic simulations, aerodynamic simulations). Editing CAD models based on simulation results; 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, including manufacturing instructions for manufacturing the product represented by the CAD model and / or control instructions for the manufacturing process and / or control instructions for commanding the manufacturing process or its manufacturing tools) may be determined (e.g., automatically) based on (e.g., edited) CAD models (e.g., control instructions derived from CAD files storing the CAD models and / or specifications of the CAD models or distributed CAM data stored on one or more storage devices) for the production / manufacturing of the manufactured product; Because of the manufacturing of products represented by the CAD model, CAD specifications and / or manufacturing specifications / CAM specifications are sent to the factory; and / or (For example, automatically) to produce / manufacture mechanical products represented by a model initially output by the method, based on determined manufacturing specifications / CAM specifications or based on a CAD model. This may include (for example, automatically) feeding manufacturing specifications / CAM specifications and / or CAD specifications to the machine performing the manufacturing process.
[0158] This final step in production / manufacturing can be referred to as the manufacturing step or production step. This step involves creating / fabricating parts / products based on CAD models and / or CAM specifications, for example, when the CAD models 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 punching 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.
[0159] Editing a CAD model can include one or more versions of the CAD model executed by a user (i.e., a designer), for example, using a CAD solution. Modifying a CAD model can include one or more modifications to each geometry and / or parameter of the CAD model. Modifications can include any or a series of modifications to the model's feature tree (e.g., modifications to feature parameters and / or specifications) and / or modifications to the CAD model's display representation (e.g., B-rep). Modifications that maintain the technical functionality of the part / product, i.e., modifications made by the user to the geometry and / or parameters of the model that may affect the downstream use and / or manufacturing of the part / product, solely for the purpose of making the CAD model more technically compatible with 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 the CAD model that make it technically compatible with the further use of the product / part once it has been manufactured, such modifications or series of modifications being based, for example, on simulation results.
[0160] 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), such that the mechanical product has a material geometry and / or distribution corresponding to the material geometry and / or distribution captured in the CAD model, potentially reaching manufacturing tolerances. Determining production specifications can include applying any CAM (Computer-Aided Manufacturing) or CAD-to-CAM solution to (e.g., automatically) determine the production specifications from the CAD model (e.g., any automatic CAD-to-CAM conversion algorithm). Such CAM or CAD-to-CAM solutions can include one or more of the following software solutions that enable the automatic generation of manufacturing instructions and toolpaths for a given manufacturing process based on a CAD model of the product to be manufactured: Fusion 360 FreeCAD CATIA, SOLIDWORKS, The Dassault Systèmes NC shop floor programmer shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-shop-floor-programmer The Dassault Systèmes NC milling machine programmer shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / nc-mill-turn-machine-programmer, and / or The Dassault Systèmes powder bed machine programmer is shown at https: / / my.3dexperience.3ds.com / welcome / fr / compass-world / rootroles / powder-bed-machine-programmer.
[0161] 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 and proceeding 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 a CAD model representing the mechanical product is fed to it (e.g., when 3D printing is initiated by a 3D printer operator). In other words, the 3D printer receives (e.g., automatically) the CAD model fed to the 3D printer, reads (e.g., automatically reads) the CAD model, and prints (e.g., automatically prints) the part by adding material (e.g., layer by layer) to replicate the geometry and / or distribution of the material captured by the CAD model. The 3D printer adds material, thereby replicating the geometry and / or distribution of the material captured by the CAD model in a virtually accurate manner until the resolution of the 3D printer is reached, optionally with or without tolerance errors and / or manufacturing corrections. Manufacturing may include determining such manufacturing corrections and / or tolerances, for example, by a user (e.g., the operator of the 3D printer) or automatically (by the 3D printer or the computer system controlling the 3D printer), for example, by modifying CAD specifications to match the specifications of the 3D printer. The production process may additionally or alternatively include determining, based on the CAD model (e.g., automatically by the 3D printer or the computer system controlling the 3D printer), the printing orientation, 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 / track), and other characteristics of the 3D printer head (e.g., laser beam, such as path, speed, intensity / temperature, and other parameters).
[0162] The product / part can alternatively 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 whether the CAD model has any geometrical specificities (e.g., errors or artifacts) that may affect the production process and whether (e.g., automatically) correcting such specificities. For example, if the CAD model still includes sharp edges (because machining or milling tools cannot produce sharp edges), then machining or milling based on the CAD model may not be performed. In this case, determining CAM specifications may include: (e.g., automatically) rounding or rounding such sharp edges (e.g., rounding or rounding with a radius or fillet radius corresponding to the radius of the cutting head of the machining tool (e.g., substantially equal to the tolerance error)) so that machining or milling based on the CAD model can be completed. More generally, determining CAM specifications may include automatically rounding or chamfering geometry within a CAD model that is incompatible with the radius of the machining or milling tool to enable machining / milling. This check and possible corrections (e.g., rounding or chamfering of geometry) can be performed automatically as previously discussed, but can also be performed manually by a user (e.g., a machining engineer) who manually corrects the CAD and / or CAM solution, for example, by constraining the user to perform corrections to make the CAD model conform to the specifications of the tool used in the machining process.
[0163] In addition to inspection, determining CAM specifications may include (e.g., automatically) determining the machining or milling path, i.e., the path taken by a machining tool to process the product. The path may include a set of coordinates and / or parametric trajectories to be followed by the machining tool. 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 calculating the boundaries of a Minkowski subtraction of a CAD model represented by the CAD model of the machining tool, as discussed, for example, in European patent application EP21306754.9 filed by Dassault Systèmes on 13 September 2021, which is incorporated herein by reference. It should be understood that the path may be a single path, e.g., followed continuously by the tool without disrupting 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., followed continuously by the tool without disrupting contact with the material to be cut. Optionally, determining the CAM specifications may then include, for example, setting machine parameters (e.g., automatically) based on the determined path and machine specifications, including cutting speed, cutting / piercing height, and / or die opening stroke. Optionally, determining the CAM specifications may then include, for example, configuring nesting (e.g., automatically), where the CAM solution determines the optimal orientation of the part to maximize processing efficiency.
[0164] In the case of machining or milling parts, determining the CAM specifications thus results in and outputs CAM specifications including machining paths, and optionally outputs configured nested set machine parameters and / or specifications. This output CAM specification can then be fed to the machining tool (e.g., directly and automatically), and / or the machining tool can then be programmed (e.g., directly and automatically) by reading the specifications, where the production process includes production / manufacturing steps, where the machine performs machining of the product according to the production specifications, for example, by directly and automatically executing the production specifications. The machining process involves the machining tool cutting a real-world block of material to replicate the geometry and / or distribution of the material captured by the CAD model, for example, to achieve tolerances (e.g., tens of micrometers for milling).
[0165] 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 that the geometry and / or distribution of the material captured by the CAD model is suitable for molding, and (e.g., automatically) performing appropriate corrections if the CAD model is not suitable for molding. Performing checks and appropriate corrections (if any) may be performed automatically, for example, using a CAD and / or CAM solution, or alternatively, by a user (e.g., a molding engineer) who allows the user to perform appropriate corrections to the CAD model and limit his / her corrections to make the CAD model conform to the specifications of the molding tool. Checks may include: verifying that the dimensions of the virtual product represented by the CAD model are consistent with the mold and / or verifying that the CAD model includes all draft angles required to demold the product, as known from the molding process itself. Determining the CAM specifications may then include: determining the amount of liquid material to be used for molding and / or the time for the liquid material to harden / solidify within the mold based on the CAD model, and outputting the CAM specifications including these parameters. The production process then includes (e.g., automatically) performing molding based on the output specifications, 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, for example, up to tolerance errors (e.g., up to incorporating or modifying the draft angle for demolding).
[0166] Alternatively, the product / part can be a stamped part, or may be referred to as a "stamped part," i.e., a part manufactured during the stamping process. In this case, the production process may include (e.g., automatically) determining CAM specifications based on a CAD model. The CAD model represents the stamped part; for example, if the part is to include some flanges, the stamped part may have one or more flanges, and in the latter case, may have additional material to be removed to form the unfolded state of one or more flanges of the part, as 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 (if any) that may represent flanges, which may have additional material (if any). This additional patch portion may exhibit g2 continuity over a length and then g1 continuity over another length.
[0167] 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 distribution of the material of the virtual product captured by the CAD model. If the CAD model also includes a representation of additional material to be removed to form the unfolded state of one or more flanges of the part, the additional material to be removed may be cut, for example, by machining. Determining the CAM specifications may also include determining the corresponding machining CAM specifications, for example, as previously discussed. If one or more flanges are present, determining the CAM specifications may include determining the geometry of the g2 continuity portion and the geometry of the g1 continuity portion, 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 the removal of the additional material. The CAM specifications thus determined may therefore include: parameters of the stamping tool, the specifications (if any) optionally used for folding the flanges, and the machining production specifications (if any) optionally used for removing the additional material.
[0168] The stamping production process can then, for example, directly and automatically output CAM specifications, and perform the stamping process based on the CAM specifications (e.g., automatically). The stamping process may include stamping (e.g., punching) a portion of the material to form a product represented by CAD specifications, which may have an unfolded flange and additional material (if any). Where appropriate, the stamping process may then include cutting the additional material based on machining production specifications and folding the flange based on said specifications to fold the flange over its g2 continuity length and provide a smooth appearance to the outer boundary of the part. In the latter case, the shape of the part, once manufactured, differs from the virtual counterpart of the part represented by the CAD model because the additional material is removed, the flange is folded, and the CAD model represents the part with the additional material and the flange in an unfolded state.
[0169] The 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 system. Therefore, the steps of the method may be executed fully or semi-automatically by the computer. In the example, at least some steps of the method can be triggered through user-computer interaction. The required level of user-computer interaction can depend on the anticipated level of automation and be balanced with the need to fulfill the user's wishes. In the example, this level of automation can be user-defined and / or predefined.
[0170] A typical example of a computer implementation of the method is to use a system suitable for that purpose to execute the method. This system may include a processor coupled to memory and a graphical user interface (GUI), with a computer program containing instructions for executing the method stored in the memory. 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 part for the program, and another part for the database).
[0171] Figure 60 An example of a system is shown, where the system is a client computer system, such as a user's workstation.
[0172] 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 random access memory 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 hard disk drives 1030. Mass storage devices suitable for tangibly representing computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; disks such as internal hard disks and removable disks; and magneto-optical disks. Any of the foregoing may be supplemented by or incorporated into a specially designed ASIC (Application-Specific Integrated Circuit). 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. The 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 touchpad and / or a touchscreen.
[0173] The computer program may include computer-executable instructions, including 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 a means, such as a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The method steps may be executed by a programmable processor that executes the instruction program 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. If desired, the application program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language. In any case, the language may be a compiled or interpreted language. The program may be a complete installation program or update program. Any situation where the application program causes the instructions to perform the method on the system. The computer program may alternatively be stored and executed on a server in a cloud computing environment, the server communicating with one or more clients over a network. In this scenario, the processing unit executes the instructions included in the program, thereby enabling the method to be executed in the cloud computing environment.
Claims
1. A computer-implemented method for a machine learning classification function, the classification function being configured to detect a mechanical interface of a CAD model, the CAD model representing a mechanical assembly of a part, the method comprising: Obtain a training dataset including training samples, each training sample including a graph indicating local contacts between parts of a CAD model representing a mechanical assembly of a part, the graph including: One or more nodes, each node representing a specification surface of the CAD model; each node includes a label, which is one of the following label lists: The main surface of the mechanical interface; Secondary surface of the mechanical interface; The three-level surface of the mechanical interface; The maintaining surface of the mechanical interface; and No interface; One or more inner edges, each inner edge representing an inner connection between canonical surfaces represented by nodes connected by the edge, the canonical surfaces representing portions of the same part of the mechanical assembly; and One or more outer edges, each outer edge representing a contact between canonical surfaces represented by nodes connected by the edge, the canonical surfaces representing portions of different parts of the mechanical assembly; and The classification function is trained based on the training dataset to classify each node of a graph indicating local contact between parts in a CAD model representing a mechanical component of a part, using the labels in the label list.
2. The method according to claim 1, wherein, Each graph included in the training dataset includes: Each node has a node vector, which is a feature vector representing the properties of the canonical surface represented by the node. The inner edge vector of each inner edge, wherein the inner edge vector is a feature vector representing the attribute of the inner connection represented by the edge; and / or The outer edge vector of each outer edge is a feature vector representing the contact attribute represented by the edge.
3. The method according to claim 2, wherein: The properties of the canonical surface, represented by each node vector, include: surface type, area, radius, orientation, material, or a combination of the above. The properties of the inner join represented by each inner edge vector include: convexity, concavity, coplanarity, coaxiality, adjacent smoothness, presence of fillets, presence of chamfers, presence of joins other than fillets or chamfers, or combinations thereof; and / or The properties of the contact represented by each outer vector include: contact, stacking, coaxiality, coplanarity, or a combination of the above.
4. The method according to any one of claims 1 to 3, wherein, Obtaining the training dataset includes: Obtain an initial dataset including CAD models of mechanical components representing parts; and For each CAD model representing a part in the initial dataset, determine one or more diagrams representing the corresponding local contacts between the parts of the mechanical assembly representing the part.
5. The method according to claim 4, wherein, Obtaining the training dataset further includes: determining a diagram representing the CAD model for each CAD model in the initial dataset before determining one or more diagrams representing the corresponding local contacts between parts of the mechanical assembly of the part for each CAD model, including: Determine the specification surfaces of the CAD model and generate nodes for each specification surface; Determine the inner connections between pairs of specification surfaces representing portions of the same part of the assembly represented by the CAD model, and generate inner edges for each pair of specification surfaces having inner connections; and Determine the contacts between pairs of specification surfaces representing portions of the component as represented by the CAD model, and generate an outer edge for each pair of contacting specification surfaces. Specifically, for each CAD model in the initial dataset, one or more diagrams representing the corresponding local contacts between parts of the mechanical assembly representing the part are determined based on the determined diagrams representing the CAD model.
6. The method according to claim 5, wherein, For each CAD model, determining one or more diagrams representing the corresponding local contacts between parts of the mechanical assembly of the part represented by the CAD model, based on the determined diagrams representing the CAD model, includes: Determine a sub-drawing representing the CAD model, the sub-drawing comprising: A set of nodes, including all nodes on the boundary of the defined graph that are outside any edge of the defined graph; and A set of inner and outer edges, including all inner and / or outer edges of the defined graph defined by the two nodes included in the set of nodes; Determine one or more connecting components of the subgraph; and For each connecting component in the sub-graph, a graph representing local contact between parts of the mechanical assembly of the part is determined, the graph including: One or more nodes, the one or more nodes including all nodes of the connecting component of the subgraph and all nodes that are 1 distance away from the connecting component of the subgraph; All inner edges of the graph adjacent to any node of the connecting component of the subgraph; and All outer edges of the connecting components of the subgraph.
7. The method according to any one of claims 1 to 6, wherein, Each specification surface is part of a plane, sphere, cone, torus, or cylinder.
8. The method according to any one of claims 1 to 7, wherein, The classification function includes a graph neural network.
9. The method according to any one of claims 1 to 8, wherein the classification function is further configured to: form a mechanical interface based on the output label by regrouping adjacent specification surfaces corresponding to the primary surface, secondary surface, tertiary surface and maintenance surface, the specification surfaces representing portions of the same mechanical part.
10. A machine learning classification function, said machine learning classification function being obtained according to any one of claims 1 to 9.
11. A computer-implemented method for using the machine learning classification function of claim 10, the method comprising: Obtain one or more drawings, each indicating a corresponding local contact between parts in the same CAD model representing a mechanical assembly of the parts. Each drawing includes: One or more nodes, each node representing a canonical surface of the CAD model; One or more inner edges, each inner edge representing an inner connection between canonical surfaces represented by nodes connected by the edge, the canonical surfaces representing portions of the same part of the mechanical assembly; and One or more outer edges, each outer edge representing a contact between canonical surfaces represented by nodes connected by the edge, the canonical surfaces representing portions of different parts of the mechanical assembly; and The machine learning classification function is applied to the one or more graphs.
12. The method according to claim 11, wherein, Obtaining the one or more graphs includes: Obtain the CAD model; Determining the drawing representing the CAD model includes: Determine the specification surfaces of the CAD model, and generate nodes for each specification surface; and Determine the inner connections between pairs of specification surfaces representing portions of the same part of the assembly represented by the CAD model, and generate inner edges for each pair of specification surfaces having inner connections; and Determine the contacts between pairs of specification surfaces representing portions of the component as represented by the CAD model, and generate an outer edge for each pair of contacting specification surfaces. Determine one or more drawings representing corresponding local contacts between parts of a mechanical assembly of the part represented by the CAD model, including: Determine a sub-graph representing the CAD model, the sub-graph including: A set of nodes, including all nodes on the boundary of the drawing representing the CAD model that are outside any edge of the drawing representing the CAD model; and A set of inner and outer edges, including all inner and / or outer edges of the graph representing the CAD model, defined by two nodes included in the set of nodes; Determine one or more connecting components of the subgraph; and For each connecting component in the sub-graph, a graph representing local contact between parts of the mechanical assembly of the part is determined, the graph including: One or more nodes, the one or more nodes including all nodes of the connecting component of the subgraph and all nodes that are 1 distance away from the connecting component of the subgraph; All inner edges of the graph adjacent to any node of the connecting component of the subgraph; and All outer edges of the connecting components of the sub-graph; The method further includes: collecting the results of applying the function to the one or more graphs by labeling the nodes of the graphs of the CAD model with the labels output by the function for each graph in the one or more graphs.
13. A computer program comprising instructions that, when executed on a computer, cause the computer to perform the method of any one of claims 1 to 9 and / or the method of any one of claims 11 to 12.
14. A computer-readable storage medium having the computer program of claim 13 and / or the machine learning classification function of claim 10 recorded thereon.
15. A system comprising a processor coupled to a memory, the memory storing the computer program of claim 13 and / or the machine learning classification function of claim 10.
Citation Information
Patent Citations
Orientation of a real object for 3D printing
EP3327593A1
3D axis machining design
EP4195088A1
