Product design with procedural graphs

JP2023104913A5Pending Publication Date: 2025-12-15DASSAULT SYSTEMES SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023004760
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-01-17
Filing Date
2023-01-17
Publication Date
2025-12-15

AI Technical Summary

Technical Problem

Existing design solutions based on manipulation of procedural graphs for manufacturing products are inefficient and lack ergonomic improvements.

Method used

A computer-implemented method using semantic representations of product sub-components, where each sub-component is defined by semantic nodes with procedural graphs and descriptions, allowing direct manipulation and assembly of sub-parts through semantic references and publications, simplifying the design process.

Benefits of technology

The method enhances the design efficiency by simplifying sub-component assembly, enabling rapid exploration of design alternatives, automating assembly, and improving the understanding of component connections, leading to improved product design and manufacturing processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a computer-implemented method for designing a product to be manufactured.SOLUTION: A method comprises providing first and second sub-components of a product. Each sub-component is represented by a semantic representation with one or more semantic nodes. Each semantic representation includes a respective procedural graph and semantic description of the semantic node for each semantic node of the semantic representation. Each semantic description includes at least one semantic publication and at least one reference. The method comprises assembling the first sub-component with the second sub-component such that one or more semantic references of the first sub-component each specify a corresponding semantic publication of the second sub-component. The method comprises executing the procedural graphs of the semantic representations of the first and second sub-components according to one or more specified semantic references.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer programs and systems, and more specifically, to methods, systems, and programs for designing products to be manufactured.

Background Art

[0002] In the market, numerous systems and programs are provided for the design, engineering, and manufacturing of objects. CAD is an acronym for Computer-Aided Design and relates to, for example, software solutions for designing objects. CAE is an acronym for Computer-Aided Engineering and relates to, for example, software solutions for simulating the physical behavior of future products. CAM is an acronym for Computer-Aided Manufacturing and relates to, for example, software solutions for defining manufacturing processes and operations. In such computer-aided design systems, the graphical user interface plays an important role in terms of the efficiency of the technology. These technologies can be incorporated into a Product Lifecycle Management (PLM) system. PLM refers to a business strategy that helps companies share product data, apply common processes, and utilize corporate knowledge to support the development of products from concept to end-of-life across the extended enterprise concept. In the PLM solution provided by Dassault Systèmes (under the trademarks of CATIA, ENOVIA, DELMIA), an engineering hub that organizes product engineering knowledge, a manufacturing hub that manages manufacturing engineering knowledge, and a corporate hub that enables the integration and connection of companies to the engineering and manufacturing hubs are provided. The combined system provides an open object model that links products, processes, and resources to enable dynamic and knowledge-based product creation and decision-making support that promotes the optimization of product definition, manufacturing preparation, production, and services. [Overview of the project] [Problems that the invention aims to solve]

[0003] Existing design solutions may be based on manipulating procedural graphs that represent the products to be manufactured.

[0004] Against this backdrop, improved design solutions are still needed. [Means for solving the problem]

[0005] Accordingly, a computer implementation method for designing a product to be manufactured is provided. The design method includes the step of providing a first subcomponent and a second subcomponent of the product. Each subcomponent is represented by a semantic representation having one or more semantic nodes. Each semantic representation has, for each semantic node of the semantic representation, a procedural graph of that semantic node and a semantic description thereof. Each semantic description includes at least one semantic publication. Each semantic publication includes an identifier that specifies a particular node in the procedural graph of the semantic node and is also specified by a semantic reference of another semantic node. Alternatively or additionally, each semantic description includes at least one semantic reference. Each semantic reference includes a path that specifies the semantic publication by referring to an identifier of the semantic publication of another semantic node. Each semantic reference is specified by a node in the procedural graph of the semantic nodes described above. The design method includes the step of assembling the first subcomponent with the second subcomponent by having one or more semantic references of the first subcomponent each specify the corresponding semantic publication of the second subcomponent. The design method also includes the step of executing the procedural graphs of the semantic representations of the first and second subcomponents according to the one or more semantic references specified above.

[0006] This design method may include one or more of the following: -The semantic description of each of the above semantic nodes includes the name of the semantic node, and each path may include a reference to the name of the corresponding semantic node and a reference to the identifier of the respective semantic publication. - The above assembly step is performed for each of the one or more semantic references above. --The steps of identifying the semantic node of the second subcomponent, which includes a semantic publication having a name corresponding to the name referenced by the path of the semantic reference, and an identifier corresponding to the identifier referenced by the path of the semantic reference, and --The semantic reference of the first subcomponent described above may include the step of specifying the semantic publication of the identified semantic node. - Prior to the assembly step described above, each of the semantic references to the first subcomponent specifies a corresponding semantic publication of the third subcomponent, and the method may further include a step of removing each of the one or more semantic references to the corresponding semantic publication of the third subcomponent before the assembly step described above. - Prior to the assembly step, each of the semantic publications of the second subcomponent that is specified during the assembly step by one of the one or more semantic references of the first subcomponent is specified by the corresponding semantic reference of the third subcomponent, and the method may further include the step of removing the specification of the corresponding semantic publication of the second subcomponent by the corresponding semantic reference of the third subcomponent before the assembly step. -This design method further applies to each subcomponent, --This may include the step of calculating the signature of each semantic node in the semantic representation of the subcomponent, the signature being: • The name of the above semantic expression, and • Concatenate the identifier of each semantic publication and / or the path of each semantic reference. -The first subcomponent and the second subcomponent described above may be stored in a database, which may further store one or more additional subcomponents, and this method further, --A step of identifying at least one subcomponent in the database that has a signature matching the signature of the first subcomponent provided above, wherein the identified at least one subcomponent includes a second subcomponent, --This may include the step of selecting a second subcomponent from the at least one subcomponent identified above. -During the steps described above, each procedural graph specifying a semantic reference may be executed after the execution of the procedural graph specified by the semantic publication that the semantic reference specifies. -Each sub-component may be a component of the white body or a further component of a component of the white body, and the white body is --A HAT component, and said HAT component is • ROOF (roof) component, ··ROOF PANEL (roof panel) component, ··REAR HEADER component, or, FRONT HEADER component, The above ROOF component, and • SIDE component, ··A-PILLAR component, ··B-PILLAR (B-pillar) component, ··C-PILLAR component, ··ROOF (roof) components, or ROCKER components, The above SIDE component, including the above HAT component, --FRONT components, and, --A PLATFORM component, and said PLATFORM component is • FLOOR-FRONT component, RAIL (rail) components, PANEL component, ··SEAT CROSSMEMBER component, or TUNNEL component, The above FLOOR-FRONT component, and • FLOOR-REAR components, The above PLATFORM may include the following: and / or - The above name of the semantic node may be the name of the above component corresponding to that semantic node.

[0007] Furthermore, a computer implementation method is provided for obtaining a semantic representation of a subcomponent. This method includes the step of determining one or more semantic nodes. For each semantic node, this method includes the step of defining the procedural graph and semantic description of the semantic node. The semantic description includes at least one semantic publication. Each semantic publication includes an identifier that specifies a particular node in the procedural graph of the semantic node and is also specified by a semantic reference of another semantic node. Alternatively or additionally, the semantic description includes at least one semantic reference. Each semantic reference includes a path that specifies the semantic publication by referencing an identifier of the semantic publication of another semantic node. Each semantic reference is specified by a node in the procedural graph of the semantic node.

[0008] Furthermore, a data structure that defines sub-components of a product is provided. The data structure includes a semantic representation having one or more semantic nodes. The data structure includes, for each semantic node, a respective procedural graph of the semantic node and a respective semantic description. The semantic description includes at least one semantic publication. Each semantic publication designates a particular node of the procedural graph of the semantic node and includes an identifier to be identified as specified by a semantic reference of another semantic node. Alternatively or additionally, the semantic description includes at least one semantic reference. Each semantic reference includes a path that designates the semantic publication by referring to an identifier of a semantic publication of another semantic node. Each semantic reference is designated by a certain node of the procedural graph of the semantic node.

[0009] A database including one or more product sub-components each defined by such a data structure is further provided.

[0010] A computer program including instructions for performing a method for designing a product to be manufactured as described above and / or a method for obtaining a semantic representation representing the sub-components as described above is further provided.

[0011] A computer-readable storage medium recording the computer program and / or the database is further provided.

[0012] Furthermore, a system including a processor coupled to a memory recording the computer program is provided. The processor may optionally be coupled to a graphical user interface.

[0013] A device including the computer-readable storage medium is further provided.

[0014] The device may form or function as a non-transitory computer-readable medium, for example, SaaS (Software as a Service) or other servers, or a cloud-based platform, etc. Alternatively, the device may include a processor coupled to a data storage medium. Accordingly, the device may form a computer system, wholly or in part (for example, the device is a subsystem of the entire system). The system may further include a graphical user interface coupled to the processor.

Brief Description of the Drawings

[0015] Non-limiting examples will be described with reference to the accompanying drawings.

[0016] [Figure 1] An example of a procedural graph representing a product is shown. [Figure 2] An example of a prior art method for replacing sub-components is shown. [Figure 3] An example of a 3D modeled object obtained by executing the procedural graph of FIG. 1 is shown. [Figure 4] An example of a design alternative for the product of FIG. 1 is shown. [Figure 5] Two examples of semantic nodes are shown. [Figure 6] Two examples of semantic nodes are shown. [Figure 7] An example of the specification of a semantic publication or semantic reference is shown. [Figure 8] An example of the semantic representation of the product of FIG. 1 is shown. [Figure 9] An example of replacing a sub-component of a product is shown. [Figure 10] An example of a white body is shown. [Figure 11] An example of the B-PILLAR component of the white body of FIG. 10 is shown. [Figure 12]An example of the semantic representation of the B-PILLAR component in Figure 11 is shown. [Figure 13] Figure 10 shows an example of replacing the FLOOR component of the white body. [Figure 14] An example of a semantic structure is shown. [Figure 15] Figure 14 shows the assembly of a semantic component having two sub-components. [Figure 16] Figure 15 shows the semantic components, including the assembly. [Figure 17] An example of the GUI for this system is shown. [Figure 18] An example of this system is shown. [Modes for carrying out the invention]

[0017] A computer implementation method for designing a product to be manufactured is provided. The design method includes the step of providing a first subcomponent and a second subcomponent of the product. Each subcomponent is represented by a semantic representation having one or more semantic nodes. Each semantic representation has, for each semantic node of the semantic representation, a procedural graph of that semantic node and a semantic description of that semantic node. Each semantic description includes at least one semantic publication. Each semantic publication includes an identifier that specifies a particular node in the procedural graph of the semantic node and is also specified by a semantic reference of another semantic node. Alternatively or additionally, each semantic description includes at least one semantic reference. Each semantic reference includes a path that specifies the semantic publication by referring to an identifier of the semantic publication of another semantic node. Each semantic reference is specified by a node in the procedural graph of the semantic node. The design method includes the step of assembling the first subcomponent with the second subcomponent by having one or more semantic references of the first subcomponent each specify the corresponding semantic publication of the second subcomponent. The design method also includes the step of executing a procedural graph of the semantic representations of the first and second subcomponents according to the one or more semantic references specified as described above. The above method improves the design of the product to be manufactured.

[0018] In particular, this method improves the design of a product by simplifying the assembly of its subcomponents. Specifically, the semantic representation of subcomponents simplifies the design process using procedural graphs and allows designers to quickly, efficiently, and ergonomically test subcomponent substitutes. Instead of manipulating procedural graph edges, which may involve defining or changing functions / procedures and / or rerouting edges, this method allows direct manipulation of product subcomponents using their semantic representations. In practice, the semantic representations of subcomponents provided by this method are based on a small number of computer objects configured to assemble subcomponents together: publications, semantic nodes, and references. A semantic node is assembled with another semantic node by one (or more) references to that semantic node specifying one (or more) publications of another semantic node. This specification is made possible by publication identifiers that the semantic references can refer to. Therefore, the assembly of two nodes is highly efficient because it relies on references between computer objects. Furthermore, these references may be based on strings, as will be discussed later (for example, strings may be used to refer to various nodes and their characteristics), and thus the references may be character-based, which simplifies assembly for the designer. Overall, semantic representation simplifies the assembly of sub-components and avoids the complex rerouting techniques of procedural graphs. Semantic representation provides meaning to the designer and simplifies the designer's design work, resulting in an ergonomically improved method.

[0019] Furthermore, semantic representation simplifies the search and retrieval of subcomponents within the database. In fact, the semantic nodes of the semantic representation allow queries for subcomponents in the database based on the subcomponent's semantic representation or its computer object (e.g., the subcomponent's name, which may be the name of the corresponding semantic node, the subcomponent's publication, and / or a reference to the subcomponent). As will be further explained below, this method may provide a subcomponent signature, which, based on the semantic representation, enables efficient and fast querying of the database. Therefore, queries may be based on mechanical considerations of the subcomponent, such as its type and how it assembles with other subcomponents, and these considerations may be understood through various publications and references. Thus, this method allows for the rapid and efficient reuse of subcomponent designs stored in the database, thereby enabling intelligent and efficient reuse of past designs. Moreover, semantic representations are close to human language, facilitating understanding of how components are interconnected, and thus making querying within the database ergonomic and user-friendly.

[0020] Furthermore, this method enables the automation of the assembly of subcomponents (all or part thereof) and simplifies the operation of procedural graphs. That is, for example, the assembly step of this method may be performed fully automatically. In fact, by specifying one or more semantic references, the method can discover, from a procedural standpoint, the connection between the procedural graphs of the first and second subcomponents. Therefore, during the steps to be executed, one or more semantic references can determine the direction and order in which the procedural graphs of each subcomponent are executed. The user no longer needs to manually input a one-way arc between the procedural graphs of the two subcomponents to assemble the first and second subcomponents. This task is performed automatically and efficiently. Moreover, the path of each semantic reference ensures that the specification is correct, thus guaranteeing that the execution of the procedural graphs matches what would be expected from the assembly of the two subcomponents. Therefore, this method can avoid specification errors that occur when the correspondence between the nodes of the first subcomponent and the second subcomponent is unclear (for example, when the node is listed differently in the two subcomponents, or when the two subcomponents were created by different design / engineering teams).

[0021] Therefore, this method allows for a rapid and efficient exploration of design possibilities and the testing of various assemblies during the design process. In addition to the design, one or more assemblies obtained using this method may be manufactured in the manufacturing process. Therefore, this method may be included in the manufacturing process. The manufacturing process is -The above method may be performed several times, for example (e.g., in an iterative design process), and the steps may include designing one or more sub-component assemblies (by executing the corresponding procedural graph according to this method) and obtaining one or more 3D modeled objects representing the sub-component assemblies. The steps of providing the first and second sub-components described above may include, in one or more executions of this method, a step of selecting a sub-component of the product under design (e.g., a second sub-component). This method may include, for example, a step of selecting the second sub-component based on a database query containing multiple alternatives for the second sub-component. The manufacturing process is -Optionally, this may include a step to evaluate the technical performance of the acquired design and assembly based on the 3D modeled object (e.g., using simulation). -This step may include manufacturing the assembly based on the modeled object.

[0022] The semantic representation-based design enabled by this method is particularly suitable for designing white bodies or white body parts. Indeed, the various components / sub-components of a white body have mechanical and assembly relationships with each other that are suitable for semantic representation and that can be well understood by such semantic representation. Therefore, semantic representation leads to improved white body design, especially compared to white body design using only procedural graphs, which can involve complex rerouting procedures.

[0023] This method is implemented on a computer. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any system. Thus, the steps of this method are performed by a computer, possibly fully automatically or semi-automatically. In some examples, at least some steps of this method may be initiated through user-computer interaction. The required level of user-computer interaction may depend on the expected level of automation and be balanced with the need to implement the user's wishes. In some examples, this level may be user-defined and / or predefined.

[0024] For example, the step of providing a first sub-part and a second sub-part of a product may be performed via user interaction. The providing step may be performed sequentially for each sub-part. For example, the step of providing the first sub-part may be performed before providing the second sub-part. The step of providing a sub-part may include the step of the user searching for the sub-part in the database by querying the database based on its semantic representation, for example, by querying one or more semantic nodes (for example, by entering a query consisting of the names of semantic nodes). The database may store the sub-parts of a product, and the sub-part may include the first sub-part and / or the second sub-part among other sub-parts. The providing step may include the step of retrieving from the database one or more sub-parts that have a semantic representation corresponding to (or matching) the entered query among the sub-parts stored in the database, for example, the retrieved sub-parts may include nodes that have a name corresponding to (i.e., the same or equivalent to) the name of the query. The user then selects one of the sub-parts retrieved from the database, thereby providing the selected sub-part.

[0025] A typical computer implementation is to perform the method on a system adapted for this purpose. This system may include a processor coupled with memory and a graphical user interface (GUI), where the memory stores computer programs containing instructions for performing the method. The memory may also store a database. The memory is any hardware adapted for such storage and may include several physically distinct components (e.g., one for the program and possibly one for the database).

[0026] A database is further provided containing one or more product subcomponents, each defined by a data structure. “Database” means a collection of data (i.e., information) organized for searching and retrieval (e.g., a relational database based on a given structured language such as SQL). When a database is stored in memory, it allows for rapid searching and retrieval by a computer. In practice, databases are configured, in combination with various data processing operations, to facilitate the storage, retrieval, modification, and deletion of data. A database may consist of a file or a set of files that can be divided into records, each record consisting of one or more fields. A field is the basic unit of data storage. Users may retrieve data primarily through queries. Users can use keywords and sorting commands to quickly search, rearrange, group, and select fields from a large number of records to obtain or create reports on specific aggregations of data according to the rules of the database management system being used.

[0027] The above data structure includes a semantic representation having one or more semantic nodes. For each semantic node, the above data structure includes the procedural graph and semantic description of that semantic node. The semantic description includes at least one semantic publication. Each semantic publication includes an identifier that specifies a particular node in the procedural graph of the above semantic node and is also specified by a semantic reference of another semantic node. Alternatively or additionally, the above semantic description includes at least one semantic reference. Each semantic reference includes a path that specifies the semantic publication by referencing the identifier of the semantic publication of another semantic node. Each semantic reference is specified by a node in the procedural graph of the above semantic node.

[0028] The data structure improves the search and retrieval of subcomponents in the database. Specifically, the data structure allows for the search and retrieval of product subcomponents based on assembly considerations (i.e., whether the subcomponent can be assembled with other subcomponents), thereby improving efficiency during the design phase. In particular, the semantic description of each subcomponent allows for determining whether a particular subcomponent can be automatically assembled with other subcomponents using this method. Therefore, the data structure is suitable for searching and retrieving substitutes for assembly subcomponents.

[0029] Furthermore, the data structure improves data storage, reducing the memory size required to store product subcomponents. In fact, semantic representation allows for efficient retrieval of subcomponents from the database, enabling smarter use of the memory size needed to store products with similar subcomponents. Semantic representation eliminates the need to duplicate each subcomponent in memory for each product, allowing each subcomponent to be stored in memory only once for different products. For example, if two products contain the same subcomponent, only one instance of that subcomponent is stored for each product, and it can be efficiently retrieved when needed based on its semantic representation.

[0030] The execution of a procedural graph may yield a 3D modeled object (e.g., represented as a B-rep or mesh) representing the assembly of the first and second sub-parts. A “3D modeled object” means an object modeled with data that enables a 3D representation. 3D representation allows the part to be viewed from all angles. For example, a 3D modeled object, when represented in 3D, may be processed and rotated based on any axis of its nature or any axis of the displayed screen. Thus, 2D icons that are not modeled in 3D are excluded. Displaying 3D representations facilitates design (i.e., improves the speed at which designers can statistically perform tasks). Since product design is part of the manufacturing process, this speeds up the manufacturing process in industry.

[0031] A 3D modeled object may represent the shape of a product that will be manufactured in the real world after the virtual design is complete. For example, each sub-part may be a component of the white body, and the product may be a vehicle (or a part thereof). The white body refers to the development and manufacturing stage of an automobile. At this stage, the sheets that make up its structure (excluding panels and decks) may be assembled by welding with iron chains after press forming, before components (chassis, engine) or equipment (windows, seats, upholstery, electrical, etc.) may be added. The white body means a vehicle or a part thereof at this manufacturing stage, for example, an intermediate or final stage. A sub-part of the white body is a component of the white body and therefore may be a component of an automobile under manufacture at either of these intermediate or final stages.

[0032] The computer program may include instructions that can be executed by the computer, and the instructions include means for causing the system to perform the Method. The program may be recordable on any data storage medium, including the system's memory. The program may be implemented, for example, in digital electronic circuits, or in computer hardware, firmware, software, or a combination thereof. The program may be implemented, for example, as a device such as a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of the Method may be performed by a programmable processor that executes a program of instructions to perform the functions of the Method by acting on input data and producing output. Thus, the processor may be programmable or coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to transmit data and instructions to them. The application program may be implemented in a high-level procedural programming language or an object-oriented programming language, or in assembly language or machine language, as necessary. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. In any case, the application of the program on the system results in instructions for performing the Method. Alternatively, the computer program may be stored and executed on a server in a cloud computing environment, which communicates with one or more clients via a network. In this case, the processing unit executes the instructions contained in the program, thereby executing this method in the cloud computing environment.

[0033] "Product design" means any action or set of actions that are at least part of the process of creating a 3D model object representing the product. In this method, the design may involve, for example, sequentially selecting one or more subcomponents from a database that stores multiple alternatives for each of the product's subcomponents, and assembling them. The design may also involve reusing subcomponents of a previously designed product (e.g., subcomponents stored in a database) in a new product to create an assembly of subcomponents. The design may also involve assembling subcomponents created by different engineering teams (e.g., each team creates one of the product's subcomponents, e.g., one team creates the first subcomponent and another team creates the second). Each subcomponent may be newly created before delivery and may be modified before and / or after assembly as needed.

[0034] As described above, this method may be included in a manufacturing process, which may include a step of manufacturing a physical product corresponding to the 3D modeled object provided by the execution of the procedural graph after performing this method. In either case, the provided 3D modeled object represents a manufactured object. Therefore, the 3D modeled object may be a modeled solid (i.e., a modeled object representing a solid). The 3D modeled object may include a portion of each subcomponent (i.e., at least one portion for each of the first and second subcomponents). Since this method improves product design, it also improves product manufacturing and increases the productivity of the manufacturing process.

[0035] The semantic description is explained further below. The semantic description of a general sub-component is described. Therefore, this description applies to the semantic descriptions of the first sub-component, the second sub-component, and / or the third sub-component.

[0036] A semantic description represents a sub-part and has one or more semantic nodes. The semantic description may contain information about the sub-part, for example, information about how to assemble the sub-part with other sub-parts. A semantic representation may be a semantic graph formed by one or more semantic nodes, or may include such a semantic graph. The graph may include edges that represent designations, which are sometimes called “semantic relationships.” The semantic graph may include one or more component nodes, each of which is connected to a group of semantic nodes (for example, by being connected to one or more nodes in the group), forming an interface between the group and another group connected to the component node. In this case, the semantic graph may further include one or more edges that represent relationships called “delegation relationships,” which designate one (or more) semantic nodes in the group to a component node corresponding to that group, i.e., the semantic node delegates one or more publications and / or one or more references to the component node. "Delegation" means that a semantic node's publications and / or references are included in a component node, and the semantic node includes references to one or more of the above publications and / or one or more references, and thus the semantic node delegates the assembly with another node to the component node. This method may store the semantic representation and / or semantic graph in memory.

[0037] A semantic representation has a procedural graph for each semantic node. The procedural graph may include nodes and edges between these nodes (e.g., unidirectional or bidirectional arcs). Each node in the procedural graph represents a geometric object (such as a point, line, contour, or any 3D object like a sphere). Each unidirectional arc may be associated with a function that takes the geometric object represented by the node specified by the unidirectional arc as input and outputs the geometric object represented by the starting node specified by that unidirectional arc. Examples of functions include feature extrusion, rotation, and incorporation (e.g., fillet, chamfer, shell). A function may be associated with two or more unidirectional arcs, in which case the function may take the geometric objects of the nodes specified by those two or more unidirectional arcs as input. Examples of functions associated with multiple unidirectional arcs include projection or addition of constraints between the geometric objects of nodes. The procedural graph of each semantic node may include a function that, when executed (e.g., sequentially), constructs a modeling object representing that semantic node. The nodes in a procedural graph may represent 3D model objects that represent semantic nodes at an intermediate stage of the construction.

[0038] A semantic representation has a semantic description for each semantic node. A semantic description includes computer data, i.e., publications and / or references, that describe / understand how a semantic node can connect to other semantic nodes (e.g., semantic nodes in a semantic representation representing another sub-part). A semantic description includes at least one semantic publication and / or at least one semantic reference. That is, a semantic description may include only at least one (i.e., one or more, e.g., 1, 2, or any integer n greater than 2) semantic publications, or only at least one (i.e., one or more, e.g., 1, 2, or any integer n greater than 2) semantic references, or a combination of at least one (i.e., one or more) semantic publications and at least one (i.e., one or more) semantic references.

[0039] A semantic publication of a semantic node is a computer object associated with that semantic node, specifying a particular node in the procedural graph relating to that semantic node. Each semantic publication specifies a particular node in this procedural graph (for example, each semantic publication may specify a different node, or there may be one publication that specifies only one node in the procedural graph). Specification is the act of connecting a first computer object to a second computer object so that when the first computer object is read, the second computer object is also read. Therefore, when the particular node is read (for example, during execution), the corresponding semantic publication is read. The same applies to specifying a semantic reference to a semantic publication (i.e., when a semantic publication is read, the semantic reference specifying that semantic publication is read), or to specifying a node in a procedural graph to a semantic reference (when a reference is read, the node specifying that reference is read).

[0040] The designation of a specific node by a semantic publication may be provided by any means. For example, each node in a procedural graph may contain a unique identifier (i.e., a unique identifier different from the identifiers of other nodes in the procedural graph), and a semantic publication may contain an identifier for the node designated by the semantic publication, thereby allowing the method to read the publication after the node in the procedural graph based on the unique identifier. The method may store the designation of a specific node in the procedural graph from each semantic publication in memory (e.g., together with the semantic representation or semantic node).

[0041] Each semantic publication includes an identifier, so that it may be specified by a semantic reference to another semantic node. That is, a semantic publication may be specified by a semantic reference to another semantic node, and thus the two semantic nodes can be assembled by specifying that reference to the publication. Before assembly, a semantic publication may not be specified by a semantic reference, and after assembly, a semantic publication may be specified. Therefore, before assembly, the semantic representation of the second sub-part may include one or more semantic publications that are not specified by a semantic reference, and these one or more semantic publications may be specified by one or more semantic references during assembly. Each semantic publication may be specified by only one semantic reference, and each semantic reference may specify only one semantic publication.

[0042] The identifier of a semantic publication contains data that distinguishes that publication from other publications in the semantic node that contains it. If a semantic node contains multiple publications, the identifier may be unique to all other publications in that semantic node. The identifier may contain a list of elements (ordered or unordered), such as a list of numbers or strings. In some examples, the name may be the name of a part of the object corresponding to the semantic node.

[0043] A semantic reference to a semantic node is a computer object associated with that semantic node, enabling the specification of a semantic publication. Each semantic reference includes a path that specifies a semantic publication by referencing the identifier of that semantic publication on another semantic node. In other words, a semantic reference may specify a semantic publication on another node, and thus, by specifying the reference to that publication, the assembly of two semantic nodes becomes possible. Before assembly, a semantic reference does not have to specify a semantic publication, and after assembly, a semantic reference may specify a semantic publication. Therefore, before assembly, the semantic representation of the first sub-part may include one or more semantic references that do not specify a semantic publication, and these one or more semantic references may be one or more semantic references that were specified during assembly. Each semantic reference may specify only one semantic publication.

[0044] The above path contains data that distinguishes a semantic publication in the semantic representation of another sub-part (i.e., among other semantic publications in the semantic representation of another sub-part). The path may be a path to a semantic publication in the semantic graph of the semantic representation.

[0045] Each semantic reference is specified by a node in the procedural graph of the semantic node. For example, each semantic reference of a semantic node may contain a unique identifier (i.e., a unique identifier different from the identifiers of other semantic references of that semantic node), and the node specifying the semantic reference may contain the identifier of that semantic reference. Thus, the method may read the node in the procedural graph after the semantic reference based on the unique identifier. The method may store the specification of each semantic reference from a particular node in the procedural graph in memory (e.g., together with the semantic representation or semantic node). Alternatively, a semantic reference may contain the identifier of the node specifying the semantic reference, and the method may include a step of automatically determining the semantic reference specified by that node from among the other semantic references of that semantic node based on the identifier of that node.

[0046] In some examples, each semantic description of a semantic node may include the name of the semantic node (for example, the name may be a string). The name of a semantic node may describe a subcomponent (i.e., corresponding to the real-world name of the subcomponent) if the semantic representation contains only one node, or it may describe a part of the subcomponent corresponding to the node (i.e., corresponding to the real-world name of the part). The part of the subcomponent may be a part that is configured to be assembled with another subcomponent, for example, an end or connection point of the subcomponent, or a part of that other subcomponent.

[0047] In some examples, each path may include the name of the corresponding semantic node and a reference to the identifier of its respective semantic publication. The name referenced by the path may correspond to the name of the semantic node of another sub-part (e.g., its component). The semantic node may include a semantic publication that has an identifier corresponding to the identifier referenced by the path. In some examples, the name and identifier may be included in the path. That is, a reference to a name and identifier may include the identifier and the name. For example, the name and identifier may be concatenated (e.g., as a string) within the path data (e.g., conventionally using "name / identifier", where "name" is the name of the semantic node of another sub-part and "identifier" is the identifier of the semantic publication). In other examples, a reference to a name and identifier may include a path to a semantic construct that contains the name and identifier. In this case, the path may use conventional ". / identifier", where "identifier" is the identifier of the semantic publication of the semantic construct and "." is the path to the semantic construct that contains the semantic node. In other words, names and identifiers may be referenced through semantic constructs.

[0048] In some examples, a semantic representation may include one or more semantic constructs. A semantic construct is a node that represents a set of semantic nodes (for example, if the set of nodes forms a sub-part and / or a component of a sub-part). A semantic construct establishes an interface with other semantic constructs through the semantic nodes it contains. To establish an interface, one or more semantic nodes in the set may delegate semantic references and / or semantic publications to the semantic construct, thereby enabling assembly with another semantic node in another semantic construct. The delegation of semantic references and / or semantic publications replaces direct specification between two semantic nodes in two semantic constructs, which may exist in other examples. Delegation is an alternative to direct specification. In this case, the path of the semantic reference may be a path to a semantic construct and may include an identifier of the semantic reference to which the semantic reference is delegated. Generally, products are composed of assembled parts, each of which typically corresponds to the assembly of sub-parts; therefore, semantic components improve product design. Thus, using semantic components allows for the representation of the assembly of parts and sub-parts, thereby improving product design.

[0049] The step of assembling the first sub-component with the second sub-component will be explained further here.

[0050] The step of assembling a first subcomponent with a second subcomponent includes the step of ensuring that one or more semantic references of the first subcomponent each specify a corresponding semantic publication of the second subcomponent. This assembling step may involve reading paths and identifiers (automatically or by user intervention) and creating possible connections in accordance with this reading (automatically or by user intervention, for example, by graphical user interaction, by drag-and-drop operations or keyboard operations, creating edges that connect the references to publications), thereby ensuring that the specifications between procedural nodes are ultimately properly made.

[0051] In some examples, the assembly step may be performed automatically. For example, the assembly step may include determining, for each of the one or more semantic references, the semantic publication of the second sub-part specified by that semantic reference based on the path (e.g., sequentially or in parallel). Each of the one or more semantic references may specify a different semantic publication of the second sub-part. In other examples, the specification by one or more semantic references may be performed semi-automatically. For example, this method may include the step of automatically determining, for each semantic reference, the semantic publication of the second sub-part specified by that semantic reference, and, at user interaction, confirming the specification of the semantic reference to the determined publication.

[0052] The step by which a semantic reference specifies a semantic publication will be explained further.

[0053] The step of a semantic reference designating a semantic publication may include the step of designating a node designating the semantic reference and a node designated by the semantic publication. The step of designating the node designating the semantic reference and the node designated by the semantic publication may include the step of constructing a first designation (from a first node in the procedural graph of the first subpart to the semantic reference of the first subpart), a second designation (from the semantic reference to the semantic publication of the second subpart), and a third designation (from the semantic publication to a second node in the procedural graph of the second subpart), thereby forming a single designation from the first node of the first subpart to the second node of the second subpart.

[0054] The step of executing the procedural graph of the semantic representations of the first and second subcomponents is described further here.

[0055] In a procedural graph, a one-way arc represents a procedural relationship between two nodes. "One-way" means that the arc designates (or directs) the second node of the two nodes from the first node of the two nodes. Each one-way arc is associated with a function, which may be associated only with that one-way arc or with other one-way arcs (i.e., each function is associated with one or more procedural relationships). Although not shown in the examples herein, a procedural graph may also include "constraints," which represent constraints between two geometric objects represented by each bidirectional arc or by the two nodes to which each bidirectional arc connects, and which are sometimes called "live relationships."

[0056] The steps of executing a procedural graph may include steps of executing each function of the procedural graph of the first and second subcomponents (for example, sequentially). The steps of executing a function may include steps of taking as input one or more geometric objects of one or more nodes specified by one or more procedural relationships associated with the function, applying the function to the one or more geometric objects, and outputting the result of applying the function to the one or more geometric objects. The result of applying the function to the one or more geometric objects is a geometric object represented by the starting node specified by one or more procedural relationships associated with the function. The direction of specification is merely one example of conventional practice, and in other examples of convention, the specification of a one-way arc may differ (for example, the node specified by the one-way arc may represent the output of the function, or the starting node specified by the one-way arc may be the input of the function). In these other conventions, the same conventions regarding designation may apply to designating from nodes to semantic references, and the same may apply to designating from semantic references to semantic publications, and from semantic publications to nodes (i.e., the designations are informationally the same, but the arrow / edge representation uses the reverse convention where the input of an edge is its starting node and the output of the edge is the node that the edge designates).

[0057] The steps of executing a procedural graph follow one or more specified semantic references (i.e., designations resulting from assembly). The execution steps may first include a step of exploring and executing a procedural graph of one or more semantic nodes (or a step of exploring and executing multiple procedural graphs of multiple semantic nodes in parallel). The one or more procedural graphs that are first explored and executed are each designated by a semantic publication. The execution steps may include a step of performing functions according to the direction of a one-way arc. At some point in the exploration, the exploration reaches a first node designated by a semantic publication, and the execution steps may include a step of reading the path of the semantic publication, thereby executing the semantic publication, and then reading a semantic reference designated by a second node of another procedural graph (i.e., the other procedural graph designates the semantic reference). Therefore, from a computational standpoint, reading the path leads to a connection between the first node and the second node, and thus the second node can be said to be a function of the first node (this function is also called an adjacency contact relationship). In the case of a semantic construct, the execution of the above path may pass through the semantic construct using delegation relationships.

[0058] Therefore, the step of executing the procedural graph may include the step of executing each function of the procedural graph of the first subcomponent and the second subcomponent, including the adjacent contact relationship between nodes belonging to the first subcomponent and nodes belonging to the second subcomponent.

[0059] The adjacent contact relationship defined between the nodes of the first and second sub-parts may represent the assembly of the first and second sub-parts (e.g., nesting or welding of parts). In fact, the adjacent contact relationship takes a geometric object representing the second sub-part (or a part thereof) as input and outputs a geometric object representing the assembly of the first and second sub-parts. For example, if the first sub-part is a rod and the second sub-part is a plate, the output geometric object may represent the projection of the rod onto the plate. Thus, the adjacent contact relationship defined between the nodes of the first and second sub-parts represents the mechanical assembly of the first and second sub-parts.

[0060] In some examples, during the steps to be performed above, each procedural graph specifying a semantic reference may be executed after the procedural graph specified by the semantic publication specified by that semantic reference has been executed. For example, the steps to be performed above may include, for each of the one or more specified semantic references, the step of executing a procedural graph that includes the nodes specified by the semantic publication specified by that semantic reference. The step of executing the procedural graph may include the step of executing each function of the procedural graph (i.e., the function that takes geometric objects, each represented by a node in the procedural graph, as input and outputs them). The steps to be performed then may include the step of executing the adjacency contact relationships defined between the nodes of the first and second sub-components based on the specification of the reference to the publication and the specification of the nodes to that reference. The steps to be performed may include the step of executing a procedural graph that includes the nodes specifying the semantic reference.

[0061] In some examples, the assembly step described above may include, for each of the one or more semantic references, the step of identifying the semantic publication specified by that semantic reference. The step of identifying the semantic publication may include determining the semantic node of a second sub-component that has a name corresponding to the name referenced by the path of the semantic reference. "Corresponding" means that the names may be the same or equivalent (e.g., synonyms). Next, the identifying step may include identifying the semantic publication that has an identifier corresponding to an identifier contained in the path of the semantic reference. "Corresponding" means the same. The semantic publication may be identified from among the other semantic publications of the determined semantic node (either automatically or by the user, for example, by manipulating the semantic publications displayed on the display during user interaction). The assembly step described above may further include the step of the semantic reference of the first sub-component specifying the semantic publication of the semantic node identified as described above.

[0062] In some examples, before assembly, one or more semantic references of the first subcomponent each specify the corresponding semantic publication of the third subcomponent. The third subcomponent and the second subcomponent may each belong to the same type of subcomponent (e.g., having the same function for the product but with a different design). The third subcomponent and the second subcomponent may represent substitutes for this type of subcomponent. The method may further include a step of removing the specification for each semantic publication of the third subcomponent of the one or more semantic references mentioned above (either automatically or by the user, for example, by deleting the specification displayed on the display during user interaction). The step of removing the specification may include a step of removing the unidirectional arc formed during the specification. The step of removing the formed unidirectional arc may include a step of decomposing each of the aforementioned second specification (i.e., each specification from the semantic reference of the first subcomponent to the semantic publication of the third subcomponent).

[0063] In these examples, the method may further include a step of searching for the second subpart in the database (e.g., by querying its name) based on the semantic representation of the third subpart, before assembling the first subpart with the second subpart. The search step may be performed as described above and obtain a list of subparts having semantic representations corresponding to the semantic representation of the third subpart. The method may further include a step of displaying the retrieved list of subparts (e.g., displaying a 3D representation of each subpart in the list). The method may further include a step of selecting one of the subparts from the retrieved list (e.g., by clicking on one of the displayed 3D representations). The subparts stored in the database may be from previous designs and are therefore reused in the design of new products.

[0064] Therefore, this method may include the step of automatically or through user interaction disassembling the first sub-component and the third sub-component, and then automatically assembling the first sub-component with the second sub-component after disassembly. Thus, this method allows for efficient testing of various substitutes for sub-components of the product to be manufactured. Therefore, this method makes it possible to automatically consider design alternatives.

[0065] In these examples, before assembly, one or more semantic references of the first subpart (i.e., semantic references that specify the publication of the second subpart during assembly) each specify the corresponding semantic publication of the third subpart, and after assembly, these semantic references of the first subpart specify the semantic publication of the second subpart. In these examples, the method further includes the step of removing each of the one or more semantic reference designations for the corresponding semantic publication of the third subpart before the assembly step. Thus, the third subpart is replaced with the second subpart. In other alternative examples, each semantic publication of the second subpart that is specified by one or more semantic references of the first subpart during assembly is specified by each of the semantic references of the third subpart before assembly. In these alternative examples, the method further includes the step of removing each of the semantic reference designations of the third subpart for each semantic publication of the second subpart before the assembly step. Therefore, the third sub-part is replaced with the first sub-part.

[0066] In some examples, the method may further include the step of calculating a signature for each semantic node of the semantic representation representing each subcomponent. For example, the signature may concatenate the name of the semantic representation with the attributes of the semantic node. The attributes of the semantic node may include identifiers for each semantic publication contained within the semantic node. Alternatively or additionally, the attributes of the semantic node may include paths to each semantic reference contained within the semantic node. The signature may be a 224-bit identifier calculated for each semantic representation, which can enable the rapid identification of semantic representations with similar content within a set of semantic representations (e.g., stored in a database). The signature allows for quick comparison of two semantic representations. This method may calculate the signature by creating a string by concatenating parts of the data of the semantic representation (the name of the semantic description, the type, name and path of each semantic publication sorted alphabetically by name, and the type and name of each semantic reference sorted alphabetically by name), or by concatenating the string using the SHA-224 hash function (for example, as described at https: / / fr.wikipedia.org / wiki / SHA-2).

[0067] In some examples, the first and second sub-parts may be stored in a database. The database may further store one or more additional sub-parts. These one or more additional sub-parts may include other substitutes of the same type as the second sub-part. The method may include a step of querying the database based on a signature (for example, a user may enter a signature, and the method may search the database for a sub-part corresponding to that signature, e.g., a sub-part equal to or similar to the entered signature, or a sub-part supplementing the entered signature). The method may further include a step of identifying in the database at least one sub-part having a signature that matches the signature of the provided first sub-part. For example, the identification step may include determining, for each of the at least one subcomponent, that one or more semantic references of the first subcomponent can specify the corresponding semantic publication of the at least one subcomponent (for example, determining that each path of one or more semantic references of the first subcomponent can specify the semantic publication by referring to the identifier of the corresponding semantic publication of the at least one subcomponent). The identified at least one subcomponent may include a second subcomponent. The method may include the step of selecting a second subcomponent from the identified at least one subcomponent. The selection step may be performed by user interaction. For example, the method may include the step of displaying the at least one subcomponent in a graphical user interface, and the user may select one of the at least one subcomponent using a pointing device such as a mouse.

[0068] Furthermore, a computer implementation method for obtaining a semantic representation of a sub-component (hereinafter referred to as the "acquisition method") is provided.

[0069] This acquisition method includes a step of determining one or more semantic nodes. The step of determining one or more semantic nodes may be performed manually. For example, the user may input the number of nodes and name each node in a graphical user interface. Alternatively, the step of determining one or more semantic nodes may be performed manually. For example, the determining step may include detecting the end portions or connecting portions of subcomponents and assigning a corresponding semantic node to each detected end portion or connecting portion of the subcomponents.

[0070] This retrieval method includes the step of defining, for each semantic node, the procedural graph and the semantic description for that semantic node. The procedural graph may be defined automatically. For example, the procedural graph may be retrieved from a database or automatically extracted from a model of a portion of a sub-component representing the semantic node (e.g., using a CAD system). The semantic description may include at least one semantic publication and / or at least one semantic reference (e.g., automatically determined by this retrieval method based on the procedural graph or manually entered by the user). The path of at least one semantic reference and / or the identifier of at least one semantic publication may be automatically determined by this retrieval method or manually entered by the user.

[0071] After determining the semantic references (i.e., semantic references of semantic nodes and semantic descriptions), the acquisition method may include the step of associating those semantic references with sub-components (i.e., linking the semantic representation to the sub-components). This acquisition method may be performed after the design of the sub-components.

[0072] A 3D modeled object can be represented as a graph where nodes are geometric objects and unidirectional arcs are the procedural relationships between these objects.

[0073] An example of this method will be explained with reference to Figures 1 to 17.

[0074] Figure 1 shows an example of a procedural graph representing a product. The procedural graph includes nodes (for example, node 101a with identifier "1" or node 102a with identifier "2") and one-way arcs between these nodes (for example, one-way arc 103 between nodes 101a and 102a). Each node represents its respective geometric object. Node 101a represents contour 101b, and node 102a represents parallelogram 102b. One-way arcs in a procedural graph represent functions between nodes in the graph. A function takes as input the geometric objects represented by each node specified in the one-way arc associated with that function. A function may be associated with a single one-way arc or with multiple one-way arcs. For example, one-way arc 103 is associated with an extrusion function, and in this example, that function is associated with a single one-way arc (one-way arc 103). Examples of functions include wireframe operations (points, multiple points, extrema, extrema on polar coordinates, lines, axes, polylines, planes, projections, composites, reflect lines, silhouettes, intersections, parallel curves, roll curve offsets, 3D curve offsets, circles, corners, joined curves, conic sections, splines, helices, spirals, spines, contour lines, isoparametric curves, or curves from equations), surface operations (extrude, revolve, sphere, cylinder, offset, variable offset, rough offset, Mid surface, sweep, adaptive sweep, fill, multi-section surface, or blend), or volume operations (extruded volume, revolved volume, multi-section volume, sweep volume, thickness surface, closed surface, draft, gradually changing angle draft, shell, sawing a surface, thickness, add, delete, intersection, sum trim, or hide features). The function takes the geometric object 101b of node 101a specified by the one-way arc 103 as input. The geometric object 102b of node 102a, which is the starting point specified by the one-way arc 103, is the result of extruding geometric object 101b in the normal direction (in this example, the normal direction of geometric object 101b). Similarly, the geometric object of node "3" is the result of filleting the four sides of the geometric object of node "2".The geometric object at node "5" is the result of extruding the contour of node "4" in the direction of the contour's normal. Unidirectional arcs 104 and 105 are associated with the same function, the projection function. The projection function projects a geometric object represented by one of the specified nodes onto a geometric object represented by another of the specified nodes. In this example, the geometric object at node "7" is the result of projecting the contour of node "6" onto the geometric object at node "3". Similarly, the geometric object at node "8" is the result of projecting the contour of node "6" onto the geometric object at node "5". The geometric object at node "9" is the result of a sweep operation using the contours of node "7" and node "8". The sweep operation is a function that creates a 3D object between two contours.

[0075] Figure 2 shows an example of a prior art method for replacing a sub-part, in which the sub-part is replaced by a step of manually manipulating an underlying procedural graph. The replacement is a step of replacing sub-part 110 with another sub-part 115. The prior art method includes step S01 of adding another sub-part 115 to a 3D model object representing a product. The prior art method includes step S02 of editing the projection operation of sub-part 110, thereby editing the unidirectional arc in its underlying procedural graph that designates the node corresponding to sub-part 110. The editing step S02 includes deleting the designation for sub-part 110 in the underlying procedural graph and adding a new designation for the added other sub-part 115 in the underlying procedural graph. The prior art method includes step S03 of deleting sub-part 110, thereby obtaining a 3D model object with the other sub-part 115.

[0076] Figure 3 shows an example of a 3D modeled object obtained by executing the procedural graph of Figure 1. The product represented by the procedural graph includes three sub-parts ("Part 1", "Part 2", and "Part 3") that are assembled during the manufacture of the product. Each sub-part is associated with a part of the procedural graph. Sub-part 201a is associated with part 201b of the procedural graph (and sub-part 202a is associated with part 202b, and sub-part 203a is associated with part 203b). Executing the procedural graph creates a 3D modeled object representing the product. The constructed 3D modeled object includes three sub-objects 201a, 202a, and 203a, each representing a sub-part of the product. The functions associated with the unidirectional arc between two parts of the procedural graph (e.g., between 202b and 203b) represent the assembly of the sub-parts associated with each part of the two parts. Executing a procedural graph involves steps (also known as graph traversal) in which the functions of the graph are performed sequentially according to the direction of a one-way arc.

[0077] Figure 4 shows an example of a design alternative for the product in Figure 1. In this product, sub-part "Part.2" has been replaced with design alternative "Part.4". Therefore, the product is the same between Figure 1 and Figure 3, but a design alternative exists. Design alternative "Part.4" in Figure 3 performs the same role as "Part.2" in Figure 1. In the procedural graph, the step of replacing sub-part "Part.2" with design alternative "Part.4" involves deleting a one-way arc between node "8" and node "5" of sub-part "Part.2", and adding a new one-way arc between node "8" and node "11" of "Part.4".

[0078] Figures 5 and 6 show two examples of semantic nodes. Figure 5 shows a first semantic node called "ROOF". The first semantic node contains a semantic description that includes the name of the first semantic node, "ROOF", and a semantic publication 301. The semantic publication 301 contains the identifier "BOTTOM", as specified by a semantic reference of another semantic node. Figure 6 shows a second semantic node called "PILLAR". The second semantic node contains the name of the second semantic node, "PILLAR", and two semantic references 302 and 303. The semantic reference 302 contains the path "ROOF / BOTTOM", as specified by a semantic publication of another semantic node. The path "ROOF / BOTTOM" is a concatenation of the names of each semantic node ("ROOF") and the identifiers of each semantic publication ("BOTTOM"). Therefore, semantic reference 302 can specify a semantic publication containing the identifier "BOTTOM" contained within a semantic node called "ROOF" (for example, semantic publication 301 of the first semantic node in Figure 5). Semantic reference 303, the path "ROCKER / TOP", is a concatenation of the names of each semantic node ("ROCKER") and the identifiers of each semantic publication ("TOP"). Therefore, semantic reference 303 can specify a semantic publication containing the identifier "TOP" contained within a semantic node called "ROCKER".

[0079] Figure 7 shows an example of specifying a semantic publication or reference. Figure 7 shows a first semantic node 304 called "ROCKER". The semantic description of the first semantic node contains a single publication with the identifier "TOP". The first semantic node contains a procedural graph 305. The publication "TOP" specifies node "5" in the procedural graph 305. Figure 7 further shows a second semantic node 306 called "PILLAR" in Figure 6. Semantic reference 302 is specified by node "7" in the procedural graph 307, and semantic reference 303 is specified by node "8". Figure 7 also shows a third semantic node. The third semantic node contains the same semantic description as the first semantic node, but contains a different semantic graph 309. The publication "TOP" specifies node "11" in the procedural graph 309.

[0080] Figure 8 shows an example of the semantic representation of the product in Figure 1. The product includes a first sub-component 310a called "ROOF," a second sub-component 311a called "PILLAR," and a third sub-component 312a called "ROCKER." The semantic representation includes a semantic node for each sub-component (node ​​310b for "ROOF," node 311b for "PILLAR," and node 312b for "ROCKER"). The semantic reference "TOP" for "PILLAR" points to the semantic publication "BOTTOM" for "ROOF," and the semantic reference "BOTTOM" for "PILLAR" points to the semantic publication "TOP" for "ROCKER." This semantic representation is close to human language, making it easy to understand how the components are connected.

[0081] Figure 9 shows an example of replacing a sub-component of a product. In this example, the method replaces the sub-component "ROCKER" associated with semantic node 321. In the semantic representation of the product, node "ROCKER" 321 contains the semantic publication "TOP" (320), which is specified by the semantic reference "BOTTOM" of node "PILLAR". The method includes the step of removing the designation 320 to the semantic reference "TOP" of node 321 and adding a new designation 322 to the semantic reference "TOP" of node 323.

[0082] Figure 10 shows the components of the white body and a tree structure illustrating how these components are assembled together to form the entire white body. As shown in Figure 10, the white body includes components representing each part (or assembly of parts) of the automobile, and components of those components. The white body includes the HAT component, FRONT component, and PLATFORM component. The HAT component includes the ROOF component and SIDE component. The ROOF component includes the ROOF PANEL component, REAR HEADER component, and FRONT HEADER component. The SIDE component includes the PILLAR component, B-PILLAR component, C-PILLAR component, ROOF component, and ROCKER component. The PLATFORM component includes the FLOOR-FRONT component and FLOOR-REAR component. The FLOOR-FRONT component includes the RAIL component, PANEL component, SEAT CROSSMEMBER component, and TUNNEL component.

[0083] Figure 11 shows an example of a B-PILLAR component of the white body in Figure 10. The B-PILLAR component 330 is mechanically assembled with the ROOF component 331 and the ROCKER component 332. Figure 12 shows an example of the semantic representation of the B-PILLAR component in Figure 11. The semantic representation includes a first semantic node representing the ROOF component 331, a second semantic node representing the B-PILLAR component 330, and a third semantic node representing the ROCKER component 332. The second semantic node contains eight semantic references, four of which specify the respective semantic publications of the ROOF component, and the other four specify the respective semantic publications of the ROCKER.

[0084] Figure 13 shows an example of replacing the FLOOR component of the white body in Figure 10. The FLOOR component includes two replacements 341 and 342. The method takes a vehicle 340 containing the first replacement 341 as input. The method replaces the first replacement 341 with the second replacement 342. Next, the method outputs a vehicle 343 containing the second replacement 341.

[0085] Figure 14 shows an example of a semantic construct. The semantic construct includes a first semantic node "HEAD" 402 and a second semantic node "BASE" 403. The semantic reference "BOTTOM" of the semantic node "BASE" is delegated to a semantic construct that contains a copy of the semantic reference. The path ". / BOTTOM" of the semantic reference "BOTTOM" is a concatenation of the path ". / " to the semantic construct and the identifier of the semantic reference "BOTTOM" in the semantic construct, which includes the name and identifier of the semantic publication that the semantic reference "BOTTOM" can specify. The semantic publication that can be specified by the semantic reference "BOTTOM" is contained in a semantic node called "ROCKER" and has the identifier "TOP". This semantic reference is delegated to the semantic construct. Semantic constructs are close to human language, making it easy to understand how the components are connected.

[0086] Figure 15 shows the assembly of the semantic component of Figure 13, which has two subcomponents. The assembly includes the step of assigning the semantic reference "BOTTOM" of the semantic node "BASE" to the semantic publication "TOP" of "ROCKER". As mentioned above, this semantic reference "BOTTOM" is delegated to the semantic component "PILLAR". The assembly further includes the step of assigning the semantic reference "TOP" of the semantic node "HEAD" to the semantic publication "BOTTOM" of "ROOF". The semantic reference "TOP" of the semantic node "HEAD" is also delegated to the above semantic component.

[0087] Figure 16 shows a semantic component including the assembly shown in Figure 15. After assembly as described in Figure 14, the method includes the step of adding a semantic component "SIDE" 410, which includes the semantic node "ROOF" 411, the semantic node of the semantic component "PILLAR" 412, and the semantic node "ROCKER" 413. The method may further include the step of replacing sub-component "PILLAR" 412 with another sub-component "PILLAR" 412, or the step of adding the semantic component "SIDE" 410 to an automobile that includes a semantic representation having a semantic component called "SIDE" 410 (or replacing the automobile's sub-component "SIDE" 410 with a substitute for component "SIDE410").

[0088] Figure 17 shows an example of a GUI for a system that is a CAD system.

[0089] GUI2100 may be a typical CAD-like interface having standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menus and toolbars include a set of icons that the user can select, each icon associated with one or more actions or functions known in the art. Some of these icons are associated with software tools suitable for editing and working with 3D modeled objects 2000 displayed in GUI2100. The software tools may be grouped into workbenches. Each workbench consists of a subset of software tools. In particular, one of the workbenches is an editing workbench suitable for editing the geometric features of the modeled product 2000. During operation, the designer may, for example, pre-select a portion of the object 2000, select the appropriate icon, and then begin operations (e.g., changing dimensions, color, etc.), or edit geometric constraints. For example, a common CAD operation is modeling extrusions and folds of 3D modeled objects displayed on the screen. The GUI may, for example, display data 2500 related to the displayed product 2000. In the example shown, the data 2500 and its 3D representation 2000, displayed as a "function tree," relate to a brake assembly including a brake caliper and disc. The GUI may further display various types of graphic tools 2130, 2070, and 2080 for, for example, facilitating the 3D orientation of objects, initiating simulations of the operation of edited products, or rendering various attributes of the displayed product 2000. The cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphic tools.

[0090] Figure 18 shows an example of a system, where the system is a client computer system, such as a user's workstation.

[0091] 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 further includes a video random access memory 1100 and associated graphics processing unit (GPU) 1110 connected to the bus. The video RAM 1100 is also known in the art as a frame buffer. A mass storage device controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, such as semiconductor memory devices like EPROMs, EEPROMs, and flash memory devices; magnetic disks like internal hard disks and removable disks; and magneto-optical disks. Any of the above may be complemented by or incorporated into a specially designed application-specific integrated circuit (ASIC). A network adapter 1050 manages access to the network 1060. The client computer may also include haptic devices 1090, such as a cursor control device and a keyboard. A cursor control device is used in a client computer to allow the user to selectively position the cursor at any desired location on the display 1080. Furthermore, the cursor control device enables the user to select various commands and input control signals. The cursor control device includes multiple signal generators for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the mouse buttons are used to generate signals. Alternatively or additionally, the client computer system may include a pressure-sensitive pad and / or a pressure-sensitive screen.

Claims

1. 1. A computer-implemented method for designing a product to be manufactured, comprising: - providing a first sub-part and a second sub-part of said product, Each sub-part is represented by a semantic representation having one or more semantic nodes, each semantic representation having, for each semantic node of the semantic representation, a respective procedural graph of the semantic node and a respective semantic description, the respective semantic description comprising: at least one semantic publication, each of which specifies a particular node of the procedural graph of semantic nodes and includes an identifier as specified by a semantic reference of another semantic node; and / or at least one semantic reference, each of which comprises a path designating a semantic publication of another semantic node by referencing said identifier of said semantic publication, and each semantic reference is designated by a node of said procedural graph of said semantic node; and - assembling said first sub-part with said second sub-part by one or more semantic references of said first sub-part each specifying a corresponding semantic publication of said second sub-part; - executing the procedural graph of the semantic representation of the first sub-part and the second sub-part according to the specified one or more semantic references; 11. A computer-implemented method comprising:

2. 2. The computer-implemented method of claim 1, wherein each respective semantic description of the semantic nodes includes a name of the semantic node, and each path includes a reference to the name of the respective semantic node and a reference to the identifier of the respective semantic publication.

3. The assembling step comprises, for each semantic reference of the one or more semantic references: - identifying the semantic node of the second sub-part, the semantic node comprising a semantic publication having a name corresponding to the name referenced by the path of the semantic reference and having an identifier corresponding to the identifier referenced by the path of the semantic reference; and - the semantic reference of the first sub-part designates the semantic publication of the identified semantic node; The computer-implemented method of claim 2 , comprising:

4. - before the assembling step, the one or more semantic references of the first sub-part each specify a respective semantic publication of a third sub-part, and the computer-implemented method further comprises, before the assembling step: - deleting said designation of each of said one or more semantic references to a respective semantic publication of said third sub-part; or - before the assembling step, each semantic publication of the second sub-part that is specified during the assembling by one semantic reference of the one or more semantic references of the first sub-part is specified by a respective semantic reference of a third sub-part, and the computer-implemented method further comprises, before the assembling step: - removing said designation of each respective semantic reference of each said third sub-part to a respective semantic publication of said second sub-part; The computer-implemented method of claim 2 or 3, further comprising:

5. For each sub-part, - calculating a signature of each semantic node of said semantic representation representing said sub-part, said signature comprising: --the name of the semantic representation, and the identifier of each semantic publication and / or the path of each semantic reference, Concatenate the steps The computer-implemented method of claim 2 further comprising:

6. the first sub-component and the second sub-component are stored in a database, the database further storing one or more additional sub-components, and the computer-implemented method further comprises: - identifying in said database at least one sub-component having a signature that matches said signature of said provided first sub-component, said at least one identified sub-component including said second sub-component; - selecting said second sub-component from said at least one identified sub-component; The computer-implemented method of claim 5 further comprising:

7. 2. The computer-implemented method of claim 1, wherein during said executing, each procedural graph that specifies a semantic reference is executed after said executing of the procedural graph specified by a semantic publication specified by said semantic reference.

8. Each sub-component is a component of a body-in-white or a component of a component of a body-in-white, said body-in-white comprising: - a HAT component, --a ROOF component, ---ROOF PANEL component, ---REAR HEADER component, or --FRONT HEADER component, ROOF components, including --A SIDE component, ---A-PILLAR components, ---B-PILLAR components, ---C-PILLAR components, ---ROOF component, or ---ROCKER components, SIDE components, including a HAT component, including -FRONT components and - a PLATFORM component, --FLOOR-FRONT components, ---RAIL components, ---PANEL component, -SEAT CROSSMEMBER component, or ---TUNNEL component, FLOOR-FRONT components, including: --FLOOR-REAR components, PLATFORM components, including The computer-implemented method of claim 1 , comprising:

9. The computer-implemented method of claim 8 , wherein a name of a semantic node is the name of the component that corresponds to the semantic node.

10. 1. A computer-implemented method for obtaining a semantic representation representing a sub-part, comprising: - determining one or more semantic nodes; - for each semantic node, defining a respective procedural graph and a respective semantic description of said semantic node, said semantic description comprising: at least one semantic publication, each of which specifies a particular node of the procedural graph of semantic nodes and includes an identifier as specified by a semantic reference of another semantic node; and / or at least one semantic reference, each of which includes a path designating a semantic publication of another semantic node by referencing the identifier of said semantic publication, and each semantic reference is designated by a node of said procedural graph of said semantic node; and 11. A computer-implemented method comprising:

11. The data structure is a semantic representation comprising one or more semantic nodes; - for each semantic node, a respective procedural graph of said semantic node and a respective semantic description; and the semantic description comprises: at least one semantic publication, each of which specifies a particular node of the procedural graph of semantic nodes and includes an identifier as specified by a semantic reference of another semantic node; and / or at least one semantic reference, each of which comprises a path designating a semantic publication of another semantic node by referencing said identifier of said semantic publication, and each semantic reference is designated by a node of the procedural graph of said semantic node; Including, The computer-implemented method of claim 1 or 10, wherein the computer-implemented method comprises the data structure.

12. 12. A database comprising one or more product subparts each defined by the data structure of claim 11.

13. A computer program comprising instructions for carrying out the computer-implemented method of claim 1 or 10.

14. A computer-readable storage medium having the computer program of claim 13 recorded thereon.

15. A computer-readable storage medium having the database according to claim 12 recorded thereon.

16. 14. A system comprising a processor coupled to a memory having the computer program of claim 13 stored thereon.