Method of assembling the components of a product
By constructing non-hierarchical maps and identifying the closest relationship nodes, the problem of the complex and unintelligent selection mechanism of existing CAD systems when assembling product components is solved, and the efficiency and intelligence of the assembly process are improved.
Patent Information
- Application Number
- CN201811609394.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2017-12-29
- Filing Date
- 2018-12-27
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2038-12-27
AI Technical Summary
When assembling product components, the selection mechanism of existing CAD systems is complex and not intelligent, and the user's intentions cannot be expected, resulting in inefficient assembly process.
By constructing a non-hierarchical graph, nodes represent components of the product to be assembled, edges represent relationships between components, perform component selection according to user actions, and identify nodes closest to the relationship in the graph to improve the intelligence of the assembly process.
Improves the efficiency and intelligence of the assembly process, reduces the waste of computing resources, and the system better understands what designers expect when building assembly parts.
Smart Images

Figure CN110032753B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer programs and systems, and more particularly to methods, systems and programs for assembling components of a product. Background Art
[0002] Many systems and programs for design, engineering and manufacturing of objects are provided on the market. CAD is an acronym for computer-aided design, e.g., it relates to software solutions for designing objects. CAE is an acronym for computer-aided engineering, e.g., it relates to software solutions for simulating the physical behavior of future products. CAM is an acronym for computer-aided manufacturing, e.g., it relates to software solutions for defining manufacturing processes and operations. In such computer-aided design systems, graphical user interfaces play an important role in technical efficiency. These technologies can be embedded in product lifecycle management (PLM) systems. PLM refers to a business strategy that helps companies share product data, apply common processes, and use enterprise knowledge for product development from the conception of a product life to the end (concept across extended enterprises). The PLM solution provided by Dassault Systèmes (whose trademarks are CATIA, ENOVIA, and DELMIA) provides an engineering center that organizes product engineering knowledge, a manufacturing center that manages manufacturing engineering knowledge, and an enterprise center that implements enterprise integration and connections to both the engineering center and the manufacturing center. Together, all systems provide an open object model to link products, processes, and resources to enable dynamic, knowledge-based product creation and decision support that drives optimized product definition, manufacturing preparation, production, and service.
[0003] Selection is central to the user experience when interacting with a CAD system, especially when interacting with objects modeled with that CAD system. In fact, in 3D, there are several types of selection, such as Figures 4 to 7 shown. Figure 4 shows no selection, while Figure 5 shows the selection of the opposite edge, Figure 6 is the opposite choice, and Figure 7 is a complete selection of objects. The selected geometry is in Figures 5 to 7 In the example, different colors are used to indicate this to the user.
[0004] A few remarks on the selection mechanism are now addressed. In 3D, there are several levels of possible selection, and it is possible to multi-select component sub-elements by means of the paradigm of keeping a key pressed (e.g., the shift key or the ctrl key) while clicking on an object with the mouse. This mechanism has existed since the 1980s and has not changed significantly over the years. However, this is a purely client-side approach: the selection of geometry usually has no effect on the server side. If so, the system usually considers the component identifiers rather than the component geometry, not to mention the coordinates of the points within the geometry... In particular, when assembling two components, the selection mechanism is complex since it requires the following two lengthy steps: (i) selecting the faces to be coincident, and (ii) defining the state of the position with respect to the remaining degrees of freedom.
[0005] Therefore, when the user selects or moves a part in the context of an assembly, the current selection is completely without anticipation of the user's intent. CAD cannot suggest solutions taking into account all the information available in the user context. The user context may include one or more of the model assembly, user rules, commands used by the user, the workbench used, viewpoints on the model, etc. In the context of an assembly, the selection is completely unintelligent and does not take into account all existing and possible solutions that have been found in the past in similar contexts. Therefore, when assembling the parts of a product, there is no way to anticipate the next parts to be added and positioned.
[0006] Within this context, there remains a need for improved methods of assembling components of a product. Summary of the invention
[0007] Thus, a computer-implemented method of assembling components of a product is provided. The method comprises: constructing a non-hierarchical graph from at least one product, the graph comprising nodes and edges between nodes, the nodes representing components of the product to be assembled, and the edges representing relationships between a pair of components represented by the nodes; providing components of the product to be completed; performing selection of the provided components based on a user action; identifying in the graph a node representing the selected component and one or more nodes having a closest relationship to the node representing the selected component.
[0008] Methods may include one or more of the following:
[0009] - performing said selection of a provided component further comprises identifying a location on the provided component of the product, and wherein identifying said node in said graph representing said selected component comprises identifying said node in said graph having said identified location on the provided component;
[0010] - identifying said position on the provided component comprises computing an intersection between a geometry of said component and a ray traced according to a user action;
[0011] - identifying the one or more nodes having the closest relationship to the node representing the selected component comprises: obtaining signatures of nodes in the graph connected to the node representing the selected component by edges; identifying one or more most similar signatures using the signature of the node representing the selected component;
[0012] - identifying the one or more nodes having the closest relationship to the node representing the selected component further comprises: identifying an orientation associated with the component of the product to be completed, and associating the identified orientation with each of the one or more nodes having the closest relationship to the node representing the selected component; identifying at least one signature among the one or more similar signatures whose orientation matches the orientation of the provided component of the product;
[0013] - the identified location on the provided component includes a functional area of the provided component, the functional area of the provided component including a mating relationship with another component;
[0014] - the mating relationship of the functional area defines a standardized connection between two components;
[0015] - the identified one or more nodes have a best fit with the node representing the selected component;
[0016] - identifying the one or more nodes having the best fit comprises identifying the one or more nodes having the closest conflict, the closest conflict having less interference;
[0017] -The relationship represented by the edge is one selected from the following: (i) a parent / child relationship representing the hierarchy between a pair of components, (ii) a neighbor relationship representing the distance between a pair of components, (iii) a similar shape relationship representing the global or local similarity of the morphology of a pair of components, (iv) a similar functional relationship representing the local equivalence of the connection between two components.
[0018] -Constructing the non-hierarchical graph based on at least one product comprises: for each component of each product, calculating one or more signatures with metrics; for each pair of components of the products having a common metric: - defining edges between the nodes representing the pair of components; - associating a relationship type with a weight, the weight being a value representing the distance between the values of the common metric.
[0019] - When said distance is greater than a minimum distance, an edge is defined between a pair of said components.
[0020] A computer program is also provided, comprising instructions for executing the method.
[0021] A computer-readable storage medium is also provided, on which the computer program is recorded.
[0022] A system is also provided, comprising a processor coupled to a memory having the computer program recorded thereon and a graphical user interface. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Embodiments of the invention will now be described by way of non-limiting examples and with reference to the accompanying drawings, in which:
[0024] - Figure 1 A flowchart illustrating an example of a method;
[0025] - Figure 2 An example of a graphical user interface for the system is shown;
[0026] - Figure 3 An example of a system is shown;
[0027] - Figures 4 to 7 An example of selection of a modeled object is shown;
[0028] - Figures 8 to 13 An example of the present invention is shown; and
[0029] - Figures 14 to 15 An example of the present invention is shown. DETAILED DESCRIPTION
[0030] refer to Figure 1 A computer-implemented method for assembling components of a product is presented. The method includes constructing a non-hierarchical graph based on at least one product. The components of at least one product are used to complete the new product. The graph includes nodes and edges between the nodes. The nodes represent components of the product to be completed, and the edges represent the relationship between a pair of components represented by the nodes. The graph is typically constructed during construction. Then, the components of the product to be completed are provided, for example, the components are displayed in a graphical user interface, the graphical user interface such as Figure 2 A graphical user interface is provided for representing the components. Next, selection of the provided components is performed according to a user action, for example, the user clicks on the provided components with a tactile device such as a mouse. Then, identification of a node representing the selected component is performed in the graph, as well as identification of one or more nodes having a closest relationship to the identified node representing the selected component. Such a method improves the assembly (or completion) of a product based on existing components.
[0031] Notably, assemblies can be built using single clicks and by reducing repetition. In fact, the graph provides the system with a complete analysis of the relationships between the components that may be assembled during the user's design operations; notably, this is possible because the graph is non-hierarchical and independent of the product structure of the product from which the graph is obtained. The graph can be said to be readable. It is therefore possible to traverse the non-hierarchical graph horizontally and / or vertically for each selection on the displayed components in order to find the component that best matches the user's selection. The present invention actually allows for many choices of components and many solutions can be found through serendipity. The designer's design intent is inferred from the navigation of the graph (and in particular from the selections of the provided components performed by the user). The designer does not have to Figure 2 Toolbars, panels, etc. of a "classic" graphical user interface (GUI) are shown; it will be appreciated that the present invention may be performed on such a "classic" GUI. Thus, the gap between the designer and the machine is reduced, because a portion of the designer's knowledge is now reflected by the system: the interaction between the system and the designer is thus improved. Such an improvement reduces the waste of computing resources, because the system better understands what the designer contemplates when building the assembly. Other advantages will be apparent and discussed below.
[0032] The method is computer-implemented. This means that the steps (or substantially all steps) of the method are performed by at least one computer or any similar system. Therefore, the steps of the method are performed by a computer (possibly fully automatically or semi-automatically). In an example, the triggering of at least some of the steps of the method can be performed by user-computer interaction. The required user-computer interaction level can depend on the foreseen level of automation and is balanced with the need to implement the user's wishes. In an example, the level can be user-defined and / or predefined.
[0033] For example, the provision of the step can be triggered by the designer, for example, the designer enters the name of the component to be loaded and displayed. As another example, the user performs a selection of the provided component.
[0034] A typical example of a computer implementation of the method is to perform the method using a system adapted for the purpose. The system may include a processor and a graphical user interface (GUI) coupled to a memory, on which a computer program including instructions for performing the method is recorded. The memory may also store a database. The memory is any hardware adapted for such storage, and may include several physically different components (e.g., one).
[0035] "Database" means any collection of data (i.e., information) organized for search and retrieval (e.g., a relational database, e.g., based on a predetermined structured language, such as SQL). When stored in a memory, a database allows a computer to quickly search and retrieve. Databases are indeed constructed to facilitate the storage, retrieval, modification, and deletion of data in conjunction with various data processing operations. A database can be composed of files or sets of files, which can be broken down into records, each of which is composed of one or more fields. A field is the basic unit of data storage. Users can retrieve data primarily through queries. Using keywords and sorting commands, users can quickly search, rearrange, group, and select fields in many records to retrieve or create reports on data aggregation according to the rules of the database management system being used.
[0036] The method generally manipulates modeled objects. A modeled object is any object defined by data stored, for example, in a database. By extension, the expression "modeled object" specifies the data itself. Depending on the type of system, the modeled object may be defined by different kinds of data. The system may in fact be any combination of a CAD system, a CAE system, a CAM system, a PDM system, and / or a PLM system. In those different systems, the modeled object is defined by the corresponding data. Thus, one may speak of CAD objects, PLM objects, PDM objects, CAE objects, CAM objects, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not exclusive of one another, since the modeled object may be defined by data corresponding to any combination of these systems. Thus, a system may be both a CAD and a PLM system, as will be apparent from the definition of such a system provided below.
[0037] CAD system additionally means any system adapted to design modeled objects based on at least a graphical representation of the modeled object (e.g., CATIA). In this case, the data defining the modeled object include data allowing the modeled object to be represented. The CAD system can, for example, use edges or lines (in some cases faces or surfaces) to provide representations of CAD modeled objects. Lines, edges or surfaces can be represented in various ways, for example, non-uniform rational B-splines (NURBS). Specifically, a CAD file contains specifications from which geometric shapes can be generated, which in turn allow the generation of representations. The specifications of the modeled objects can be stored in a single CAD file or in multiple CAD files. The typical size of a file representing a modeled object in a CAD system is in the range of one megabyte per component. And the modeled object can typically be an assembly of thousands of components.
[0038] In the context of CAD, a modeled object may typically be a 3D modeled object, for example, representing a product, such as a component or an assembly of components or possibly an assembly of products. "3D modeled object" means any object modeled by data that allows its 3D representation. The 3D representation allows the component to be viewed from all angles. For example, when represented in 3D, a 3D modeled object can be manipulated or rotated around any of its axes or around any axis on the screen on which the representation is displayed. This specifically excludes non-3D modeled 2D icons. The display of a 3D representation facilitates design (i.e., increases the speed at which the designer statistically completes his task). This speeds up the manufacturing process in industry, because the design of the product is part of the manufacturing process.
[0039] The 3D modeled object may represent the geometry of a product to be manufactured in the real world after its virtual design has been completed with, for example, a CAD software solution or a CAD system, such as a (e.g. mechanical) component or an assembly of components (or an equivalent assembly of components, since from the method's point of view an assembly of components may be considered as a component itself, or the method may be applied independently to each component of the assembly), or more generally any rigid assembly of bodies (e.g. a moving mechanism). CAD software solutions allow the design of products in a wide and unrestricted 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. The 3D modeled objects designed by the method can therefore represent industrial products, which can be any mechanical parts, such as parts of ground vehicles (including, for example, automobile and light truck equipment, racing cars, motorcycles, truck and motor equipment, trucks and buses, trains), parts of aircraft (including, for example, fuselage equipment, aerospace equipment, propulsion equipment, defense products, airline equipment, space equipment), parts of naval vehicles (including, for example, naval equipment, commercial ships, offshore equipment, yachts and workboats, marine equipment), general mechanical parts (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, metal products, tire products), electromechanical or electronic components (including, for example, consumer electronics, safety and / or control and / or instrumentation products, computing and communication equipment, semiconductors, medical devices and equipment), consumer products (including, for example, furniture, home and garden products, leisure products, fashion products, products of hard goods retailers, products of soft goods retailers), packaging (including, for example, food and beverages and tobacco, beauty).
[0040] Figure 2 An example of a "classic" GUI which may be used to perform the method according to the invention is shown.
[0041] GUI 2100 can be a typical CAD-like interface, with standard menu bars 2110, 2120 and bottom and side toolbars 2140, 2150. Such menus and toolbars contain user-selectable icon sets, each icon being associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools adapted to edit and / or work on the 3D modeled object 2000 displayed in GUI 2100. Software tools can be grouped into workbenches. Each workbench contains a subset of software tools. Specifically, one of the workbenches is an editing workbench, which is suitable for editing the geometric features of the modeled product 2000. In operation, the designer can, for example, pre-select the parts of the object 2000, then initiate an operation (e.g., change size, color, etc.) or edit geometric constraints by selecting an appropriate icon. For example, a typical CAD operation is the modeling of punching or folding of the 3D modeled object displayed on the screen. GUI can, for example, display data 2500 related to the displayed product 2000. In the example of the figure, the data 2500 displayed as a "feature tree" and its 3D representation 2000 relate to a brake assembly including a brake caliper and a disc. The GUI may also show various types of graphical tools 2130, 2070, 2080, for example, for facilitating 3D orientation of an object, for triggering simulation of an operation of an edited product, or presenting various properties of the displayed product 2000. The cursor 2060 may be controlled by a haptic device to allow the user to interact with the graphical tools.
[0042] Figure 3 An example of a system is shown, where the system is a client computer system, such as a user's workstation.
[0043] The client computer of the example includes: a central processing unit (CPU) 1010 connected to an internal communication bus 1000, a random access memory (RAM) 1070 also connected to the bus. The client computer is also provided with a graphics processing unit (GPU) 1110, which is associated with a video random access memory 1100 connected to the bus. The video RAM 1100 is also referred to in the art as a frame buffer. A mass storage device controller 1020 manages access to a mass storage device (e.g., a hard disk drive 1030). Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks and removable magnetic disks; magneto-optical disks; and CD-ROM disks 1040. Any of the above items can 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 tactile device 1090 such as a cursor control device, a keyboard, etc. A cursor control device is used in the client computer to allow the user to selectively position the cursor at any desired location on the display 1080. In addition, the cursor control device allows the user to select various commands and input control signals. The cursor control device includes a plurality of signal generating devices for input control signals to the system. Typically, the cursor control device may be a mouse, the buttons of which are used to generate the signals. Alternatively or additionally, the client computer system may include a sensitive pad and / or a sensitive screen.
[0044] The computer program may include instructions executable by a computer, the instructions including units for causing the above system to perform the method. The program may be recordable on any data storage medium (including the memory of the system). The program may be implemented, for example, with digital electronic circuits or computer hardware, firmware, software, or a combination thereof. The program may be implemented as a device, such as a product tangibly embodied in a machine-readable storage device for execution by a programmable processor. The method steps may be performed by a programmable processor of a program that executes instructions to perform the functions of the method by operating on input data and generating outputs. The processor may therefore be programmable and coupled to receive data and instructions from a data storage system, at least one input device, and at least one output device, and to send data and instructions to the data storage system, at least one input device, and at least one output device. The application may be implemented in a high-level procedural or object-oriented programming language, or in an assembly or machine language if desired. In any case, the language may be a compiled or interpreted language. The program may be a complete installer or updater. In any case, the application of the program on the system obtains instructions for executing the method.
[0045] An "assembly component of a product" specifies any action or series of actions that is at least a part of a process of manufacturing a product. Thus, a method may include creating a product from previously created components.
[0046] The method may be included in a manufacturing process, which may include producing a physical product after performing the method. In any case, the product designed by the method may represent a manufactured product. Because the method improves the design of the product, the method also improves the manufacture of the product, thereby increasing the productivity of the manufacturing process.
[0047] Reference now Figure 1 In step S10, the construction (or calculation) of a non-hierarchical graph from at least one product is performed. In contrast to runtime, this calculation can be performed at build time. This means that the graph has been calculated before the following steps S20 to S40 are performed; the non-hierarchical graph is usually stored in a database. Steps S20 to S40 belong to the so-called runtime. While being executed once at build time, the runtime may be executed several times concomitantly or consecutively. Therefore, step S10 is a background operation that calculates several information about at least one product and stores all results in a non-hierarchical graph called a "knowledge graph".
[0048] A non-hierarchical graph is constructed based on at least one product. Here, the term product includes real-world objects that may typically be modeled objects or three-dimensional (3D) modeled objects. Each of the at least one product includes a component or an assembly of components, or may include an assembly of products. The at least one product based on which the graph is constructed includes one or more components to be used to design a new product according to the present invention (S20 to S40).
[0049] A knowledge graph (i.e., a non-hierarchical graph) comprises nodes and edges between nodes. A node represents a component of a product to be completed, so a node of the graph represents a component of at least one of the products. An edge represents a relationship between a pair of components represented by a node; an edge connects a pair of nodes of a graph. Here, a pair means two nodes. It should be understood that a node can be connected to (i.e., can be related to) one or more nodes; for example, two edges can connect the same pair of nodes, for example, two different relationships have been identified between the same pair of nodes. In addition, a non-hierarchical graph is not directed; this involves that a traversal (or navigation) of the graph can be performed from a first node to a second node, and vice versa from the second node to the first node.
[0050] A relationship indicates a correlation. In the following, the terms "relationship" and "correlation" are synonymous and mean a property that is partially or fully shared by a pair of nodes.
[0051] In an example of the present invention, the relationship may be of, but is not limited to, the following types. The first type of relationship is (i) a parent / child relationship. The first type represents a hierarchy between a pair of components. For example, the hierarchy between nodes may be derived from a product structure of a product from which a non-hierarchical graph is constructed. More generally, a database storing products includes parent / child relationships between components of the product. The second type of relationship is (ii) a neighbor relationship, which represents the distance between a pair of components. When a new component is added to the DB, all neighbor distances (i.e., all distances between pairs of two nodes) are calculated again; therefore, it is not authoring information. Neighbor distances are calculated for any new component of a product from which a non-hierarchical graph is constructed. The third type of relationship is (iii) a similar shape relationship, which represents the global or local similarity of the morphology of a pair of components. The similarity between two shapes is measured as known in the art. The fourth type of relationship is (iv) a similar function relationship, which represents the local equivalence of the connection between two components. Here, the 3D shape is not considered, but the location of important local information (e.g., holes, contact points, etc.) is considered. For example, if they have almost the same hole locations, contact locations, etc., then two components (represented by nodes) are functionally identical or similar. The fifth relationship is (v) a mating relationship between two components. A mating relationship defines the existence of a standardized connection between two components. For example, a standardized connection between two components can be, but is not limited to, a hole for a screw / bolt, a contact surface for a melting point, etc. These relationships are standardized because there are a limited number of classes of these configurations.
[0052] In an example, construction of a non-hierarchical graph may include associating a weight with each edge of the graph. The weight of the graph represents the similarity between two components. Thus, the weight measures how close two components are.
[0053] Fig.14An example of constructing a non-hierarchical graph based on a skateboard product is shown, which can be an assembly including a board, two trucks, and five wheels. In this example, as a result of calculating one or more signatures for each component, a weight will be associated with the edge. The weight represents the distance between the values of a common metric of a pair of nodes, and the weight is usually a value. One or more signatures with which the non-hierarchical graph is constructed are calculated for each component of each product. Each signature can be calculated as known in the art; for example, a signature can be calculated based on the bounding box of each component using a 3D Fourier transform using a hole layout, etc. Each calculated signature has a metric. Therefore, there are N distances between two components, where N is the number of metrics common to the two components. Every time there is a common metric between two components, there is an arc with a "confidence" value (the value of the metric) on the edge of the graph. The confidence value can be expressed as a percentage of the proximity of two components of a given relationship represented by the edge. Therefore, after each component of a pair of one or more signatures with a metric has been calculated, an edge can be defined between nodes with a common metric. Then, for each edge, a relationship type and a weight are associated with the edge. For example, each relation in the graph is associated with two properties: a relation type (e.g., labeled as a string) and a weight (e.g., a labeled floating point value included between 0 and 1 (including the boundaries)). For example, the relation (i) mentioned above is a true or false relation, and the weight between a child and its parent is always 1. For the relation (ii) mentioned above, the weight is equal to 1 when the two parts are in contact, and then the weight value decreases as a function of the minimum distance between the parts. Regarding (iii) the similar shape relation, the weight depends on the similarity rate; when the parts are identical, the weight is equal to 1. For relation (iv), the weight is a measure between two functional configurations. For the relation (v) mentioned above, the signature can be based on standards and can be retrieved by a simple query.
[0054] exist Fig.14 In the example of , an edge can be defined between a pair of components only when the distance is greater than a minimum distance (S110). This means that an edge is only constructed when there is a strong enough "confidence" that the two nodes have a valid relationship.
[0055] In addition, still Fig.14 In the example of , in addition to calculating the minimum distance, the construction of the non-hierarchical graph can also include calculating the collisions between the parts of the product. Collision detection (i.e., collision calculation) allows the interferences between the parts of the model to be effectively identified, checked and reported. This is calculated as known in the art. For the calculation of collisions, the center of gravity of the intersecting surfaces projected on the intersecting surfaces can be maintained. This center of gravity is defined by a point called the collision point. In Fig.14, the conflict points are represented by black squares. Interestingly, a component may include more than one conflict point, as shown in the plate of a skateboard, which includes two conflict points, one for each bracket.
[0056] Still in Fig.14 In the example of , an orientation associated with a component of a to-be-finished product is identified. The orientation of the component is typically stored together with data about the component, such as on a database. The identified orientation is associated with a node representing the component.
[0057] Therefore, in Fig.14 In the construction of the non-hierarchical graph illustrated in , each node of the graph represents a component with attributes, where the attributes include one or more signatures of the node, the orientation of the component, and one or more conflict points.
[0058] Reference now Fig. 9 and Fig.10 , discusses an example of building a non-hierarchical graph. In this example, three skateboard products are stored in a database, for example, the database is but not limited to a relational database, a PLM database, etc. Fig. 9 Representations of these three products 90, 92, 94 are shown. Each skateboard includes the following components: a board (90a, 92a, 94a), two brackets (90c, 92c, 94c) connected to the board, and wheels (90b, 92b, 94b) connected to the brackets.
[0059] Fig.10A representation of a non-hierarchical graph calculated for three skateboards, the components of which will be used to design a new skateboard product, is shown. For clarity only, the nodes are represented as components and the wheel nodes are not shown. In this example, three relationships have been used: similarity of shape, similarity of function, and fit function. For example, the node representing board 90a has two edges for the similarity function, one with the node representing board 90b and one with the node representing board 90c. Here, the similarity function has been calculated for the same hole position on the board. The weight associated with the edge connecting boards 90a and 90b shows a value of 100%: the hole is located in exactly the same position, while the weight associated with the edge connecting boards 90a and 90c shows a value of 90%: the hole is located in approximately the same position on both boards. For each board, two conflict points have been calculated as a result of the conflict detection between the board and their corresponding brackets (90a1, 90a2, 90b1, 90b2, 90c1, 90c2). In this example, fit functions have been calculated between components of the product: brackets 90a1, 90a2 fit with holes in plate 90a, brackets 90b1, 90b2 fit with holes in plate 90b, and brackets 90c1, 90c2 fit with holes in plate 90c. In this example, collision detection and fit functions are related, and it should be understood that fit functions can be calculated between components that do not belong to the same product (e.g., independently of the collision detection calculations on each product). Still in Fig.10 In the example of , the similarity function relationship between the scaffolds is represented; some edges are not represented only for the clarity of the graph. The scaffolds function similarly among themselves.
[0060] exist Fig.10 In the example of , the process of creating a non-hierarchical graph is performed as follows. First, each product is decomposed into components according to its product structure. Then the conflict has been calculated for each product. A matching function has been applied to each detected interference in order to determine which function is applied. Therefore, a functional area has been determined for each component of each product, wherein the functional area of the component includes a matching relationship with another component of the product. The functional area can be a point, such as a conflict point; the functional area can be, for example, an area or volume around a conflict point. Second, a similarity function is calculated between the components of the product (including between components of different products). It is worth noting that the similarity function conflicts with the conflict point. Third, the similarity shape is calculated between the components of the product (including between components of different products).
[0061] Interestingly, if the components of each product share a common semantics, the identification of relationships can be more efficient. For example, if the components of each product have the same name, the calculation of the similarity function can be preferably performed between the plate and the bracket, rather than between the plate and the wheel. As another example, the similarity of the shape function can be calculated only for components with the same name (e.g., between plates).
[0062] Now let's discuss the runtime (S20 to S40). At step S20, the components of the product to be completed are provided. Here, the terms "complete" and "complement" are synonymous. In other words, the product is completed or supplemented, or even assembled. For example, the designer selects the components he / she designed. This step is performed as known in the art. This is Figure 8 , where the designer has selected a board. By using a similarity search operation (e.g., the designer is on a dedicated website that only deals with skateboards, so there is no doubt that the component is a board), the system is able to recognize the model in the database as a board without asking the designer. Therefore, the system knows the semantics of the component provided by the designer. In addition, the orientation of the component is also provided (S20). The orientation can also be obtained by relying on a similarity search in the database. For example, due to the component signature and with the help of the bounding box and available functions on each component on the database, the system knows the orientation of Tom's board compared to the boards in the database.
[0063] Then, at step S30, the designer performs a selection of the provided component. Thus, a user input of the component is performed. The user's selection is usually performed using a tactile device such as a mouse, a touch-sensitive screen, etc. For example, in Figure 8 In the example, the user has moved the cursor onto the provided board and then clicked the mouse. This user action on the mouse triggers recognition S40.
[0064] At S40, a node is identified in the graph. The identified node represents the selected component. In the example, the node of the provided component is calculated and added to the graph constructed at construction time. The same operations are performed on the components and their corresponding nodes are also performed on the provided components and their nodes. In the example, the system knows that the component provided by the user is a board for a skateboard. This allows for easier introduction of nodes representing the provided components in the constructed non-hierarchical graph, because the calculation of relationships can be significantly reduced.
[0065] Still at step S40, one or more nodes in the non-hierarchical graph are identified. These identified one or more nodes have the closest relationship with the node representing the selected component. The proximity of the node can be obtained with the weight associated with the edge: the closest one or more nodes are the nodes connected to the identified node with the maximum weight value. In the example, the identified one or more nodes have the best match with the node representing the selected component. For example, one or more nodes have the closest conflict, that is, the conflict that produces less interference. Therefore, the probability of the identified node cooperating with the selected component is increased.
[0066] The selection (S30) performed by the designer of the provided component may include identifying a location on the component. The location may be, but is not limited to, a point, a surface, a volume on the component. In this case, identification of one or more nodes is performed according to the location (S40). In other words, navigation in the graph is a function of the location selected by the user. Thus, the user can navigate through the graph according to simple user actions, each selection of a location determining one or more nodes identified in the graph. The selection of a location determines which objects must be retrieved from the database.
[0067] Figures 11 to 13 shows that in determining the reference Figure 8 An example of identifying a node in a non-hierarchical graph after providing a location on a component discussed (S20). Figure 8 In , the designer intends to add a front bracket. When the mouse is close enough to the front of the board or the user clicks in the front of the board. The position in the front of the board is thereby determined. The identification of the position can be performed by calculating the intersection between the geometry of the component (the board) and the traced ray. The ray can be traced from the location of the user interaction on the display (for example, the location of a tactile cursor or the location of the user interaction on a touch-sensitive screen) towards the component; the direction of the ray can be determined by the designer's viewpoint on the component. Any method for determining the position on the component can be used. In Fig.11 In the embodiment, three plates 90a, 90b, 90c are determined based on the previous Fig.10 The non-hierarchical graph constructed and represented in is determined. In this example, the plates are determined using a similarity shape function. Interestingly, since the point of the selected location is known to the system, it is possible to project this point onto a similar shape on the database (the three plates 90a, 92a, 94a) and identify the closest edge connecting the provided part and the projected point. Fig.11 Each identified node includes two conflict points. Each conflict point is part of the signature of the edge, as shown in the following reference Fig.10 Therefore, in fact, Fig.12As shown, by performing the selection of the provided component, the designer selects many other nodes at roughly the same location because they are similar; thereby the closest interference link is selected and the appropriate orientation can also be calculated. At least, when the designer has selected the front of the provided board, the system can retrieve all the front brackets and the system can identify the orange bracket (in Fig.13 ) is the node with the highest proximity among the front brackets. As a result, the system retrieves the component associated with the selected node from the database; the data of the component or the representation of the component can be retrieved. The retrieved component is represented on the GUI with the provided board. Since both the board and the bracket have corresponding orientations, the system can calculate the position of the bracket that best matches the orientation of the board. The calculated orientation can be suggested to the user. The designer can accept or reject the retrieved component and / or the positioning suggestion of the retrieved component.
[0068] In an example, the identified location on the provided component can be projected on one or more nodes having the closest relationship, and a functional area can be identified on at least one of the identified nodes. The functional area can be on / around the conflict point. The functional area can include a mating relationship with another component or another functional area of another component. The mating relationship of the functional area can define a standardized connection between two components.
[0069] Reference now Fig.15 , an example of the runtime of the method according to the present invention is now discussed. In this example, the designer uses a client computer connected to a server; the server may store a non-hierarchical graph and / or components of at least one product from which the graph is constructed. In this example, the server stores both the graph and the components. Steps 1, 2, and 3 are performed on the client, and the other steps are performed on the server side.
[0070] At a first step 1, a designer is designing a product. Since the designer has not added any semantics to the component, the component may be seen as unknown from the server. The semantics may be added by the designer, for example he / she enters a standardized name for the component. The semantics may be inferred by the system, for example, by using a similarity search operation.
[0071] At steps 2 and 3, if the mouse is over a geometric shape, a line is generated that intersects the geometric shape for each position selection (e.g., mouse click) of the user component. The result is a point on the geometric shape. The component identifier can be retrieved from the database. All signatures calculated at build time are extracted. In order to limit the number of signatures to be extracted, only signatures of components with the same semantics as the user component can be extracted; the signatures of the nodes of the graph are obtained, and the nodes are connected with edges to the nodes representing the selected components that are obtained.
[0072] At step 4, based on the extracted signatures, a similarity search of the provided list of parts is performed. The search provides one or more most similar signatures, where the one or more signatures of the node represent the selected part. Of course, the larger the database, the more numerous the results will be. In order to reduce the number of results, the system can match the orientation of the components of the list with the selected components at step 1. This operation does not need to be very accurate. Therefore, the orientation associated with the provided component and the orientation associated with the identified node are used to filter the results of the search for similar components: at least one signature of the identified node whose orientation matches the orientation of the provided component.
[0073] At step 5, the selection of points of step 3 is projected onto each oriented component identified at step 4. The projection is performed as known in the art.
[0074] At step 6, the conflict point closest to each projected point is identified. Thus, a functional area is identified on each node obtained at step 4. The criterion for identifying the closest point is distance, such as Euclidean distance.
[0075] Then, at step 7, nodes connected to the functional areas by edges are identified according to each of the functional areas identified at step 6. In other words, nodes (e.g., conflict points) associated with each functional area by links in the knowledge graph are identified. The components represented by these nodes are retrieved from the database.
[0076] At step 8, the retrieved nodes are ranked according to proximity to the user's components. For example, the ranking of the retrieved nodes may be based on the weight of the links.
[0077] The client computer can now download one or more components associated with the retrieved node. All components can be downloaded, or multiple components (the top ranked components) can be displayed, or only the components with the highest ranking can be downloaded. The downloaded components are then displayed on the GUI. The user can then perform a selection of a new component retrieved from the database, and the process of steps 1 to 8 can be performed again for the new component. Thus, step by step (i.e., user selections after user selection of a location) the designer can navigate the non-hierarchical diagram and can assemble components for creating a new product.
Claims
1. A computer-implemented method of assembling components of a product, comprising: - constructing a non-hierarchical graph based on at least one product stored in a database, the database storing orientations associated with components of the at least one product, the graph comprising nodes and edges between nodes, the nodes representing components of the product to be assembled, and the edges representing relationships between a pair of components represented by the nodes, the non-hierarchical graph being stored in a server with the database, wherein each node of the graph represents a component having attributes, wherein the attributes include one or more signatures of the node, the orientation of the component, and one or more conflict points; - providing components of said product to be completed; -According to the user action, perform the selection of the provided components; - identifying in the graph a node representing the selected component and one or more nodes having a closest relationship to the node representing the selected component, the relationship being a property shared by a pair of nodes; - retrieving from the database one or more new parts corresponding to the one or more identified nodes, wherein the orientation associated with the identified nodes is used to filter search results for similar parts during the retrieval operation; - downloading the retrieved new component or components; and -Displaying the downloaded one or more new components to the user.
2. The computer-implemented method of claim 1 , wherein: Performing the selection of the provided component further includes identifying a location on the provided component of the product, and wherein identifying the node in the graph representing the selected component includes identifying the node in the graph having the identified location on the provided component.
3. The computer-implemented method of claim 2, wherein: Identifying the location on the provided component includes computing an intersection between a geometry of the component and a ray traced according to the user motion.
4. A computer-implemented method according to any one of claims 1 to 3, wherein: Identifying the one or more nodes having a closest relationship to the node representing the selected component includes: - obtaining signatures of nodes in said graph connected by edges to said node representing said selected component; - identifying one or more most similar signatures using said signature of said node representing said selected component.
5. The computer-implemented method of claim 4, wherein: Identifying the one or more nodes having a closest relationship to the node representing the selected component further comprises: - identifying an orientation associated with the component of the product to be completed, and associating the identified orientation to each of the one or more nodes having a closest relationship to the node representing the selected component; - identifying at least one signature among one or more similar signatures whose orientation matches said orientation of a provided part of said product.
6. A computer-implemented method according to any one of claims 2 to 5, wherein: The identified location on the provided component includes a functional area of the provided component, the functional area of the provided component including a mating relationship with another component.
7. The computer-implemented method of claim 6, wherein: The mating relationship of the functional area defines a standardized connection between two components.
8. A computer-implemented method according to any one of claims 1 to 7, wherein: The identified one or more nodes have a best fit with the node representing the selected component.
9. The computer-implemented method of claim 8, wherein: Identifying the one or more nodes having the best fit includes identifying the one or more nodes having closest conflicts, the closest conflicts having less interference.
10. The computer-implemented method of any one of claims 1 to 9, wherein: The relationship represented by an edge is a choice between: - represents a hierarchical parent / child relationship between a pair of components; -Neighborhood relations indicating the distance between a pair of components; - Similar shape relations that represent the global or local similarity of the morphology of a pair of components; - A similar functional relationship that indicates the local equivalence of the connection between two components.
11. A computer-implemented method according to any one of claims 1 to 10, wherein: Constructing the non-hierarchical graph according to at least one product comprises: - for each part of each product, one or more signatures with metrics are calculated; -For each pair of components of said product having a common metric: -- define edges between the nodes representing the pair of components; --Associating a relationship type with a weight, the weight being a value representing the distance between the values of the common metric.
12. The computer-implemented method of claim 11, wherein: When the distance is greater than a minimum distance, an edge is defined between a pair of the components.
13. A computer program product comprising instructions for executing the method of any one of claims 1-12.
14. A computer-readable storage medium having recorded thereon the computer program according to claim 13.
15. A system comprising a processor and a graphical user interface coupled to a memory having recorded thereon the computer program of claim 13.
Citation Information
Patent Citations
Method, data processing system and non-transitory computer-readable storage medium for automatically assembling components in a computer-aided design (CAD) environment
WO2017074559A1