US8798975B2 - Computer method and system providing design of an assembly modeled by a graph - Google Patents
Computer method and system providing design of an assembly modeled by a graph Download PDFInfo
- Publication number
- US8798975B2 US8798975B2 US12/980,694 US98069410A US8798975B2 US 8798975 B2 US8798975 B2 US 8798975B2 US 98069410 A US98069410 A US 98069410A US 8798975 B2 US8798975 B2 US 8798975B2
- Authority
- US
- United States
- Prior art keywords
- graph
- mechanical assembly
- chain
- modeling graph
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G06F17/5095—
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G06F17/5018—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/80—Technologies aiming to reduce greenhouse gasses emissions common to all road transportation technologies
- Y02T10/82—Elements for improving aerodynamics
Definitions
- the invention relates to the field of design of an assembly of objects and collaborative design of an assembly of objects.
- Typical examples of an assembly are: a complete car, an airplane, a ship, including mechanical and electrical equipment, the inside and/or the outside of a car body structure.
- the aim of the design of such an assembly is to provide the engineer with a virtual occurrence of the future product in order to ease investigations and alternatives.
- PLM/CAD Product LifeCycle Management/Computer Aided Design system
- the system contains a database of reference objects, such as parts or assemblies of parts stored beforehand (also possibly created and stored while designing the new assembly).
- a reuse graph (or “re-use” graph) is a labeled directed acyclic graph which captures the reuse schema underlying the assembly. More specifically, a node of a reuse graph corresponds to a reference object or to an assembly of reference objects. For the sake of convenience, in the following no distinction is made between a node and the object to which it corresponds.
- An arc of a reuse graph is labelled and represents a “use” of the end node of the arc by the origin node of the arc. In other words, a node of a reuse graph is made of uses, i.e. instances, of its child nodes. Reuse graphs are also known as instance graphs.
- FIG. 1 An example of a reuse graph is represented by FIG. 1 .
- node a is made of two uses of node b and one use of node c (i.e. the reference object corresponding to node a is made of two instances of the reference object corresponding to node b and one instance of the reference object corresponding to node c).
- FIG. 1 also tells that node b is made of two uses of node c.
- node a corresponds to a car
- node b to an axle of a car
- node c to a wheel
- a car uses two axles (front axle and rear axle), corresponding to arcs u 1 and u 2 .
- Each axle uses two wheels (left wheel and right wheel), corresponding to arcs u 3 and u 4 .
- a car uses another wheel which is not used by any axle (spare wheel), corresponding to arc u 5 .
- a characteristic of a reuse graph is that its nodes may be used several times. In other words, and in opposition to a tree graph, nodes of a reuse graph may have several parent nodes. Thus, a reuse graph gathers all the information while avoiding duplication of information.
- the reuse graph gathers all the information and allows resource saving during storage. However, it is not user friendly for design. For this reason, an unfolded graph is computed from the reuse graph by exploring all the arcs and duplicating reused nodes.
- the unfolded graph is consequently always a tree graph (i.e. all nodes except the root node have exactly one parent node). It provides a realistic view of the whole assembly because all occurrences of all objects are visible.
- the unfolded graph may be viewed as a graphical representation of the assembly and all occurrences of all objects are then displayed at exact positions in space. Unfolded graphs are also known as occurrence graphs.
- FIG. 2 The unfolded graph corresponding to the reuse graph of FIG. 1 is represented in FIG. 2 , to which it is now referred.
- indexes ((•,1), (•,2), (•,3), (•,4), (•,5)) are associated to arcs (u 1 , u 2 , u 3 , u 4 , u 5 ) and nodes (a, b, c) of the unfolded graph.
- each symbol of the unfolded graph, including arcs and nodes, is unique.
- the unfolded graph is however not persistently stored in the system for two reasons. Firstly, duplicated data take more memory space than the reuse graph. This is particularly an issue when designing complex assemblies. Secondly, updating duplicated data is a difficult and costly process because of the exhaustive scan of all the copies. For this reason, only the reuse graph is persistently stored in the system.
- indexes are generated on the fly in order to distinguish occurrences of the same reference object during the edition time. Closing and opening again the same assembly will generate different indexes. Furthermore, two designers may want to edit the same assembly at the same time and generate different indexes.
- An assembly is further modeled by relations having tuples (i.e. an ordered set of objects within the relations).
- a typical relation is the distance between two objects. Creating a tuple of such a relation in the concrete illustration provided above in reference to FIG. 1 consists for example in defining a distance between two wheels.
- relations are captured through the unfolded graph.
- the designer creates for the distance relation a tuple having the objects (c,1) and (c, 5) in the example of FIG. 1 . They are both a use of reference object c.
- indexes (•, 1) and (•,5) are not stored persistently. Thus it is not possible to persistently store “distance between (c,1) and (c,5)”. Doing so, the system would not find the occurrences of object c to put in relation or may find incorrect occurrences after a close-and-open sequence because there are five occurrences of object c and new indexes are generated each time the reuse graph is unfolded.
- relations must be stored together with the reuse graph in such a way that, when reading the assembly again, relations of both users are available.
- node (c,1) is reachable from the root node (a,1) by arcs (u 1 ,1) and (u 3 ,1), so its path is defined by the concatenation of arc symbols (u 1 ,1)(u 3 ,1).
- the name of node (c,1) is obtained from the path (u 1 ,1)(u 3 ,1) by keeping persistent symbols only, which yields u 1 u 3 .
- a similar reasoning for (c,5) yields u 2 u 3 .
- Opening an assembly is performed through two steps.
- First step is to compute the unfolded graph from the reuse graph.
- Second step is to find, for each relation and each tuple of the relation, which nodes of the unfolded graph are in the tuple.
- the algorithm searches in the unfolded graph the path of arcs corresponding to the paths of reuse arcs stored in the tuple. This step is called “update relations”.
- a tuple of a relation that cannot be connected to any node of the unfolded graph (no path matching) is said to be “broken”.
- a tuple may be broken when the reuse graph modeling an assembly is edited.
- FIGS. 3-5 illustrate one circumstance where editing a reuse graph leads to a broken tuple.
- FIG. 3 is a representation of an unfolded graph of the assembly modeled by the reuse graph of FIG. 1 , and further modeled by a relation named Connect having one tuple.
- a tuple of the relation Connect is a couple of objects mechanically connected.
- the tuple may be coded on non persistent occurrence symbols as Connect[(c,1),(c,5)], on non persistent path symbols as Connect[(u 1 ,1)(u 3 ,1),(u 2 ,1)(u 3 ,1)], and on persistent path symbols as Connect[u 1 u 3 ,u 2 u 3 ]
- This tuple may be broken after a change in the reuse graph of FIG. 1 . Tuples are coded using paths of arcs of the reuse graph. If this graph is edited, (add, delete or reroute arcs, add, delete nodes, etc.) some paths may not exist any more and tuples coded with these paths are broken. Consequently, rework is needed from the designer to reconnect tuples. For example, suppose that the designer edits the reuse graph in FIG. 1 by adding a new reference product d between a and b, as represented in FIG. 4 .
- FIG. 5 represents the unfolded edited graph corresponding to the edited reuse graph of FIG. 4 .
- the tuple Connect[u 1 u 3 ,u 2 u 3 ] is broken because the path u 1 u 3 does not identify any node of the unfolded graph in FIG. 5 .
- the path u 2 u 3 (defined in the context of FIG. 3 ) identifies node (c, 7), as expected. Indexes of FIG. 3 are changed to simulate a close-and-open sequence after the reuse graph edition.
- This aim is achieved with a computer-implemented method for designing an assembly of a plurality of objects, the assembly being modeled by a directed acyclic modeling graph having nodes and arcs, wherein:
- the assembly being further modeled by at least one relation having at least one tuple containing a first chain of at least one identifier
- FIG. 1 represents an example of a reuse graph.
- FIG. 2 represents the unfolded graph corresponding to the reuse graph of FIG. 1 .
- FIG. 3 represents an example of a relation on the reuse graph of FIG. 1 .
- FIG. 4 represents the reuse graph of FIG. 1 after edition.
- FIG. 5 represents the unfolded edited graph corresponding to the edited reuse graph of FIG. 4 .
- FIG. 6 represents a multi root directed acyclic graph.
- FIG. 7 represents a single root directed acyclic graph obtained from the graph of FIG. 6 .
- FIG. 8-10 represent other modifications of the graph of FIG. 1 .
- FIG. 11 illustrates a chart of the state of the art process.
- FIG. 12 illustrates a chart of an example of the invention process.
- FIG. 13-14 represent an example of an edition operation on the modeling graph of FIG. 1 .
- FIG. 15-19 illustrate collaborative design.
- FIG. 20-31 illustrate editions of an assembly.
- FIG. 32-35 represent examples of the use of the invention when merging graphs.
- FIG. 36 is a block diagram of a computer system in which embodiments of the present invention are implemented
- a computer-implemented method is intended for designing an assembly of a plurality of objects.
- the assembly is modeled by a directed acyclic modeling graph having nodes and arcs. Each node represents an object of the assembly. Each arc represents the use of an end node by an origin node. At least one arc is uniquely identified by an identifier.
- the assembly is further modeled by at least one relation having at least one tuple containing a first chain of at least one identifier.
- the method comprises the step of determining at least one mapping between the first chain and a second chain of at least one identifier as well as the step of substituting at least one occurrence of the first chain in the tuple of the relation with the second chain. This way, broken tuples are repaired automatically and design is facilitated.
- the modeling graph captures the structure of the assembly, or, in other words, the hierarchy between the objects of the assembly.
- Each object of the assembly is associated to a node of the modeling graph.
- a pointer to reference data in a database may be attached to a node.
- This reference data may, for example, comprise specifications of a part, or an assembly of parts.
- At least one arc is uniquely identified by an identifier.
- the identifier is for example a symbol, or a character, or a chain (or string) of symbols or characters. Any type of identifier known from the prior art is suitable to identify the arc.
- the symbol “u x ”, which is the character “u” followed by a numeral index x is used as an example to identify an arc.
- the graph is said to be “labeled”, which means that some information can be attached to arcs and/or nodes.
- directed means that all arcs are oriented.
- the modeling graph is directed, so that each arc, oriented from an origin node to an end node, represents the use of the end node by the origin node.
- Such oriented arcs represent input arcs from the point of view of end nodes and output arcs from the point of view of origin nodes.
- a use is defined as in prior art. The graph is directed because there would be no mechanical meaning for an object of the assembly to use another object and be used by the same other object simultaneously.
- acyclic means that there is no cycle of arcs.
- the modeling graph is acyclic otherwise an object would be recursively defined by itself, which is a nonsense from the bill of material point of view.
- single root means that only one node (called the root node) has no input arcs.
- the modeling graph is generally a single root graph. This is notably the case of the example of FIG. 1 . Indeed, the designer generally works on one assembly of objects. However this not a limitation as the designer may be working on a set of assemblies of objects.
- the modeling graph will be considered in the following as a single root directed acyclic graph (DAG).
- DAG single root directed acyclic graph
- FIGS. 6 and 7 shows that generalisation to a multi root DAG is straightforward. Indeed, a multi root DAG, such as the one represented in FIG. 6 , is easily transformed into a single root DAG by adding a root node r and arcs connecting this root node r to all former root nodes, as illustrated in FIG. 7 .
- the modeling graph may thus be a reuse graph as known from the prior art.
- the invention is applicable to other types of assemblies modeled by a DAG.
- the assembly is further modeled by at least one relation having at least one tuple containing a first chain of at least one identifier.
- a relation is an unordered set of tuples.
- a tuple is an ordered set of at least one element.
- the tuple being ordered is not a requirement for the application of the invention.
- a tuple will be considered as a set of at least one element in the following.
- the arity of a tuple is the number of elements it contains.
- the arity of the relation is then the arity of its tuples.
- a relation does not necessarily have an arity, as it may contain tuples of different arities.
- relations capture one of the following:
- each arc of the modeling graph carries the relative position of the end node with respect to the origin node.
- the relative position of axis system R 1 with respect to axis system R 2 is the isometric 3D transformation P that brings R 2 onto R 1 .
- arc u 4 carries the relative position of the (use of) object c in object b.
- arc u 1 carries the relative position of the (use of) object b in object a.
- Unfolding the reuse graph includes on-the-fly positioning computation of each part.
- the position of part (c, 2) is the combination of relative position of c with respect to b and relative position of b with respect to a. It is preferable, for resource saving, to capture a relative position as a relation of arity 1 .
- Contextual links relations are now briefly discussed. Let S and T be two objects used within an assembly, respectively named the source part and the target part.
- a contextual link is created by copying a geometry of object S into object T. The copy saves the link between the source geometry and the copied geometry, meaning that if the source geometry is changed, the copied geometry is updated in order to feature the new shape.
- Interface publication relations are now briefly discussed. Many applications need a rigorous definition of object interfaces.
- the interface of an object is what allows the object to communicate with the outside world.
- the interface of a wheel may comprise a bore and a tread.
- definitions of the interface of an object are exposed outside the object, they are published, and external links are supposed to connect published objects only.
- a publication is described by a user defined name and a path of arcs defining the published object among the modeling graph.
- a publication behaves like a relation of arity one, i.e. a relation of which tuples contain only one object.
- Organizing tree relations are now briefly discussed. In many circumstances the designer's need is to re-organize the parts of the assembly without changing the modeling graph.
- the parts of the assembly may correspond to the leaf nodes of the unfolded tree. How to obtain the unfolded tree corresponding to the modeling graph has already been discussed and is known from prior art.
- Organizing tree tuples may be created each time the tree structure provided by the unfolded tree is not convenient. To solve this problem, a new tree structure is created, called the “organizing tree”. Nodes of this organizing tree are what the designer requires in terms of type, name etc. The only condition is to associate each leaf node of the organizing tree to a leaf node of the unfolded tree.
- Leaf nodes of the organizing tree know the leaf nodes of the unfolded tree through their paths of arcs.
- an organizing tree is a relation for which the arity is as high as the number of leaf nodes of the unfolded tree corresponding to the modeling graph
- the assembly is not necessarily modeled by a relation belonging to one of the categories cited above. It may be modeled by any other relation useful to the design of an assembly of objects.
- relations of arity 2 i.e. relations between two objects.
- relations of arbitrary arity for example arity 1 , for instance in the case of relative positioning and interface publication, or possibly higher arity, for instance in the case of organising tree
- relations without a fixed arity is straightforward.
- the relation captures design characteristics of the assembly through its tuple.
- the tuple provides information that the objects (or the object) to which the tuple corresponds are within the relation.
- the tuple further models the assembly.
- a tuple is typically encoded as a sequence of characters. However, any way of encoding this information is within the scope of the invention. By extension and for the sake of concision, it is referred to both the set of objects within the relation and to the encoding of this information with the same word “tuple”.
- the relation modeling the assembly has at least one tuple.
- a valid tuple corresponds to a set of objects of the assembly.
- a broken tuple fails to identify a set of objects of the assembly within the relation.
- a tuple identifies a set of objects of the assembly by referring to the nodes representing the objects.
- nodes are referred to by using paths of arcs identifying the nodes.
- the tuple contains a first chain of at least one identifier.
- the identifiers in the first chain may comprise identifiers of arcs of the modeling graph. This is however not always the case, for example when a tuple is broken.
- the method comprises the step of determining at least one mapping between the first chain and a second chain of at least one identifier as well as the step of substituting at least one occurrence of the first chain in the tuple of the relation with the second chain.
- substituting the first chain with the second chain allows to repair the tuple.
- the mapping between the first chain and the second chain provides means for correctly performing the step of substituting without the intervention of the designer.
- the repair is automatic and the designer does not need to manually reroute the tuples. Consequently design is facilitated.
- the relation may have a plurality of tuples containing the first chain.
- the assembly may be further modeled by another relation having at least one tuple containing the first chain.
- the idea is that there may be more than one tuple containing the first chain. This is the case notably when an object of the assembly is within several relations and/or within several tuples of a same relation.
- the step of determining is performed only once.
- the step of substituting may be performed for all the tuples containing the first chain, or all the tuples containing the first chain which have been selected for repair. In the case the tuples containing the first chain are broken, design is considerably facilitated because the designer does not need to manually repair tuples one by one. Indeed, the repair is automatic as all the substitutions are performed automatically on the basis of the mapping.
- Performing the step of substituting to any tuple may comprise applying to the tuple the determined mapping from the first chain to the second chain.
- applying the mapping comprises substituting the first chain with the second chain in the tuple.
- applying the mapping is the same as applying the identity mapping, as no substitution occurs.
- the method may comprise a step of testing whether or not tuples contain a first chain of a mapping and applying the mapping only to tuples which contain the first chain.
- the method may apply the mapping to all tuples without the step of testing.
- the modeling graph may be provided by a step of editing an initial modeling graph.
- the initial modeling graph may be changed, or modified.
- the step of determining may then be carried out according to the step of editing.
- FIG. 1-5 illustrate how editing a graph leads to a broken tuple.
- the graph of FIG. 1 is an initial graph modeling an assembly.
- a relation Connect with one tuple further model the assembly.
- the tuple is coded using chains of identifiers of arcs of the initial modeling graph.
- a chain of identifiers correspond to a path of arcs.
- the relation Connect may have a tuple Connect[u 1 u 3 ,u 2 u 3 ].
- Editing (or modifying) the initial modeling graph may provide a modeling graph such as the one represented in the example of FIG. 4 after the following sequence of basic operations is performed:
- Editing the graph may thus include:
- Adding an arc is the same as creating an arc.
- Rerouting an arc means redefining its origin node and/or its end node.
- the initial modeling graph Prior to the step of editing, the initial modeling graph may be unfolded. Each node of the initial graph unfolded may be uniquely identified by a chain of at least one identifier of an arc. The chain corresponds to a path of arcs of the initial graph. Unfolding the initial modeling graph prior to the step of editing renders the step of editing more user-friendly.
- FIG. 2 is an example of the result of unfolding the initial graph of FIG. 1 .
- FIG. 3 provides an illustration of the tuple Connect[u 1 u 3 ,u 2 u 3 ] in the initial modeling graph unfolded of FIG. 2 .
- the modeling graph is thus the result of the editing of the initial modeling graph.
- the tuple Connect[u 1 u 3 ,u 2 u 3 ] is broken because the path u 1 u 3 does not identify any node of the unfolded modeling graph represented in FIG. 5 .
- This example shows how editing a graph breaks tuples.
- a solution for automatically repairing such broken tuples is to determine the mapping between the first chain and the second chain according to the step of editing. For example, operation 5 that changes the origin of arc to from node a to node b may be associated with the mapping to u 1 ⁇ u 1 u 6 between the first chain to and the second chain u 1 u 6 .
- this tuple is valid as it correctly identifies two nodes of the unfolded modeling graph through arc paths u 1 u 6 u 3 and u 2 u 3 .
- this valid tuple can be coded on non-persistent symbols as Connect[(c,9), (c, 7)] each time the modeling graph is unfolded.
- the PLM/CAD system only requests mandatory repair tuple or reroute tuple operations to the designer. “Obvious” reroute operations are automatically performed by the system. Consequently, the designer is not frustrated by spending time on non productive tasks and saved time is dedicated to design tasks. Furthermore, quality is saved because potential errors caused by manual reroute operations are eliminated.
- the steps of editing and determining may be iterated.
- the initial modeling graph may be edited several times. Each time, a mapping may be determined accordingly.
- the designer performs an edition by inserting a new reference d between a and b, same as above, and by inserting another new reference e between d and b.
- the resulting modeling graph and unfolded modeling graphs are respectively shown in FIGS. 9 and 10 .
- mappings determined at the step of determining after each editing step, according to each editing step are: to u 1 ⁇ u 1 u 6 and u 6 ⁇ u 6 u 7 .
- Each mapping determined at an iteration of the step of determining may increment a mapping list.
- a mapping list models the assembly.
- a list is an ordered set.
- the mappings of the list are ordered.
- the incrementing respects the order in which the iterations of the step of determining are carried out. This way, the mapping list keeps track of the editing history. It allows automatically repairing broken tuples even in the case sophisticated editions comprising many steps are performed on the initial modeling graph.
- the list consists of mappings to u 1 ⁇ u 1 u 6 and u 6 ⁇ u 6 u 7 .
- tuple Connect[u 1 u 3 ,u 2 u 3 ] which is broken in the context of the edited graph of FIGS. 9 and 10 , is repaired by substituting successively the chain u 1 by chain u 1 u 6 and then chain u 6 by chain u 6 u 7 so that it becomes Connect[u 1 u 6 u 7 u 3 ,u 2 u 3 ], which is a valid tuple in the context of the edited modeling graph.
- the mapping list may be compacted. Indeed, in the example of FIGS. 9 and 10 , one may notice that the list of two mappings u 1 ⁇ u 1 u 6 and u 6 ⁇ u 6 u 7 can be compacted into only one: to u 1 ⁇ u 1 u 6 u 7 .
- the broken tuple is then repaired so as to become the same valid tuple Connect[u 1 u 6 u 7 u 3 ,u 2 u 3 ] as before, which correctly connects occurrence nodes (c,9) and (c, 7) of the unfolded graph of FIG. 10 .
- This compacting operation may be performed before the step of substituting.
- the invention defines a software architecture such that:
- mappings may be determined automatically according to rules. Such rules are the responsibility of the software engineer in charge of the edition algorithm. A mathematical theorem, proven later in the following, may help defining such rules. Mappings may also be determined by the designer.
- the mapping list may be compacted before application for performance purpose.
- the compacted mapping list may be formally applied for substitution to all tuples involved in all relation definitions. Alternatively, some of the mappings of the mapping list may be applied to some of the tuples.
- FIG. 11 illustrates a chart of the state of the art process. Tuples are updated after the unfolded modeling graph is recomputed and many broken links (1) must be repaired by the designer.
- FIG. 12 illustrates a chart of an example of the invention process. Mappings are created during the edition of the modeling graph. They are formally applied to all paths involved in tuples before updating the tuples. Remaining broken tuples (2), if any, are to be repaired or rerouted by the user for genuine design purpose only, which is proven later by a mathematical theorem.
- FIG. 13 represents an example of a more sophisticated edition operation on the modeling graph of FIG. 1 .
- the goal is to provide a flat modeling structure by removing the intermediate node.
- the design may edit the leftmost graph of FIG. 13 into the rightmost graph of FIG. 13 by removing intermediate node b.
- the goal of this operation is to maintain the same number of parts (corresponding to leaf nodes as already explained) in the unfolded modeling graph.
- the unfolded graph of the edited modeling graph must thus feature five occurrences of part c, as illustrated in FIG. 14 .
- Collaborative design is for several users to get a local copy of the initial object and to modify this local copy. Modification is to change the assembly structure, add and remove relationships.
- a first designer may work on a first assembly and a second designer may work on a second assembly.
- the collaboration lies in the fact that both designers may start from the same initial modeling graph.
- the second designer edits the modeling graph as detailed above.
- the second designer may create a relation and a tuple within the relation. He may then send the tuple to the first designer.
- a tuple might be broken in the context of the modeling graph of the first assembly.
- the inverse of the mapping resulting from the edition may be determined.
- the substituting may be carried out according to the determined inverse of the mapping.
- the mapping is the inverse of a mapping determined in the design of the second assembly, the second assembly being designed according to a method which comprise a step of editing the initial graph of the second assembly, the modeling graph of the first assembly and the initial graph of the second assembly being the same. This enhances concurrent and collaborative design. Indeed, thanks to the inverse of the mapping, tuples created in the context of a second user are automatically repaired when sent to the context of a first user working on the initial modeling graph.
- the invention solves this problem by providing a method for designing a first assembly.
- the first assembly is edited and a first mapping is determined accordingly.
- the mapping is further compounded to an inverse of a mapping determined during the edition of a second assembly.
- the initial graph of the first and second assembly are the same. Thanks to such a method, even if both users edit the same initial graph, they can send relations to one another without systematically having to manually reroute the tuples of the relations.
- the system may perform appropriate pre and post processing steps, as illustrated in FIG. 16 .
- FIG. 17 shows the mapping algebra occurring inside the pre and post processing steps.
- the mappings generated by this edition increment a mapping list, “s-list” for short.
- Notation s i ⁇ j is the s-list associated with the edition changing graph G i into graph G j .
- Inverse mapping [s i ⁇ j ] ⁇ 1 is noted s i ⁇ j so that s i ⁇ j * s i ⁇ j is the identity, wherein “*” is the compound operator.
- Graph G 1 is sent to user B together with s-list s 0 ⁇ 1 .
- Pre-processing step is to compute the inverse s-list from graph G 3 (where tuple x is created) up to the initial graph G 0 .
- Post processing step is to combine this s-list with the one representing changes made by user B on graph G 1 . This yields the appropriate s-list modeling changes from G 3 to G 2 , which allows rerouting tuple x to its new context: graph G 2 .
- FIG. 18 illustrates a more complicated example involving three users and extensive communication.
- designers A, B and C work on a given assembly. Since they work separately, they use a local copy of the initial modeling graph. They all edit the modeling graph and create relations. The point is to exchange tuples of relations created on different versions of the modeling graph.
- a dedicated structure may capture all s-lists and their connections to different modeling graph versions. This structure may for example be a directed tree graph. The root node is the initial version of the modeling graph. Other nodes are successive versions of the modeling graph.
- a directed arc connecting node X to node Y is labelled with the s-list associated with the modifications changing modeling graph X into modeling graph Y.
- Branches of the tree graph capture modifications made by the same user. For example, initial modeling graph G 0 is changed by user A into G 1 , then G 2 and finally G 3 . User B copies modeling graph G 1 and changes it into G 4 . User C copies G 2 and changes it into G 5 . This yields the tree of FIG. 18 .
- a tuple of a relation created on any graph can be made compatible with any other graph by applying the suitable sequence of mappings. This sequence is obtained by the unique path in the tree structure connecting the two modeling graphs. For example, a tuple x created by user C on graph G 5 is compatible with user's B graph G 4 provided the following s-list is applied to the path connected by the tuple: s 1 ⁇ 4 *s 2 ⁇ 1 *s 5 ⁇ 2 (x).
- s 1 ⁇ 4 *s 2 ⁇ 1 *s 5 ⁇ 2 (x) the following s-list is applied to the path connected by the tuple: s 1 ⁇ 4 *s 2 ⁇ 1 *s 5 ⁇ 2 (x).
- FIG. 19 depicts this time sequence for each of the three users A, B and C and their interactions.
- receiver's identity has no influence on sender's preprocessing and that sender's identity has no influence on receiver's post processing.
- the preprocessing for sending to all designers in one shot is the same.
- a designer may keep in mail box several relationships sent by other designers and manage all of them in one shot: the post processing is the same.
- the key point is that the design starts with a common source, which is a standard strategy in parallelism technology.
- the following is dedicated to the theorem (and its formal proof) that consolidates the foundation of the invention.
- This theorem is an abstract result rather than an algorithm to provide the mappings. Nevertheless, the proof can be used as a guideline to investigate mappings of a given graph edition operator. It is referred to concepts commonly known from graph theory and basic algebra.
- the modeling graph is considered to be a connected, single root, directed acyclic graph. As mentioned earlier, generalization to multi root graph is straightforward. By definition, a “leaf node” has no output arc and a “root node” has no input arc. Given a modeling graph, the corresponding unfolded graph is nothing else than its mathematical “universal covering tree”. Let us first define the “equivalence” concept of two modeling graphs.
- D 1 and D 2 be two modeling graphs and U(D 1 ), U(D 2 ) their respective unfolded trees.
- L(D 1 ) and L(D 2 ) be the sets of leaf nodes of U(D 1 ) and U(D 2 ) respectively.
- D 1 and D 2 are linked by relation ⁇ if there exists a bijection g from L(D 1 ) to L(D 2 ).
- Relation ⁇ has the property of being an equivalence relation on the set of all modeling graphs.
- D 1 and D 2 be two equivalent modeling graphs, that is D 1 ⁇ D 2 .
- D 1 ⁇ D 2 some leaf parts of D 1 are connected together through tuples coded on paths of D 1 arcs. Then, there exists a unique and minimal set of mappings so that all links can be automatically rerouted on leaf parts of D 2 .
- Nodes and arcs of the unfolded graph are respectively formal copies of nodes and arcs of the modeling graph.
- An index generator is needed in order to provide on the fly new indexes i such that for each identifier x only one identifier (x,i) exists.
- This “formal copy” concept is introduced for mathematical purpose. When drawing a graph, it is a mathematical nonsense to repeat node or arc identifiers. Two occurrences of a given symbol represent different objects, so they must be distinguished, which is done through a formal copy.
- the projection ⁇ (•) is easily extended to path of arcs of the unfolded graph as follows. If (u 1 ,i 1 )(u 2 ,i 2 ) . . .
- D 1 and D 2 be two equivalent modeling graphs. There exists a bijection g from L(D 1 ) to L(D 2 ). For each x ⁇ L(D 1 ), let p(x) be the path of arcs of U(D 1 ) from the root node down to x. This path is unique because the graph U(D 1 ) is a tree. Let g(x) ⁇ L (D 2 ) be the image of x through the bijection g. This defines the mapping ⁇ (p(x)) ⁇ (p(g(x))).
- This set is finite,
- chains of identifiers on both sides of the arrow . . . ⁇ . . . may share a prefix and/or a post fix sub chain, or may even be identical. Such pre or post fix sub chains can be removed, which makes the mapping simpler and less numerous.
- S ⁇ tilde over ( ) ⁇ be the minimal set of mappings. Applying these mappings to paths embedded in the tuples on leaf parts of D 1 yields tuples defined on leaf parts of D 2 .
- the set S ⁇ tilde over ( ) ⁇ is uniquely derived from input objects: D 1 , D 2 and g. This ends the proof.
- nodes of modeling graph are Latin letters a, b, c, d, . . . and arcs of modeling graphs are identified with numbers 1, 2, 3, . . . .
- FIGS. 20 and 21 respectively illustrate the modeling and unfolded modeling graphs D 1 and U(D 1 ).
- FIGS. 22 and 23 respectively illustrate a modeling graph D 2 and associated unfolded graph U(D 2 ). Notice that despite D 2 is a somewhat modified version of D 1 , they are equivalent, which can only be seen on unfolded graphs. Notice also that sub graph of b is unchanged but reused only once (i.e. only one input arc) in D 2 .
- FIGS. 24 and 25 Initial modeling and unfolded graphs are respectively illustrated at FIGS. 24 and 25 . Edited modeling and unfolded graphs are respectively as in FIGS. 26 and 27 .
- ⁇ is the empty chain. Mapping a chain to the empty chain removes it from a tuple. This means that symbol 2 is removed from all paths of arcs of the tuples of the modeling graph.
- the connection Connect(1/2/3,1/2/4) coded on the graph of FIGS. 1-3 becomes Connect(1/3,1/4) on the second modeling graph.
- mapping rules are still defined by ⁇ (p(x)) ⁇ (p(g(x))). The difference is that g(x) may not be defined for all x ⁇ L(D 1 ), and that g(x) may be equal to g(y) for distinct x and y in L(D 1 ).
- Remaining mapping, if any, are used to reroute or partially reroute connections. Unsolved connections require a user's decision, which is unavoidable to capture the design intent.
- FIGS. 28 and 29 illustrates this scenario.
- Initial modeling and unfolded graphs are respectively depicted in FIGS. 28 and 29 .
- the theorem proof can be used as a guideline to set up mapping rules of an edition operator.
- the investigation process, used by the algorithm designer, is what follows.
- mapping rules provide interesting information about relative positioning. Given an arc u i of the modeling graph, the associated relative position is noted P(u i ). Given two consecutive arcs of the modeling graph u i u j the combination of their respective relative positions is noted P(u i ) ⁇ P(u j ). Following this syntax, mapping rules provide equalities that must be satisfied.
- each arc of the modeling graph of the first assembly is an arc of the modeling graph of the second assembly or an arc of the modeling graph of the third assembly.
- the step of determining the at least one mapping for the first assembly is performed according to the merging. This provides a tool for automatically adapting tuples when merging two assemblies whatever the result of the merge.
- the method may comprise the steps of unfolding the modeling graph of the first assembly, the modeling graph of the second assembly, the modeling graph of the third assembly and the initial modeling graph of the second and third assembly. Each node of said unfolded graphs is then uniquely identified by a chain of at least one identifier of an arc.
- ⁇ (A), ⁇ (B), ⁇ (B′) and ⁇ ( ⁇ tilde over (B) ⁇ ) the unfolded graphs respectively obtained from modeling graphs and V ⁇ (A) , V ⁇ (B) , V ⁇ (B′) , V ⁇ ( ⁇ tilde over (B) ⁇ ) the sets of nodes of these unfolded graphs.
- Each node of the unfolded graph ⁇ (X) of a modeling graph X is uniquely identified by a path of arcs in graph X. So, there is no ambiguity to identify a node of ⁇ (X) and its associated path of arcs of X.
- mappings XY the mappings associated with the edition of modeling graph X into modeling graph Y. It is interpreted as a mapping from unfolded graphs nodes: s XY :V ⁇ (X) ⁇ V ⁇ (Y) . All the objects of this example are linked together according to the diagram of FIG. 33 .
- the method may comprise a step of providing a first corresponding node in the unfolded modeling graph of the second assembly and a second corresponding node in the unfolded modeling graph of the third assembly, said corresponding nodes corresponding to a same corresponded node of the unfolded initial graph of the second and third assembly.
- the corresponding nodes are the result of the corresponded node after the editions which results in the second and third assemblies.
- the method may further comprise the step of testing if the first corresponding node is in the unfolded modeling graph of the first assembly. In other words, the method tests if the transformation in the second assembly of the corresponded node (i.e. the first corresponding node) is kept in the merged assembly (i.e. the first assembly). If the testing yields a positive result, the determined mappings are from the chain of the corresponded node to the first corresponding node, and from the chain of the second corresponding node to the chain of the first corresponding node.
- a similar test may be performed for the second corresponding node. If this second test yields a positive result, the determined mappings are from the chain of the corresponded node to the second corresponding node, and from the chain of the first corresponding node to the chain of the second corresponding node. If the test is once again negative, then the determined mapping may be from the chain of the first corresponding node to the empty chain, and from the chain of the second corresponding node to the empty chain.
- the method may comprise the step of unfolding the modeling graph of the first assembly and the modeling graph of the second assembly.
- Each node of said unfolded graphs is uniquely identified by a chain of at least one identifier of an arc.
- the method may further comprise a step of providing a non-corresponding node in the modeling graph of the second assembly unfolded.
- the said non-corresponding node does not correspond to any node of the initial graph of the second assembly unfolded.
- a non-corresponding node is a node created after edition of the initial modeling graph.
- the method may further test if the non-corresponding node is in the unfolded modeling graph of the first assembly. In other words, it is tested if the created node is kept in the merged graph.
- the determined mapping is from the chain of the non-corresponding node to the empty chain. If the testing yields a positive result, then, no mapping is required, so nothing is done. The same may be performed for non-corresponding nodes in the modeling graph of the third assembly unfolded
- mappings s AB and s AB′ are given.
- the algorithm represented in FIGS. 34 and 35 builds S B ⁇ tilde over (B) ⁇ , s B′ ⁇ tilde over (B) ⁇ and s A ⁇ tilde over (B) ⁇ through two steps. Notations is the empty chain, the path of arcs with no arc. It is used to map erased path of arcs.
- the first step is illustrated by the pseudo-code of FIG. 34 .
- Third case is b and b′ both exist in the merged graph.
- the step illustrated by FIG. 34 did not manage nodes created in the modified graph ⁇ (B), thus belonging to V ⁇ (B) ⁇ s AB (V ⁇ (A) ), and nodes created in the modified graph ⁇ (B′), thus belonging to V ⁇ (B′) ⁇ s AB′ (V ⁇ (A) ). So, s B ⁇ tilde over (B) ⁇ is completed as illustrated by the pseudo-code of FIG. 35 and as the following explanations.
- a computer-aided design system 60 may comprise a database 94 storing objects ( FIG. 36 ).
- the system may be a PLM/CAD (Object LifeCycle Management/Computer Aided Design) system.
- the database 94 may store specifications of parts, assemblies of parts, etc.
- the system 60 may also comprise a graphical user interface (supported by I/O device interface 82 ) suitable for designing an assembly of a plurality of objects with the method described above.
- the graphical user interface 82 is interactive, so that a designer may graphically design an assembly and cause the system 60 to perform the method described above as a back process.
- a computer program 92 comprising instructions for execution by a computer 50 , 84 , the instructions comprising means for causing a computer-aided design system comprising a database 94 storing objects to perform the method described above, may be provided and for instance installed on a computer 50 .
- Such a program may be recorded on a computer readable storage medium 95 , as commonly known.
- a processor 84 will receive instructions 92 and data 94 from a read-only memory 95 and/or a random access memory 90 using system bus 79 , network interfaces 86 and/or other program (including hardware and/or software) supporting interfaces 82 .
- Storage devices suitable for tangibly embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing may be supplemented by, or incorporated in, specially designed ASICs (application-specific integrated circuits).
- the invention was mainly described in reference to the field of mechanical assembly, but it is applicable to any field where reference objects are reused and linked together in a hierarchical structure and where this structure is modified in a collaborative environment.
- the invention is applicable to the field of video games.
- the hierarchical structure was captured through a graph structure in the description.
- the invention is applicable to other structures adapted to capture a hierarchical structure between objects.
- prefix encoding which is equivalent to a graph, is within the scope of the invention as mappings may be applied to a prefix encoding.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Aviation & Aerospace Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
-
- each node represents an object of the assembly, and
- each arc represents the use of an end node by an origin node, at least one arc being uniquely identified by an identifier,
-
- the modeling graph is provided by a step of editing an initial modeling graph, the step of determining being carried out according to the step of editing;
- the step of editing includes deleting an arc of the initial modeling graph, adding an arc to the initial modeling graph, or rerouting an arc of the initial modeling graph;
- prior to the step of editing the initial modeling graph is unfolded, each node of the unfolded initial modeling graph being uniquely identified by a chain of at least one identifier of an arc;
- the steps of editing and determining are iterated;
- the mapping determined at each iteration of the step of determining increments a mapping list, the mapping list being further compacted;
- the method may be performed for designing a first assembly, wherein the mapping is an inverse of a mapping determined in the design of a second assembly, the second assembly being also designed according to the method, the modeling graph of the first assembly and the initial modeling graph of the second assembly being the same;
- the method may be performed for designing a first assembly, wherein the mapping is further compounded with an inverse of a mapping determined in the design of a second assembly, the second assembly being also designed according to the method, the initial modeling graph of the first and second assembly being the same;
- the method may be performed for designing a first assembly, wherein the modeling graph of the first assembly is provided by the merging of the modeling graph of a second assembly also designed according to the method with the modeling graph of a third assembly also designed according to the method, the initial modeling graph of the second and third assembly being the same, the merging provides that each arc of the modeling graph of the first assembly is an arc of the modeling graph of the second assembly or an arc of the modeling graph of the third assembly, and the step of determining is performed according to the merging;
- the method may further comprise the steps of unfolding the modeling graph of the first assembly, the modeling graph of the second assembly, the modeling graph of the third assembly and the initial modeling graph of the second and third assembly, each node of said unfolded graphs being uniquely identified by a chain of at least one identifier of an arc, providing a first corresponding node in the unfolded modeling graph of the second assembly and a second corresponding node in the unfolded modeling graph of the third assembly, said corresponding nodes corresponding to a same corresponded node of the unfolded initial graph of the second and third assembly, and testing if the first corresponding node is in the unfolded modeling graph of the first assembly, wherein if the testing yields a positive result, the determined mappings are from the chain of the corresponded node to the first corresponding node, and from the chain of the second corresponding node to the chain of the first corresponding node;
- the method may further comprises the steps of unfolding the modeling graph of the first assembly and the modeling graph of the second assembly, each node of said unfolded graphs being uniquely identified by a chain of at least one identifier of an arc, providing a non-corresponding node in the modeling graph of the second assembly unfolded, said non-corresponding node not corresponding to any node of the initial graph of the second assembly unfolded, and testing if the non-corresponding node is in the unfolded modeling graph of the first assembly, wherein if the testing yields a negative result, the determined mapping is from the chain of the non-corresponding node to the empty chain;
- the relation is a mechanical link, a contextual link, a relative positioning, a publication interface, or an organizing tree.
-
- a database storing objects; and
- a graphical user interface suitable for designing an assembly of a plurality of objects with the above method.
-
- mechanical links between objects such as dimensioning and positioning constraints,
- relative positioning between objects and their parent objects,
- contextual links between objects such as copy-with-link objects with or without relative positioning specification
- interface publications, and
- organizing trees.
-
- 1. create node d,
- 2. create arc u6,
- 3. set origin of arc u6 to node d,
- 4. set end of arc u6 to b and
- 5. change the end of arc u1 to node d.
-
- deleting an arc of the initial graph,
- adding an arc to the initial graph, or
- rerouting an arc of the initial graph.
-
- u1u3→u6
- u1u4→u7
- u2u3→u8
- u2u4→u9
Initial | Edited | |
Modeling graph | Connect[u1 u3, u2 u3] | Connect[u6, u8] |
Publish[u2u4] | Publish[u9] | |
Unfolded modeling graph | Connect[(c, 1), (c, 5)] | Connect[(c, 8), (c, 10)] |
-
- 1. User A creates the very first version G0 of the modeling graph.
- 2. User A edits this modeling graph into a new version G1, and stores the s-list s0
→ 1 associated to this edition. - 3. User A sends G1 to user B together with the s-list s0
→ 1. - 4. User A edits G1 into another version G2 and stores the s-list s1
→ 2. - 5. In the meantime, user B edits G1 graph into another version G4 and stores the s-list s1
→ 4. - 6. User A sends graph G2 to user C, together with the compound s-list s1
→ 2*s0→ 1. - 7. User A edits G2 into G3 and stores the s-list s2
→ 3. - 8. User C edits G2 into G5 and stores the s-list s2
→ 5. - 9. User C creates tuple x and intends to send it to users A and B.
- 10. For this purpose, user C sends to user A (a copy of) tuple x together with the compound s-list S1
→ 0*s2→ 1*s5→ 2 - 11. User A receives tuple x and compound s-list s1
→ 0*s2→ 1*s5→ 2.- a. The first step is to compound this s-list with the s-list of all editions from the initial modeling graph, which yields (s2
→ 3*s1→ 2*s0→ 1)*(s1→ 0*s2→ 1*s5→ 2). - b. Next step is to simplify s2
→ 3*s1→ 2*s0→ 1*s1→ 0*s2→ 1*s5→ 2 into s2→ 3*s1→ 2*s2→ 1*s5→ 2 and into s2→ 3*S5→ 2. - c. Then user A applies this irreducible s-list to tuple x which makes it compatible with user's A current modeling graph G3, x:=s2
→ 3*S3→ 2(X).
- a. The first step is to compound this s-list with the s-list of all editions from the initial modeling graph, which yields (s2
- 12. User C sends (a copy of) tuple x to user B together with the compound s-list s1
→ 0* s2→ 1*s5→ 2. - 13. User B receives tuple x and s-list s1
→ 0*s2→ 1*s5→ 2.- a. The first step is to compound this s-list with the s-list of all editions from the initial graph, which yields s1
→ 4*s0→ 1*s1→ 0*s2→ 1*s5→ 2. Remember that s0→ 1 was sent to user B together with G1. - b. Next step is to simplify s1
→ 4*s0→ 1*s1→ 0*s2→ 1*s5→ 2 into s1→ 4*s2→ 1*s5→ 2. - c. Then user B applies this irreducible s-list to tuple x which makes it compatible with user's B current modeling graph G4, x:=s14*s2
→ 1* s5→ 2(x).
- a. The first step is to compound this s-list with the s-list of all editions from the initial graph, which yields s1
-
- 1. Preprocessing: the sender creates the compound s-list of inverse mappings resulting from all editions applied to the initial modeling graph up to sender's modeling graph.
- 2. The sender mails the tuple and this compound s-list to the receiver.
- 3. Post processing:
- a. The receiver composes the compound s-list with the compound mappings resulting from all changes applied to the initial modeling graph up to receiver's modeling graph.
- b. The receiver simplifies the resulting compound s-list.
- c. The receiver applies the irreducible s-list to the transmitted tuple.
L(D 1)={(c,1),(c,2),(c,3),(c,4),(c,5),(c,6),(d,1),(d,2),(d,3),(d,4)}
to
L(D 2)={(c,7),(c,8),(c,9),(c,10),(c,11),(c,12),(d,5),(d,6),(d,7),(d,8)}
by
g(c, 1) = (c, 7) | g(d, 1) = (d, 5) | ||
g(c, 2) = (c, 8) | g(d, 2) = (d, 6) | ||
g(c, 3) = (c, 9) | g(d, 3) = (d, 7) | ||
g(c, 4) = (c, 10) | g(d, 4) = (d, 8) | ||
g(c, 5) = (c, 11) | |||
g(c, 6) = (c, 12) | |||
-
- π(p(c,1))→π(p(g(c,1)))
- π(p(c1))→π(p(c, 7))
- π(5,1)→π((9,1)(11,1))
- 5→9/11
5 → 9/11 | 2/3 → 12 | ||
8 → 10/11 | 2/4 → 13 | ||
1/3 → 1/3 | 2/6 → 14 | ||
1/4 → 1/4 | 2/7 → 15 | ||
1/6 → 1/6 | |||
1/7 → 1/7 | |||
that reduces to |
|||
5 → 9/11 | 2/4 → 13 | ||
8 → 10/11 | 2/6 → 14 | ||
2/3 → 12 | 2/7 → 15 | ||
-
- 1/2/3→1/3
- 1/2/4→1/4
-
- 2/3→3
- 2/4→4
-
- 2→ε
g(c,1)=g(c,2)=(d,1)
g(c,4)=g(c,5)=(d,2)
which induces the mappings
-
- u1u3→u6
- u1u4→u6
- u2u3→u7
- u2u4→u7.
-
- 1. Create a modeling graph D1 on which the edition operator can be applied.
- 2. Apply formally the edition operator on this modeling graph, which yields a new modeling graph D2.
- 3. Unfold these two modeling graphs and set the bijection g.
- 4. Following the proof obtain mapping rules from these objects.
u 1 u 2 . . . u n →v 1 v 2 . . . v m
the corresponding positioning equality is
P(u 1)·P(u 2)· . . . ·P(u n)=P(v 1)·P(v 2)· . . . ·P(v m).
Claims (14)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09306355 | 2009-12-31 | ||
EP09306355.0 | 2009-12-31 | ||
EP09306355A EP2354986A1 (en) | 2009-12-31 | 2009-12-31 | Design of an assembly modeled by a graph |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120004891A1 US20120004891A1 (en) | 2012-01-05 |
US8798975B2 true US8798975B2 (en) | 2014-08-05 |
Family
ID=42101567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/980,694 Active 2032-02-13 US8798975B2 (en) | 2009-12-31 | 2010-12-29 | Computer method and system providing design of an assembly modeled by a graph |
Country Status (6)
Country | Link |
---|---|
US (1) | US8798975B2 (en) |
EP (1) | EP2354986A1 (en) |
JP (1) | JP5763334B2 (en) |
KR (1) | KR101691454B1 (en) |
CN (1) | CN102117361B (en) |
CA (1) | CA2726413C (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11727166B2 (en) | 2018-05-08 | 2023-08-15 | Autodesk, Inc. | Techniques for generating graph-based representations of complex mechanical assemblies |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799269B2 (en) | 2012-01-03 | 2014-08-05 | International Business Machines Corporation | Optimizing map/reduce searches by using synthetic events |
CN102708242B (en) * | 2012-05-07 | 2014-08-06 | 上海飞机制造有限公司 | Method and device for solving disassembling path of product pipe piece |
US9460200B2 (en) | 2012-07-02 | 2016-10-04 | International Business Machines Corporation | Activity recommendation based on a context-based electronic files search |
US8898165B2 (en) | 2012-07-02 | 2014-11-25 | International Business Machines Corporation | Identification of null sets in a context-based electronic document search |
US8903813B2 (en) | 2012-07-02 | 2014-12-02 | International Business Machines Corporation | Context-based electronic document search using a synthetic event |
CN102768703B (en) * | 2012-07-03 | 2014-10-08 | 河海大学 | Water-turbine generator set virtual assembly modeling method and system based on tree graph model |
US9262499B2 (en) | 2012-08-08 | 2016-02-16 | International Business Machines Corporation | Context-based graphical database |
US8959119B2 (en) * | 2012-08-27 | 2015-02-17 | International Business Machines Corporation | Context-based graph-relational intersect derived database |
US10169446B1 (en) | 2012-09-10 | 2019-01-01 | Amazon Technologies, Inc. | Relational modeler and renderer for non-relational data |
US8620958B1 (en) | 2012-09-11 | 2013-12-31 | International Business Machines Corporation | Dimensionally constrained synthetic context objects database |
US9619580B2 (en) | 2012-09-11 | 2017-04-11 | International Business Machines Corporation | Generation of synthetic context objects |
US9251237B2 (en) | 2012-09-11 | 2016-02-02 | International Business Machines Corporation | User-specific synthetic context object matching |
US9223846B2 (en) | 2012-09-18 | 2015-12-29 | International Business Machines Corporation | Context-based navigation through a database |
US8782777B2 (en) | 2012-09-27 | 2014-07-15 | International Business Machines Corporation | Use of synthetic context-based objects to secure data stores |
US9741138B2 (en) | 2012-10-10 | 2017-08-22 | International Business Machines Corporation | Node cluster relationships in a graph database |
US8931109B2 (en) | 2012-11-19 | 2015-01-06 | International Business Machines Corporation | Context-based security screening for accessing data |
CN103123660B (en) * | 2012-12-31 | 2016-03-23 | 清华大学 | A kind of method to software and hardware system CAD mathematics library |
EP2750106B1 (en) * | 2012-12-31 | 2021-09-15 | Dassault Systèmes | Geometrical elements transformed by rigid motions |
US9229932B2 (en) | 2013-01-02 | 2016-01-05 | International Business Machines Corporation | Conformed dimensional data gravity wells |
US8914413B2 (en) | 2013-01-02 | 2014-12-16 | International Business Machines Corporation | Context-based data gravity wells |
US8983981B2 (en) | 2013-01-02 | 2015-03-17 | International Business Machines Corporation | Conformed dimensional and context-based data gravity wells |
US9053102B2 (en) | 2013-01-31 | 2015-06-09 | International Business Machines Corporation | Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects |
US9069752B2 (en) | 2013-01-31 | 2015-06-30 | International Business Machines Corporation | Measuring and displaying facets in context-based conformed dimensional data gravity wells |
US8856946B2 (en) | 2013-01-31 | 2014-10-07 | International Business Machines Corporation | Security filter for context-based data gravity wells |
US9292506B2 (en) | 2013-02-28 | 2016-03-22 | International Business Machines Corporation | Dynamic generation of demonstrative aids for a meeting |
US10152526B2 (en) | 2013-04-11 | 2018-12-11 | International Business Machines Corporation | Generation of synthetic context objects using bounded context objects |
US9195608B2 (en) | 2013-05-17 | 2015-11-24 | International Business Machines Corporation | Stored data analysis |
US9348794B2 (en) | 2013-05-17 | 2016-05-24 | International Business Machines Corporation | Population of context-based data gravity wells |
US9606526B2 (en) | 2014-05-28 | 2017-03-28 | Siemens Product Lifecycle Management Software Inc. | Intelligent constraint selection for positioning tasks |
EP2990970A1 (en) * | 2014-08-26 | 2016-03-02 | Dassault Systèmes | Execution of sequential update |
EP2990969A1 (en) * | 2014-08-26 | 2016-03-02 | Dassault Systèmes | Criterion for sequential update |
US10437938B2 (en) | 2015-02-25 | 2019-10-08 | Onshape Inc. | Multi-user cloud parametric feature-based 3D CAD system |
TWI555351B (en) * | 2015-06-17 | 2016-10-21 | 國立清華大學 | Network reliability evaluation method for acyclic network and system thereof |
US10353916B2 (en) * | 2016-03-25 | 2019-07-16 | Bentley Systems, Incorporated | Techniques for conversion of CAD descriptions |
CN112598779B (en) * | 2020-11-18 | 2024-05-31 | 广东三维家信息科技有限公司 | Node modeling method and device, electronic equipment and storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050209829A1 (en) | 2001-12-21 | 2005-09-22 | Anda Binzer | Method, a computer system, and a computer program product for configuration a virtual representation of an assembly of a plurality of components |
CN101126976A (en) | 2006-08-15 | 2008-02-20 | 国际商业机器公司 | Method and system for analyzing and rendering conflict and automatically coordinating model change |
CN101271479A (en) | 2007-03-22 | 2008-09-24 | 西北工业大学 | Unified modeling method of mechanical product tolerance |
CN101421729A (en) | 2006-03-03 | 2009-04-29 | 奥多比公司 | The system and method for the directed acyclic graph structures in effective expression and the search database |
US20090187881A1 (en) | 2007-12-20 | 2009-07-23 | International Business Machines Corporation | Difference log production for model merging |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484197B2 (en) * | 2006-04-14 | 2009-01-27 | International Business Machines Corporation | Minimum layout perturbation-based artwork legalization with grid constraints for hierarchical designs |
EP1868149B1 (en) * | 2006-06-14 | 2019-08-07 | Dassault Systèmes | Improved computerized collaborative work |
JP2009157529A (en) * | 2007-12-25 | 2009-07-16 | Hitachi Engineering & Services Co Ltd | Three dimensional cad model data management device |
-
2009
- 2009-12-31 EP EP09306355A patent/EP2354986A1/en not_active Ceased
-
2010
- 2010-12-23 CA CA2726413A patent/CA2726413C/en active Active
- 2010-12-24 JP JP2010288268A patent/JP5763334B2/en active Active
- 2010-12-29 US US12/980,694 patent/US8798975B2/en active Active
- 2010-12-30 KR KR1020100138615A patent/KR101691454B1/en active IP Right Grant
- 2010-12-31 CN CN201010625132.5A patent/CN102117361B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050209829A1 (en) | 2001-12-21 | 2005-09-22 | Anda Binzer | Method, a computer system, and a computer program product for configuration a virtual representation of an assembly of a plurality of components |
CN101421729A (en) | 2006-03-03 | 2009-04-29 | 奥多比公司 | The system and method for the directed acyclic graph structures in effective expression and the search database |
CN101126976A (en) | 2006-08-15 | 2008-02-20 | 国际商业机器公司 | Method and system for analyzing and rendering conflict and automatically coordinating model change |
CN101271479A (en) | 2007-03-22 | 2008-09-24 | 西北工业大学 | Unified modeling method of mechanical product tolerance |
US20090187881A1 (en) | 2007-12-20 | 2009-07-23 | International Business Machines Corporation | Difference log production for model merging |
Non-Patent Citations (10)
Title |
---|
Chinese Search Report dated May 5, 2014 in Chinese Application No. 201010625132.5. |
European Search Report for EP 09 30 6355 dated Apr. 22, 2010. |
Finger, S., et al. "A Transformational Approach to Mechanical Design Using a Bond Graph Grammar", American Society of Mechanical Engineers, Design Engineering Division, vol. 17, pp. 107-116, 1989. |
Heine, Christian et al., "Visualization of Barrier Tree Sequences", Sep./Oct. 2006, IEEE Transactions on Visualization and Computer Graphics, vol. 12, No. 5. * |
Kohavi, Ron et al., "Oblivious Decision Trees, Graphs, and Top-Down Pruning", 1995, International Joint Conference on Artificial Intelligence (IJCAI). * |
Molli, P., et al. "Using the Transformational Approach to Build a Safe and Generic Data Synchronizer", Proceedings to the International ACM Siggroup Conference Supporting Group-Work-Group '03: Proceedings of the 2003 Association for Computing Machinery, US, pp. 212-220, 2003. |
Noort, A., et al. "Integrating Part and Assembly Modelling", Computer-Aided Design, 34:12, pp. 899-912, Oct. 1, 2002. |
Rekiek, Brahim et al., "Designing Mixed-Product Assembly Lines", Jun. 2000, IEEE Transactions on Robotics and Automation, vol. 16, No. 3, IEEE. * |
Sinnen, Oliver et al., "A Platform Independent Parallelizing Tool Based on Graph Theoretic Models", 2001, Springer-Verlag Berlin Heidelberg. * |
Whitney, D.E. et al., "Designing Assemblies", 1999, Research in Engineering Design, Springer-Verlag London Limited. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11727166B2 (en) | 2018-05-08 | 2023-08-15 | Autodesk, Inc. | Techniques for generating graph-based representations of complex mechanical assemblies |
US11886776B2 (en) * | 2018-05-08 | 2024-01-30 | Autodesk, Inc. | Techniques for generating graph-based representations of complex mechanical assemblies |
Also Published As
Publication number | Publication date |
---|---|
CA2726413C (en) | 2019-11-05 |
JP2011138510A (en) | 2011-07-14 |
JP5763334B2 (en) | 2015-08-12 |
KR101691454B1 (en) | 2017-01-09 |
US20120004891A1 (en) | 2012-01-05 |
CN102117361A (en) | 2011-07-06 |
CA2726413A1 (en) | 2011-06-30 |
CN102117361B (en) | 2016-03-23 |
KR20110079549A (en) | 2011-07-07 |
EP2354986A1 (en) | 2011-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8798975B2 (en) | Computer method and system providing design of an assembly modeled by a graph | |
US8826225B2 (en) | Model transformation unit | |
Anjorin et al. | Benchmarking bidirectional transformations: theory, implementation, application, and assessment | |
JP2008165809A (en) | Method and computer program product for computer aided design of product comprising a set of constrained objects | |
KR20130135271A (en) | Code clone notification and architectural change visualization | |
Gui et al. | IFC-based partial data model retrieval for distributed collaborative design | |
Björklund et al. | Conjunctive query containment over trees | |
Anjorin et al. | A systematic approach and guidelines to developing a triple graph grammar | |
CN104748757B (en) | A kind of data in navigation electronic map update method and device | |
Le et al. | Domain-driven design using meta-attributes: A DSL-based approach | |
US7032192B2 (en) | Performing latch mapping of sequential circuits | |
Kato et al. | Variation management for software product lines with cumulative coverage of feature interactions | |
JP2010282623A (en) | Process of updating status of relation between objects in system having computer-aided design of object | |
JP2008225898A (en) | Conversion device, conversion program, and conversion method | |
Lu et al. | Bigraph specification of software architecture and evolution analysis in mobile computing environment | |
Thao | A configuration management system for software product lines | |
CN107533559A (en) | Data structure, the model for filling data structure and the method being programmed using data structure to processing unit | |
US11068468B2 (en) | Extensible validation framework | |
Cheng et al. | Strict and flexible rule-based graph repairing | |
Mishchenko et al. | Recording synthesis history for sequential verification | |
US8839183B2 (en) | Method and apparatus for derived layers visualization and debugging | |
Sæther | Three-Way Semantic Merge for Feature Model Evolution Plans | |
Bendiksen | A Way to Lay Out Argument Maps | |
Shumway et al. | Hybrid state transactional database for product lifecycle management features in a multi-engineer synchronous heterogeneous CAD environment | |
Akour et al. | Traceability between code and design documentation in database management system: a case study. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DASSAULT SYSTEMES, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RAMEAU, JEAN-FRANCOIS;ALT, LAURENT;SIGNING DATES FROM 20110127 TO 20110128;REEL/FRAME:025722/0608 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |