This application claims priority to European patent application no. 03291846.8 filed Jul. 25, 2003.
The invention relates to the field of computers programs and system, and more specifically to part design programs and systems.
A number of systems and programs are offered on the market for the design of parts or assemblies of parts, such as the one provided by the applicant under the trademark CATIA. These so-called computer-aided design (CAD) systems allow a user to construct and manipulate complex three-dimensional (3D) models of parts or assembly of parts.
A number of different modeling techniques can be used to create a model of an assembly. These techniques include solid modeling, wire-frame modeling, and surface modeling. Solid modelling techniques provide for topological 3D models, where the 3D model is a collection of interconnected edges and faces, for example. Geometrically, a 3D solid model is a collection of trimmed surfaces that defines a closed skin. The trimmed surfaces correspond to the topological faces bounded by the edges. The closed skin defines a bounded region of 3D space filled with the part's material. Wire-frame modeling techniques, on the other band, can be used to represent a model as a collection of simple 3D lines, whereas surface modeling can be used to represent a model as a collection of exterior surfaces. CAD systems may combine these, and other, modeling techniques, such as parametric modeling techniques.
Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters. Solid modeling and parametric modeling can be combined in CAD systems supporting parametric solid modeling.
A design engineer is a typical user of a 3D CAD system. The design engineer designs functional, physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into one or more subassemblies. In addition to parts, a subassembly may also consist of other subassemblies. Using parts and subassemblies, the design engineer designs an assembly. Hereinafter, parts and subassemblies are collectively referred to as “components”.
A part or component is constructed using various geometric building blocks, using tools generally provided in CAD systems. The order in which a design engineer creates features while constructing a part affects the physical structure of that part in a feature-based CAD. These systems are therefore history-based. For example, a part constructed first by cutting a block with a cylinder and then adding a boss that extends inside the void left by the cut cylinder will result in a hole with material from the boss inside the hole. If the order of the operations were reversed such that the boss was added before the cylindrical cut, then the cut would not only cut the material of the original block, but also that of the subsequent boss, resulting in a hole with no material inside of it. This is exemplified in FIGS. 1 to 3, which show a window displayed on the screen of a prior art CAD system.
EP-A-1 302 904 offers a solution to the problem of features order in such history-based CAD systems. It is based on the principle of separating feature creation order and feature regeneration order. Feature creation refers to the order in which a user adds features to a component; feature regeneration order refers to the order in which the geometric feature operations are applied to the underlying geometric model. This is achieved by associating to a given feature a feature scope, representative of the other features on which the given feature will have effects. The feature scope may be explicit—in which case the CAD system user would explicitly build a list of the other features on which a given feature will act. The feature scope may be implicit; it is then automatically defined by the system, based on a system of rules, e.g. relying on the order in which the features are introduced, on a proximity calculation or on attributes of the features. Explicit definition of feature scope creates an additional burden on the user. Implicit definition of feature scope is limited to a given number of pre-programmed rules. This document further discusses dynamically grouping and ordering features, according to the feature scopes, to build feature chains. A feature chain maintains three volumes; the first volume is a positive volume that combines all features that add material; the second volume is a negative volume that combines all features that remove material. The third volume combines the positive and negative volume. Features chains are created and represented by features trees; these trees are created taking into account the feature scopes. The system is thus dependent on feature scopes for building feature trees. More generally, the solution proposed in this patent to tantamount to changing a temporal complexity—the order in which features are defined—into scopes. However, defining scopes may be as complicated as defining a proper order for features.
US-A-2002/0133803 discusses a horizontally-structured CAD-CAM modelling system. This document suggests defining datum plane and linking new features to the datum planes. Thus, features are supposed to be amendable independently of each other. This solution makes it necessary for the user to define datum planes and to decide, for each new feature, to which datum plane the feature should be attached. This solution makes it possible to amend some features independently of other features. However, it does not address the problem of temporal order of features, as discussed above. Referring again to the example of
Other systems are proposed, which are not history dependent. These include systems relying on boundary representation modelling. The system only stores the boundary representation and not the sequence of actions of the user for defining the representation. A problem with these systems is that they hardly allow the user to modify or amend already designed structures. More specifically, these systems may provide tools for helping the user in generating new structures; these tools extrapolate the existing boundaries and only operate for limited changes to the boundaries. They also rely on a limited series of pre-programmed changes.
Thus, there exists a need for a CAD system, which would be simpler to use and still provide the advantages of history-dependent systems. The system should preferably be easy to adapt to the needs of the user and to the field of the art where it is used.
According to the invention, there is provided a system for designing parts or assemblies of parts, with
The operations may comprise commutative operations and non-commutative operations; the seed structure would then have inputs adapted to receive contributions. The seed structure would be adapted to apply commutative operations to the contributions received on each input and to apply commutative or non-commutative operations to the results of the commutative operations applied to said contributions.
The seed structure is preferably represented in the context-free grammar as an acyclic oriented graph. It may be a binary tree, or a non-binary tree.
A terminal alphabet of the context free grammar preferably comprises at least a solid, union, intersection and subtraction. One may add juxtaposition to the terminal alphabet.
In one embodiment, the terminal alphabet of the context free grammar comprises curves, surfaces and relimitation.
The invention also provides a process for providing a history-free system for the design of parts or assemblies of parts, the process comprising the steps of
In one embodiment, the operations comprise commutative operations and non-commutative operations; the step of using comprises providing a seed structure having inputs adapted to receive contributions and the seed structure adapted to apply commutative operations to the contributions received on each input and to apply commutative or non-commutative operations to the results of the commutative operations applied to said contributions.
The step of using preferably comprises defining the seed structure as an acyclic oriented graph; the seed structure may then be defined as a binary or non-binary tree.
A computer-aided design system embodying the invention will now be described, by way of non-limiting example, and in reference to the accompanying drawings, where:
In the rest of this specification, the words “part” or “assembly of parts” is used to designate an object modeled or designed in a computer-aided design system.
In reference to
Explanations are provided in reference to
A first embodiment of the invention is discussed in reference to
A second embodiment of the invention is discussed in reference to
A third embodiment of the invention is discussed in reference to
Last, a fourth embodiment of the invention is discussed in reference to
The invention makes it possible for the user of the CAD system to design parts or assemblies of parts without worrying about feature order. In essence, the system provided by the invention is a history-free design system. However, it includes a history based design system and therefore provides the advantages of such systems, as discussed above. It thus captures the design-intention of the user and permits a posteriori changes.
This is achieved by providing in the system
In the history-based design system, modeled objects are defined by an ordered sequence of operations and primitives. The system is adapted to receive data in the form of such ordered sequences. Examples of primitives—blocks—are given in reference to
The history based system is represented at 40 in
The system of the invention 42 is history-free and declarative. It comprises a end-user interface 44; this interface provides the end-user with the ability of selecting functional features out of the set of functional features and instantiating the selected functional feature with parameters. This is schematically represented in
User interface 44 outputs contributions 50, which are applied to the seed structure 52. Contributions are discussed in detail below. In essence, an instantiated functional feature input to the end-user interface 44 provides at least one contribution output by interface 44. A contribution is an ordered sequence of primitives and operations of the core system; a contribution is applied on a given input of the seed structure, as discussed below.
Contributions are applied to the seed structure 52. The seed structure receives contributions and based on the received contributions, provides to the core system 40 a data flow 54 which is an ordered sequence of primitives and operations, adapted to be handled by the core system. More specifically, the seed structure receives contributions and handles these contributions, by applying operations on the contributions or adding additional primitives. The seed structure does not separate or break a given contribution; in other words, a given contribution inputted to the seed structure is found in the resulting sequence provided by the seed structure.
The seed structure is built so that the order in which contributions are received does not change the result output by the seed structure, or more specifically, the evaluation of this result by the core system. This property of the seed structure is ensured since
In essence, the end-user is provided with tools—the functional features—which appear to be commutative. The functional features may thus be instantiated by the end-user in any order. Non-commutative operations are either contained within contributions or are carried out by the seed structure. Since contributions are not split or broken in the seed structure, the order of primitives and operations in the contributions is not amended by the design system. Since the ordering in the seed structure is not user-dependent, non-commutative operations in the seed structure provide a result which is not user dependent.
In addition, the system is provided with an editor for editing the seed structure, which is represented schematically at 56 in
In a preferred use of the invention, the expert user is a high skilled designer. He knows very well the technical field (sheet metal aerospace, machined parts for aerospace, automotive power train, ect.) as well as the CAD system behavior and limitations (manifold or non manifold solids, linear Constructive Solid Geometry structure, balanced Constructive Solid Geometry structures etc.). The end user is the mechanical designer and is provided with the various functional features. The way rights may be granted to users in a computer system is known to the person skilled in the art and is not detailed further.
As shown by arrow 58 in
System 42, from the perspective of the end-user, has the advantages of allowing easy modeling of objects. First, there are provided functional features, adapted to the field of the art, which facilitate object modeling. Second, the order in which the functional features are instantiated is not relevant to the resulting modeled object.
System 42 has the further advantage of being easily adapted to the field of the art, by editing the seed structure. This makes it possible to use the same design system for various fields of the art, while allowing an expert-user to customize the system. Several examples of seed structures are defined below. In the example of
The editor makes it possible to adapt an existing seed structure to make it more efficient, according to the capabilities of the core system, without changing its function. The editor also makes it possible to increase the functional capabilities of a seed structure in a given application. For instance, the editor makes it possible, for solids, to design concurrently a solid component and its mould, as exemplified below. It makes it possible to design at the same corresponding elements of an assembly, e.g. the two parts forming a housing with their linkage. The editor also makes it possible for the expert user to create a seed structure adapted to a given application. For instance, in naval construction, walls, openings, strengthening members are combined with specific relimitations. A seed structure may be designed in the editor for capturing the design methodology used in this field. More generally, any design process used in a CAD system may be captured in a seed structure and its associated functional features.
In addition, as discussed below, the editor may allow the expert user to amend existing functional features or create new functional features.
The system of the invention further allows concurrent engineering. Concurrent engineering is the art to coordinate several designers working at the same time on a shared part or assembly. Each designer is supposed to modify the (shared) part and is also supposed to receive modifications from other designers. The key point is to reconcile the modifications. In prior art systems, this is an issue, inasmuch the order in which modifications from each designer is carried out may impact the resulting modelled object. The order independency between design changes in the invention allows straightforward merges of modifications or additions carried out by each designer.
Context-free grammars are now discussed briefly, before exemplifying the invention. Details on context-free grammars may be found in Introduction to Automata Theory, Language and Computation, J. E. Hopcroft and J. D. Ullmann, Addison-Wesley, 1979. Although this reference discusses context-free grammars, it does not provide any suggestion to use such grammars in computer aided design systems.
A context-free grammar G is defined by G=(X, V, P) where X is a set of terminal symbols, V is a set of non-terminal symbols and P is a set of rules. A rule is a couple (S, m) where the first object is a non-terminal symbol and the second object is a string made of terminal and non-terminal symbols; more precisely, P is a subset of V×(X∪V)*. A rule is also written as S m; in other words, a rule changes a non-terminal symbol into a string made of terminal and non-terminal symbols. Using a context-free grammar makes it possible to recursively produce words in a well-defined syntax as well as algorithms to scan these words, check the syntax and launch computations. In this respect, the function of a non-terminal symbol is to be replaced by a string made of terminal and non-terminal symbols—thanks to a function. A sequence of symbols in the grammar is now called a word.
The seed structure 52 is defined and edited in a context-free grammar. As such, it is merely a word in the context free grammar. The grammar first provides a formal and rigorous environment for defining seed structures; checking syntax of a seed structure edited in editor 56 makes it possible to avoid that the end-user violates syntactic rules. This is fully independent of the field of the art in which the system 42 is used.
The use of a context free grammar makes it easy to input contributions to the seed structure, by using recursive functions. Specifically, the seed structure is a word comprising a number of terminal and non-terminal symbols, which are used for applying contributions to the seed structure; the non-terminal symbols could be understood as “inputs” to the seed structure, the terminal symbols are used to specify the operations that combine the objects (solid objects in the examples). In this respect, applying a contribution to the seed structure can be carried out merely by replacing a non-terminal symbol of the seed structure by a contribution; assuming a contribution is a word, this is simply a given rule of the grammar. For ensuring recursivity—the ability to apply any number of contributions to the seed structure—it is sufficient to apply a contribution to the seed structure by replacing a non-terminal symbol of the seed structure by a sequence comprising not only the contribution but also the replaced non-terminal symbol. In the rest of this specification, a rule in which the replaced non-terminal symbol appears in the replacing string is called a substitution. Using this definition of a substitution, a contribution is applied to the seed structure by using a substitution for changing a non-terminal symbol of the seed structure into a word comprising the non-terminal symbol and the contribution. This ensures that the resulting word still comprises the non-terminal symbol, to which an additional contribution may again be applied. This further ensures that the structure of the seed structure is preserved throughout the inputting of contributions.
Using a context-free grammar further makes it easy for the expert-user to ensure that the system 42 remains declarative: it is sufficient to check that substitution rules, which allow contributions to be applied to the seed structure, remain commutative.
The simplest context-free grammar used in this invention is now discussed in reference to
X={a,φ}
V={S}
P={SSSφ,Sa}
Symbol a is the first terminal symbol and it represents any solid—defined in the embodiment by a contribution or by an ordered sequence of primitives and operations of the core system. Symbol φ is the second terminal symbol and represents any operation, such as the operation of union (+), subtraction (−) and intersection (.). Non-terminal symbol S may be replaced by a sequence of non-terminal symbols and terminal symbols, using the rules contained in the set P of rules. Specifically, the first rule SSSφ replaces a non-terminal symbol S by the result of the operation φ between two non-terminal symbol. This result is noted SSφ, which is simply a more compact way of saying SφS. In terms of trees, the first operation replaces a leaf S of a tree by a node having two branches. The node is the result of the operation φ on two non-terminal symbols located at the end of the branches. The second operation S a replaces a non-terminal symbol by a terminal symbol and is typically used when a given value—a terminal symbol—is to be applied to a leaf of the tree.
The syntax of a word produced with this grammar may be checked by the pushdown automaton represented in
SSS−aS−aSS−−aSd−−
aSS+d−−abS+d−−abc+d−−
In other words, one starts from a non-terminal symbol S; the first operation is applied for replacing the non-terminal symbol by a tree having two branches 60 and 62 with a−operation at the root. The second operation is applied to replace the non-terminal symbol S in the leaf of first branch 60 of the tree by a terminal symbol a. The first operation is then applied to the remaining non-terminal symbol in the leaf of branch 62, which is replaced by a tree having two branches 64, 66 with a−operation at the root. The second operation is applied to replace the non-terminal symbol S in the leaf of branch 66 of the tree by a terminal symbol d. The first operation is then applied to the non-terminal symbol in the leaf of branch 64, which is replaced by a tree having two branches 68, 70 with a+operation at the root. The second operation is applied twice to replace the non-terminal symbols S in the leaf of branches 68, 70 by terminal symbols b and c. In the example of
The seed structure may be defined in the following context-free grammar G0=(X, V, P) where
X={a,+,−,·}
V={S,e−,e−,i+,i−,u}
P={Se+e−−i+i−−−u−}∪{zza+,zε{e+,e−,i+,i−,u}}
This context-free grammar is an elaborated version of the grammar disclosed in reference to
This allows the cohabitation with actual solids in the binary tree; in other words, non-terminal symbols e+,e−,i+,i− and u may remain in the ordered sequence provided at the output of the seed structure, without this having any consequence on the solid obtained.
The first operation in the formal grammar consists in providing the seed structure. The generic symbol S is replaced by the seed structure of
The second set of operations comprises the substitution operations, each of which consists in replacing one of the non-terminal symbols by a sequence containing a contribution and the replaced non-terminal symbol. Applying at least one substitution to the “handles” provides a modelled object.
As discussed above, the substitutions have the first property of preserving the seed structure, in that the replaced non-terminal symbol is still available after the substitution is applied, so as to allow further contributions to be applied. In addition, the substitutions have the second property that they do not change the resulting modelled object, whatever the order in which the contributions are applied. For instance,
e+b+c+e−−i+i−−−u−
is obtained by adding materials b and c in this order to the external shape. The modelled object is the same as
e+c+b+e−−i+i−−−u−
which is obtained by adding materials c and b, in this order, to the external shape. Thus, thanks to the fact that the second set of operations—substitutions—are commutative, functional features may be instantiated in any order. The resulting solid is independent from the order in which the functional features are instantiated.
As discussed above, the exemplary seed structure of
X={a,+,−,·}
V={S,e+,e−,i+,i−u}
P={zzzφ,zε{S,e+,e−,i+,i−,u},φε{+,−,·}}∪{za}
This grammar actually “includes” grammar Go, as defined above, and represents a “meta-granmmar”. This meta-grammar makes it possible to define any seed structure. Contrary to grammar G0, it does not guaranty that the system remains declarative. Indeed, grammar G1 makes it possible to define non-commutative substitutions. Grammar G1 may be used for checking the syntax of a seed structure amended or created by the expert user: this makes it possible to change the seed structure discussed above (e+e−−i+i−−−u−) to another seed structure. Grammar G0—or the amended version thereof—uses commutative substitutions and ensures that the overall system is declarative and history-free.
By convention, in this example, the bottom face is the default open face. Consequently, the thin bloc is defined by two extruded solids A and B easily created from the input data: profile, height and thickness. Extruded solid A represents the material added to the external shape, that is the contribution applied to leaf e+; extruded solid B represents the material added to the internal shape—and removed from the internal shape in the seed structure, that is the contribution applied to leaf i+. Contributions A and B are defined by the end-user interface 42, based on the information provided by the user.
This first example of functional feature makes it clear that the contributions applied to entries of the seed structure are defined based on the various inputs of the user. The end-user does not have to care about the various contributions. The only input of the end-user relates to the functional features and the parameters of these functional features.
The second functional feature used in this example is a fixture feature, represented in
This fixture functional feature adds a drilled circular bloc and an appropriate space reservation to the part so that the assembly is easy. The fixture results in a number of contributions, referenced C, D, E, F and G in
The first contribution removes material from the external shape; this material is noted C on
A fixture created on the current part leads to the updated word e+F+A+e−C+−i+B+i−E+D+−−uG+−. This word is equivalent to the binary CSG tree represented in
An additional data structure may be used for maintaining the link between the mechanical functions and the related basic solids. In the example, there may be a link between the thin solid feature and contributions A and B. There is a link as well between the fixture feature and contributions C, D, E, F and G. This makes it possible to maintain, for the end-user, the fact that several contributions—e.g. contributions A and B—actually stems from the instantiation of a given functional feature. Amendments to the functional feature would then change the various affected contributions.
It should also be noticed that there is no dependency between the various instantiated functional features—in the example the thin solid of
Furthermore, rounds, fillets and drafts can be added to basic solids. This does not change the syntax since a rounded (or drafted or filleted) basic solid behaves like a basic solid. The parameters of these additional features can be included in the functional feature definition. For example, a rounded and drafted thin solid yields the part represented in
The role of the expert user and end user is illustrated through the previous example. The expert user who knows very well the thin plastic part industry designs:
The embodiment of
The operation of the system is explained in reference to
A second embodiment is disclosed in reference to
The context free grammar in this embodiment is similar to the one discussed in reference to
X={a,+,−,·}
V={S,U,L,e+,e−,i+,i−,u}
P=P0∪P1∪P2
P0={Se+e−−i+i−−u−}∪{zza+,z ε{e−, e−,i+,i−,u}}
P1={SUe+−e−+}
P2={SLi+i−−}
The starting shapes for the upper and lower matrices are defined as U and L; these are non terminal symbol in the exemplified context free grammar; they could of course be defined by a specific functional feature. These shapes are examples of the simplest mould, with an upper matrix U and a lower matrix L. The shape of these matrices is the end user's responsibility, especially the join surface definition.
The additional functions in P1 and P2 provide the seed structures for the upper and lower matrices. These seed structures are shown in
Specifically, assume a thin solid is defined, as discussed above in reference to
Assume now the second functional feature is instantiated for adding a fixture. The tree of
Thus, instantiating a new functional feature in the part automatically updates the shape of the upper and lower matrices. Notice that the u non-terminal symbol does not appear in the mould structures since the machining features do not appear on the part right out of the mould.
The example of
The following context free grammar is used in this embodiment. The grammar is GT=(X, V, P) where
X={a,δ}
V={S,T}
P={SSTδS,TSTδ,Sa,T1}
Terminal symbol a represents any node of the tree. Terminal symbol δ is a syntactical feature that counts the number of children nodes under a parent node; it is used for building the tree. At this level of abstraction, there is no distinction between operand symbols and operation symbols. This specialization is done by the application that uses the grammar. This explains that the set of terminal symbols, contrary to the example provided above, does not contain any “operation”.
Non-terminal symbol S may be replaced by a sequence of non-terminal symbols and terminal symbols, using the rules contained in the set P of rules. Non-terminal symbol T is used for the sake of adding branches to the tree and with terminal symbol δ, for counting branches in a tree. In other words, non-terminal symbol T makes it possible to allow a substitution at any place in a tree.
First rule SSTδS replaces non-terminal symbol S by a tree with one branch. Second rule SSTδ adds one branch to node S of the tree. Third rule Sa replaces a non-terminal symbol by a terminal symbol and is typically used when a given value—a terminal symbol—is to be applied to a node of the tree. Fourth rule T1 replaces non-terminal symbol by a 1, thus deleting non-terminal symbol T from the seed structure. This fourth rule is used when there is no need to add more branches to a given node, notably when the tree is completed.
Clearly, any binary tree is compliant with this language provided it is rewritten substituting φ by δ2φ. This grammar therefore covers the grammars discussed above.
SSTδSSTδiaTδiaSTδ2iahTδ2iahSTδ3iahSTδSTδ3i
ahSTδgTδ3iahSTδSTδgTδ3iahSTδeTδgTδ3iahSSTδ2eTδgTδgTδ3i
ahSSSTδ3eTδgTδ3iahbSSTδ3eTδgTδ3iahbcSTδ3eTδgTδ3i
ahbcdTδ3eTδgTδ3iahbcdδ3eδgδ3i
The equivalence between the tree and the word can be demonstrated by associating actions with the automaton transitions. Two heaps are useful: H1 and H2. Standard operations on heaps are available: pop up (put an object on top of the heap) and push down (get an object from the top of the heap). The actions associated with the transition (p,a,q) are
The previous grammar defines a meta-language thanks to the following reason. Any (context free) grammar can be described by a graph, which captures the non-terminal symbols, the terminal symbols and the rules in a so-called derivation tree. Since the previous grammar is designed to describe any tree, it can describe itself. The derivation tree of the tree grammar is represented in
The grammar discussed in reference to
The sharing is captured through symbol repetition. Since the initial graph features two root nodes, i and j, duplicating shared nodes yields two trees, respectively coded by the words aebcδ2ecdδ2fδ2hgδ4i and gfdδ3j . The decomposition of an acyclic graph into a set of trees i not unique. For example, the previous graph could lead to the tree of
This non-uniqueness of tree decomposition is not a trouble because the same level of information is captured. Criteria for a better or for the best possible decomposition are the application's responsibility.
One also understands from the example of
The word S1T1δaS2T2δbfT3δcδ3d captures a simple tree structure represented in
T1eT1δ
T3gT3δ
T3hT3δ
Note that type T symbols allow TxTδ substitutions, where x is a terminal symbol. This yields the following word S1eT1δ2aS2T2δbfgT3δ3cδ3d and the tree of
The use of a non-binary tree thus makes it easier to add components or contributions at a given level, without any limitation on the number of components added.
A non-binary tree may be used for a seed structure directed to thin solids, as in
X={a,+,−,δ}
V={S,e+,e−i+,i−,u}As
P={Se+δ+e−δ+δ2−i+δ+i−δ+δ2−δ2−uδ+δ2−}∪{zazδ,z ε{e+,e−,i+,i−,u}}
compared to the grammar discussed in reference to
The first operation in the set P of operations provides the seed structure. The word is e+δ+e−δ+δ2−i+δ+i−δ+δ2−δ2−uδ+δ2− and the corresponding tree is
Contributions may be defined as discussed above. Instantiating the contributions of a thin solid and fixtures, as above, provides the tree of
AFe+δ3+Ce−δ2+δ2−Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
It is fully clear that the evaluation of this word in the history based design system provides the modelled object of
Thus, the use of a non-binary context-free grammar for defining the seed structure expands the possibilities availed to the expert user.
A third embodiment of the invention is now discussed in reference to
The problem of changes to components is exemplified in reference to
To preserve this benefit, substitutions should increment the structure in such a way that existing intermediate solids remain unchanged as much as possible. This is not the case with the binary tree grammar and the seed structure of
The goal of the grammar and seed structure in this third embodiment is to place the new solids at the best possible place in the structure. The grammar is the following:
X={a,+,−,x}
V={S,e+,e−,i+,i−,u}
P={Sxe++xe−+−xi++xi+−−xu+−}∪{za+z,z ε{e+,e−,i+,i−,u}}
In this grammar, the symbol x stands for a dummy solid that evaluates as the empty set. The seed structure is provided by the first operation, while the substitutions are provided in the other operations. The substitutions are clearly commutative, for the reasons discussed above.
The seed structure is the word
xe++xe−+−xi++xi−+−−xu+−
and it is represented as a tree in
A substitution rule is defined, as expressed in the grammar, by za+z, where z again stands for any of the non-terminal symbols e+, e−, i+, i− and u and where a stands for any basic solid.
The operation of this seed structure is again exemplified with the same thin solid and fixture of
e+A+e+
i+B+i+
which leads to the tree represented in
xA+e++xe−+−xB+i++xi−+−−xu+−
The fixture functional feature is capture by the following substitutions
e+F+e+
e−C+e−
i−D+i−
i−E+i−
uG+u
These substitutions provide the tree represented in
xA+F+e++xC+e−+−xB+i++xD+E+i−+−−xG+u+−
As expected due to the grammar, new basic solids appear in the tree after existing solids. Thus, intermediate results may be kept and re-used even after new solids are added. For instance, F is after A, E is after D.
In this embodiment, one uses a binary tree and a grammar derived from the one disclosed above in reference to
The invention is not limited to the examples provided in the detailed description. One may notably use history-based design systems different from the one discussed in the examples. The various solutions discussed in reference to each embodiment may be applied to the other embodiments. This applies notably to the discussion of the functions of the expert user and to the discussion of the operation of the system given in reference to the first embodiment of
The examples given above refer to moulded thin solids. Additional or alternative operations and contributions could be used for other types of modelled objects. For instance, for assemblies of parts, one could additionally allow parts to be juxtaposed. This would simply represent an additional non-terminal symbol. For designing modelled objects out of a surface—e.g. stamped metal car parts—one could use a terminal symbols curves and surfaces. The operations could then comprise relimitation for stamping part of an existing modelled object or cut, for cutting a curve or surface.
In the examples provided above, the non-terminal symbols are all used in the initial seed structure. A sequence of substitution rules may introduce a new non-terminal symbol that was not in the initial seed structure. This capability allows a seed structure to become more complex. Dynamic non-terminal symbols can be reused in further substitution rules. For example, after a few design steps, the need is to add material to the solid part after the first subtraction. The tree structure of
AFe+δ3+Ce−δ2+δ2−Bi+δ2+DEi−δ3+δ2−δ2−GUδ2+δ2−
which represents the tree of
AFe+δ3+Ce−δ2+δ2{overscore (S)}Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
As expected, the seed structure edition involves the meta-grammar.
Then, the following substitutions are executed.
{overscore (S)}{overscore (S)}Tδ{overscore (S)}{overscore (SS)}Tδ2{overscore (S)}−{overscore (S)}Tδ2{overscore (S)}−{overscore (S)}Tδ2+−{overscore (S)}δ2+
−{overscore (S)}Tδ{overscore (S)}δ2+−fTδ{overscore (S)}δ2+−fTδ+δ2+−fδ+δ2+
and the resulting expression corresponds to the expected tree of
AFe+δ3+Ce−δ2+δ2−fδ+δ2+Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
This example shows that it is possible, using the same meta-grammar, to amend the seed structure for producing a more complex seed structure.
It is also possible to execute or not a substitution rule, attached to a functional feature, according to the value of a logical variable. This variable, commonly called the “activity”, may be embedded in the functional feature definition and the end-user defines its value (“true” or “false”) through any rule or program. This makes it possible to maintain a functional feature in the modelled object, without it being considered by the evaluator in the core system. The functional feature is inactivated and may be activated if and when needed. Using a logical variable also makes it possible to provide additional view of the modelled object. For instance, one may wish to provide a view of the modelled object, before any machining step. One would then inactivate the contributions applied to handle u before evaluating the modelled object. This example shows that it is possible to inactivate not only a full functional feature, but also a contribution of a functional feature.
Last, a substitution rule need not be executed if the replaced non-terminal symbol is not in the target structure. This is a standard behaviour of substitution rules and will not lead to an error message. For instance, in the example of upper and lower moulds, the seed structures of
The implementation of the invention in a computer system was not discussed in full detail above. The implementation of a history-based design system 40 is well known to the person skilled in the art. The additional features of
This is also made easier, since most existing CAD systems provide a programmation platform in which the additional elements of the invention may be programmed.
The invention was described in the reference to the preferred embodiment of CAD systems but can be applied to computer-aided manufacturing (CAM) systems and to computer-aided engineering (CAE) systems. One may use similar grammars and meta-grammars for other systems, such as product data management (PDM) systems, virtual product modelling (VPM) or product lifecycle management (PLM) systems, but also for enterprise resource planning (ERP) systems. Such systems organize tasks to be carried out on products (in a generic meaning). In such a system which usually relies on a process modeller, queries and tasks are order-sensitive.
The following table shows an example of a possiblecorrespondence between the elements of the described CAD system and a PDM system:
A task in a PDM system is an ordered sequence of elementary actions and operations and corresponds to a part in a CAD system. The table shows that the solutions discussed above in reference to CAD systems also apply to PDM systems and provide similar advantages.
Number | Date | Country | Kind |
---|---|---|---|
03291846.8 | Jul 2003 | EP | regional |