| Dokumentenidentifikation |
EP1046123 13.10.2005 |
| EP-Veröffentlichungsnummer |
0001046123 |
| Titel |
SIMULATIONSSYSTEM MIT AUFLÖSUNG VON BEDINGUNGEN |
| Anmelder |
Autodesk, Inc., San Rafael, Calif., US |
| Erfinder |
BORDUIN, M., Scott, Lake Oswego, US |
| Vertreter |
Wächtershäuser, G., Dipl.-Chem. Dr.rer.nat., Pat.-Anw., 80333 München |
| DE-Aktenzeichen |
69831507 |
| Vertragsstaaten |
DE |
| Sprache des Dokument |
EN |
| EP-Anmeldetag |
04.12.1998 |
| EP-Aktenzeichen |
989607312 |
| WO-Anmeldetag |
04.12.1998 |
| PCT-Aktenzeichen |
PCT/US98/25743 |
| WO-Veröffentlichungsnummer |
0099028849 |
| WO-Veröffentlichungsdatum |
10.06.1999 |
| EP-Offenlegungsdatum |
25.10.2000 |
| EP date of grant |
07.09.2005 |
| Veröffentlichungstag im Patentblatt |
13.10.2005 |
| IPC-Hauptklasse |
G06G 7/48
|
| IPC-Nebenklasse |
G06F 17/50
|
| Beschreibung[en] |
|
1. The Background of the Invention
a. The Field of the Invention
This invention relates to the field of computer based modeling systems.
In particular, the invention relates to the solution of constrained models.
b. Background Information
Computers can be used by people to model physical objects by using
modeling applications. Allowing users to define models in terms of model objects
and constraints is desirable. If a model object is constrained so that its location
and dimensions are defined in relation to other model objects, it is easier for
a user to model physical objects. Constraint satisfaction is the process of finding
locations, dimensions, colors, speed, temperatures, etc., for model objects in accordance
with the constraints specified in the model.
Models which are defined in terms of model objects and constraints
are more easily modified by the user permitting greater design flexibility. The
shortcoming of various approaches to providing constraint satisfaction has been
difficulty in handling different types of problems as well as difficulty handling
large numbers of interdependent model objects. Previous approaches have provided
a single monolithic constraint solver program. The monolithic solver program provided
by previous approaches would be restricted to certain types of problems. Many physical
objects have varied types of constraints. In the design of bridges for example,
allowing the user to describe both structural and geometric constraints would simplify
the modeling process. However, the ability to solve kinematic constraints would
be more useful in the modeling of physical objects that move. It is difficult to
provide high quality algorithms for handling all of these varied types of constraints
in a single monolithic solver program. Therefore, what is desirable is to allow
the modeling application to dynamically use solver programs from a number of sources.
This permits the same modeling application to be used across a broader class of
modeling problems than the monolithic solver program approach.
The weakness of previous modeling systems in handling large numbers
of interdependent model objects grew out of the solution techniques used. Previous
approaches apply iterative numeric approximations to the entire model. However it
is desirable to allow the user to provide specific solver programs for various problem
types, the best techniques for handling interdependent model objects can be used.
Research done at the Massachusetts Institute of Technology in 1987
identified strategies for satisfying constraints among a mix of problem types. See
D. Serrano, Constraint Management in Conceptual Design, Ph.D. Thesis, Massachusetts
Institute of Technology, October 1987. Serrano discusses, among other topics, the
creation of directed graphs based upon a set of constraint definitions. To evaluate
directed graphs with cycles, Serrano suggests collapsing the cycles into supernodes.
However, Serrano's does discuss graphs with directed and nondirected constraints.
Directional constraints, also called unidirectional constraints, are constraints
that cause a deterministic change to a set of output objects, given a predetermined
set of "input" model objects. The cause and effect relationship is specific to the
constraint's definition and is known without further context. An example is a boolean
operation constraint such as a boolean intersection constraint of a box model object
and a sphere object produces a new model object. The new model object will be deterministically
changed by the input model objects and the boolean operation. Nondirectional constraints,
also called bidirectional or multidirectional constraints, are those constraints
which specify a condition which must be met, but do not inherently specify the cause/effect
relationship without additional context. Typically, this additional context is supplied
by other nondirected constraints during a simultaneous solution approach in a particular
kind of solver program (described below). An example of a nondirected constraint
is a parallel constraint between two line model. Additional context is required
for the new model object to be completely determined. Instead, Serrano describes
converting the entire graph into a directed graph, then collapsing cycles into supernodes.
The graph is then evaluated to determine the missing values of the parameters in
the constraints.
Another problem with the previous systems was that the entire model
had to be reevaluated after changes. That made it difficult to provide on-the-fly
constraint satisfaction. Therefore, it is desirable to have a system that can provide
on-the-fly constraint satisfaction as the model is changed. Another problem of the
previous systems was that no feedback was given on-the-fly if solver programs would
be unable to satisfy constraints as they were input. Therefore, it is desirable
to provide feedback to the user on-the-fly to indicate constraints which are unsolvable.
Another problem with the previous systems was that the user could not specify criteria
such as speed, accuracy, cost of use, etc., to control the selection of solver programs.
Therefore, it is desirable to provide a mechanism for the user to control the selection
of solver programs.
The previous approaches have never been combined to provide a broad
efficient constraint satisfier for multiple problem types. Thus, there is a need
for an improved method of constraint satisfaction in modeling systems.
The article "Geometric reasoning for knowledge-based parametric design
using graph representation" by J.Y. Lee and K. Kim, Computer-Aided Design, Elsevier
Publishers, vol. 28, no. 10, 1996, pages 831 - 841, discloses a geometric reasoning
procedure for knowledge-based parametric design. A well-constrained design model
and geometric rules are represented into graphs; subgraphs of the design graph are
selected which may be used to induce new facts; and a selective search is made for
rule graphs having the same keys as the model subgraphs.
The article "Geometric constraint solver" by W. Bouma et al., Computer-Aided
Design, Elsevier Publishers, vol. 27, no. 6, 1995, pages 487 - 501, reports on a
2D geometric constraint solver that uses a graph-reduction directed algebraic approach.
US-A-5 251 290 discloses a system and method for geometric modeling.
Constraints in the models are solved using graph based solution techniques. An ordered
dependency list of geometric entities is generated by allocating degrees of freedom
according to a geometric entity's abilitiy to absorb them. The ordered dependency
list is further used as an execution sequence if a constraint is changed.
A Summary of the Invention
The invention is defined by the independent claims. The dependent
claims define preferred embodiments of the invention.
A modeling system having constraint solvers is described.
One embodiment includes a model of a physical object is constructed
in a modeling system running on a computer system. The model includes model objects
and constraints. The constraints on the model describe the relationship between
the model objects. The modeling system constructs a graph representing the model.
The graph has nodes representing the modeling objects and arcs representing the
relationships between the model objects. The relationships are either directed or
nondirected. The modeling system then identifies the set of cycles in the graph.
The cycles have a subset of the nodes of the graph coupled by arcs representing
nondirected relationships. The modeling system starts with a first cycle from the
set of cycles and determines the set of programs that can be used to satisfy all
of the relationships between the model objects represented by nodes in the first
cycle. Then, the modeling system selects one of the programs from the set of programs
and uses it to define the model objects represented by the nodes in the cycle so
that all of the constraints are satisfied.
In one embodiment a nondirected relationship between two model objects
permits the identification of the second model object from the first object and
the nondirected relationship.
In one embodiment, solver programs are provided to solve three dimensional
geometric constraints, two dimensional geometric constraints, and kinematic constraints.
Although many details have been included in the description and the
figures, the invention is defined by the scope of the claims. Only limitations found
in those claims apply to the invention.
2. A Brief Description of the Drawings
The figures illustrate the invention by way of example, and not limitation.
Like references indicate similar elements.
- Figure 1 illustrates a computer system including one embodiment of the invention.
- Figure 2 illustrates one embodiment of a method of satisfying all of the constraints
in a model.
- Figure 3 illustrates one embodiment of a method of selecting programs to satisfy
the constraints in a group of nodes.
- Figure 4 illustrates an example of the constraint satisfaction process.
3. The Description
a. An Overview of an Embodiment of the Invention
In one embodiment of the invention, a computer system is used to define
a three dimensional model of an object. A user provides constraints between different
components of the model.
b. System Overview
Figure 1 depicts a computer system containing an embodiment of the
invention.
This paragraph lists the elements in Figure 1. Figure 1 includes a
model 150 which is displayed in model window 154 on display device 120. The computer
100 includes a processor 108, an input device 102, a network connection 104, and
a memory 106. The memory 106 includes a modeling application 101. The modeling application
101 stores a graph 107 in the memory 106.
This paragraph describes the interconnections between the elements
in Figure 1. Computer 100 is coupled to display device 120. Processor 108, input
device 102, network connection 104 and memory 106 are coupled to a bus within computer
100.
Computer 100 may be a personal computer or a more powerful workstation
computer. Computer 100 is controlled by processor 108. Processor 108 can be either
a single processor or multiple processors coupled to memory 106. Input device 102
allows input to the computer 100. The input device 102 may be a mouse, other pointing
device, and/or keyboard that allows a user to control the system and interact with
the model 150. Display device 120 can be a CRT or other display device. Display
device 120 is used to present a two dimensional representation of model 150 to the
user. Model 150 is presented to the user inside a model window 154 on display device
120. Network connection 104 allows computer 100 to be connected to a network. Modeling
application 101 can be stored in memory 106 or distributed across the network for
access via network connection 104. In this example, modeling application is contained
in memory 106. Modeling application 101 allows computer 100 to perform modeling.
Graph 107 is stored in memory 106.
Processor 108 executes programs on computer 100 and displays results
to the user on display device 120. Modeling application 101 can be executed on processor
108. Modeling application 101 permits the user to model physical objects such as
buildings, machines, semiconductors, automobiles, planes, etc. In this example,
model 150 shows a kitchen in the early stages of design. Modeling application 101
enables the user to define model 150. Model 150 is comprised of model objects and
constraints. Constraints are relationships between model objects. For example, a
constraint might be that two model objects must be parallel to one another.
Modeling application 101 permits the user to either completely define
model objects or to partially define model objects. A completely defined model object
has its location and dimensions fixed. For example, model 150 shows an island in
the center of a kitchen. A counter top for the island could be completely defined
by the user by using input device 102 to set the location and dimensions of the
counter top.
A partially defined model object is defined in relation to other model
objects by setting constraints. Partially defined objects may have their locations,
dimensions, temperature, loads, speed, etc., partially defined by the user. For
example, the user could use input device 102 to partially define the counter top
for the island in model 150. The user would define the location and shape of the
counter top in relation to the island model object. For example, the user could
specify that the counter top was to be centered over the island, touching the top
surface, and overlapping the island by 2" on each side. The user could then request
that model 150 be solved. Once solved, the counter top model object would have its
location and dimensions defined to satisfy the specified constraints.
The ability of modeling application 101 to use programs to solve the
constraints between the model objects frees the user from having to completely define
all of the objects in model 150. Another advantage of partially defined model objects
is that it makes it easier for the user to alter model 150. For example, if the
counter top model object is partially defined, then after the user moves the island,
the modeling application 101 can be signaled to solve model 150 again.
The constraints in model 150 are either directional or nondirectional.
Modeling application 101 can have a number of programs, called solver
programs, for solving constraints. The solver programs can either be part of modeling
application 101 or separate computer readable program code.
Modeling application 101 can completely define the objects of model
150 by first representing the model objects as graph 107. Graph 107 in memory 106
is used by modeling application 101 to represent model 150. Graph 107 is comprised
of nodes which represent the model objects and arcs which represent the constraints.
Graph 107 may have cycles comprising modeling objects coupled solely by nondirectional
constraints. The cycles of graph 107 are coupled with directional constraints. Cycles
in graph 107 represent groups of partially defined model objects whose complete
definition is dependent on the definition of the other objects.
For each cycle in graph 107, modeling application 101 then uses the
available solver programs to completely define the model objects in the cycle. The
resulting completely defined model objects can be used to compute the values of
directed constraints leading to other cycles thus permitting all of the cycles in
the graph to be solved.
In order to solve each cycle, modeling application 101 must select
an appropriate solver program that is capable of solving all of the constraints
in the cycle. If no solver program is available, an error will be reported to the
user. Otherwise, modeling application 101 will completely define all of the modeling
objects.
c. Satisfying the Constraints
Figure 2 shows a flow chart of an embodiment of a method for satisfying
the constraints between the model objects in model 150. Figure 2 represents the
steps taken by modeling application 101 to construct graph 107 representing model
150 and then to satisfy the constraints by working on the cycles of graph 107. The
result of this method is to modify model 150 so that all of the model objects are
completely defined and all of the specified constraints between the model objects
are satisfied.
First, model 150 is loaded into memory 106 (block 210). Model 150
can be stored on disk, either locally or over the network, or may be defined by
the user.
Modeling application 101 traverses the model objects in model 150
to construct graph 107 (block 220). During the traversal, modeling application 101
creates a node to represent each model object and creates an arc to represent each
constraint. After creating graph 107, modeling application 101 determines the cycles
in graph 107. The cycles include nodes coupled solely by nondirectional constraints.
In this embodiment, modeling application 101 then roots graph 107.
Modeling application 101 can now traverse the cycles of graph 107
starting from the root (block 230, block 232, block 234, and block 236). After modeling
application 101 traverses all of the cycles of graph 107, all of the model objects
in model 150 will be completely defined (block 230). Until all of the cycles have
been traversed, modeling application 101 tries to solve the next unsolved cycle
(block 232). Modeling application 101 uses solver programs to try to completely
define the model objects represented by the nodes of the current cycle.
A variety of solver programs are available. Some may be supplied with
modeling application 101 and others are commercially available and can be purchased
separately. Some example solver programs are DCM™, by D-Cubed, Ltd., GGCM™,
by ALS Geometric Software, SA, and ADAMS™, by Mechanical Dynamics Inc. The
example solver programs can be any type of solver such as two dimensional and three
dimensional constraint solvers, mechanism constraint solvers, fluid flow solvers,
heat transfer solvers, and electromagnetic interference solvers.
If modeling application 101 can not solve a cycle, the user is notified
that the model can not be completely defined (block 234).
Before modeling application 101 traverses the next unsolved cycle,
modeling application 101 tries to solve all of the directed relationships in graph
107 which are coupled to the current cycle (block 236). Modeling application 101
uses solver programs to completely define those directed relationships.
Modeling application 101 then continues traversing the cycles of graph
107 at block 230 until a solution is found.
d. Solver Selection
Figure 3 shows a flow chart of an embodiment of a method of dynamically
selecting a solver capable of solving all of the constraints specified in a cycle
of graph 107. In an embodiment of the invention these blocks can be used at block
232 to efficiently identify the programs available to completely define the objects
in a cycle.
The first step is to examine all of the nondirectional constraints
represented by the arcs in the given cycle (block 310). If all constraints have
been examined, control proceeds in block 320.
Otherwise, at block 312, a constraint is examined and a set of solver
programs is generated that can be used to solve that constraint. Each constraint
in modeling application 101 belongs to a class. Each class has associated with it
a list of possible solver programs that can solve constraints of that class. In
block 312, the list of those solver programs along with the solver programs for
the superclasses of the given class are collected into a temporary set. One embodiment
of the invention uses the factory-solver, sometimes called flexible object creation,
technique as described in "Design Patterns for Object-oriented Software Development,"
by Wolfgang Pree, Addison-Wesley 1995, pp. 115-117, as the basis for implementing
the class hierarchy of solver programs and allowing dynamic selection and use of
solver programs.
The first time through block 314, the set of all currently available
solver programs is built and held as the list of possible solver programs. The temporary
set of solver programs generated in block 312 is intersected with the possible solver
programs each time (block 314). This intersection technique keeps a running list
of all of the possible solver programs that can solve all of the examined constraints
in the given cycle.
Once all of the constraints have been examined, if no solver programs
are available, the process stops and signals that no solver is available (block
320).
If only one program is capable of satisfying the constraints in the
cycle, control proceeds in block 340 (block 330).
When multiple solver programs are in the set of possible solver programs,
a query-vote technique is used to select the best solver program (block 332 and
block 334). First, the solver programs are queried (block 332). The query process
involves providing each solver program with the model objects represented by the
given cycle and verifying that the solver is able to handle this group of model
objects and constraints. After the query, a vote is taken among the remaining constraints
to select the best solver to use (block 334). The vote can be based on user determined
factors such as: speed, accuracy, and cost. For example, during the initial stages
of constructing a model, the user might prefer rapid constraint satisfaction and
signal that the fastest solver programs be selected. In contrast, a user modeling
a precision part might signal that the most accurate solver programs be used.
Lastly, the selected solver is used (block 340). The result of using
the solver on the model is to modify the objects in the current cycle of graph 107
so that those model objects are completely defined and the constraints between the
objects are satisfied.
e. Example of Constraint Satisfaction
Figure 4 shows an example of constraint satisfaction using an embodiment
of the invention. The embodiments of figures 2 and 3 are used together running on
the computer system 100 described in figure 1. In figure 4, the user will be designing
a counter top for the kitchen depicted in model 150. Rather than painstakingly setting
all of the positions of the model objects representing the counter top, the user
has elected to define some of the model objects partially. The counter top designed
by the user in this fashion can then easily be placed into other models such as
model 150 of the kitchen. Further, after making any changes, the user will always
be able to signal that the model should be solved again to ensure that the constraints
defining the counter top model objects are preserved.
This paragraph lists the elements of figure 4. An initial model 400
and the resulting model 420 are shown. An object 402 and an object 404 are in the
initial model 400. Object 402 and object 404 are in the resulting model 420. Graph
410 of initial model 400 is shown. Graph 410 includes: constraints "is at (3,6)"
412, "is at (6,3)" 414, "tangent to" 432, "-90°" 434, "+90°" 436, "tangent to" 438,
"tangent to" 442, "-90°" 444, "+90°" 446, "tangent to" 448, "intersect with" 450;
and model objects: arc U 431, line B 433, line C 435, line A 437, arc V 441, line
E 443, line F 445, line D 447. The cycles of graph 410 are cycle B 430 and cycle
C 440. Cycle B 430 includes line A 437, line B 433, line C 435, arc U 431, "tangent
to" 432, "-90°" 434, "+90°" 436, and "tangent to" 438. Cycle C 440 includes line
D 447, line E 443, line F 445, arc V 441, "tangent to" 442", "-90°" 444, "+90°"
446, and "tangent to" 448.
This paragraph lists the connections between the elements of figure
4. Arc U 431 is coupled to line B 433 by"tangent to" 432. Line B 433 is coupled
to line C 435 by "-90°" 434. Line C 435 is coupled to line A 437 by "+90°" 436.
Line A is coupled to arc U 431 by "tangent to" 438. Line B 433 is coupled to line
D 447 by "intersect with" 450. Line D 447 is coupled to arc V 441 by "tangent to"
448. Arc V is coupled to line E 443 by "tangent to" 442. Line E 443 is coupled to
line F 445 by "-90°" 444. Line F 445 is coupled to line D 447 by "+90°" 446. "Is
at (3,6)" 412 is coupled to arc U 431. "Is at (6,3)" 414 is coupled to arc V 441.
Upon receiving a signal, modeling application 101 attempts to completely
define initial model 400. Using the embodiment described in figures 2 and 3, the
model is loaded into memory 106. Then graph 410 representing initial model 400 is
constructed. Model object 402 and model object 404 are composed of simpler model
objects which were only partially defined. Graph 410 reflects the relations between
all of the objects in initial model 400.
After constructing graph 410, modeling application 101 identifies
the cycles of graph 410. The cycles in graph 410 are cycle B 430 and cycle C 440.
Following the method described in figure 2, we can solve each cycle independently.
Starting with cycle C 440, the embodiment of figure 3 is used to identify
the solver programs for the constraints in the cycle. Modeling application 101 identifies
the set of all available solver programs. Modeling application 101 might include:
a 3-dimensional geometric constraint solver, a 2-dimensional geometric constraint
solver which is a subclass of the 3-dimensional geometric constraint solver, an
inverse kinematic constraint solver, an angular constraint solver which is a subclass
of the 2-dimensional geometric constraint solver, and a "tangent to" constraint
solver which is a subclass of the 2-dimensional geometric constraint solver. The
solver programs available to modeling application 101 can be supplemented by user
supplied programs. In this example, there are no user supplied solver programs.
By examining each of the constraints of cycle C 440 in turn, the list
of possible solver programs will be narrowed. After examining the "-90°" 444 constraint,
the set of possible solver programs would be reduced to the 3-dimensional geometric
constraint solver, the 2-dimensional geometric constraint solver, and the angular
constraint solver. After examining the "tangent to" 442 constraint, the set of possible
solver programs would be reduced to the 3-dimensional geometric constraint solver
and the 2-dimensional geometric constraint solver. Examining the remaining constraints
of cycle C 440, does not reduce the set of possible solver programs further.
Since two solver programs are available, the solver programs must
be queried with the objects and constraints of cycle C 440. It is possible that
certain solver programs might have a limit on the number of objects or constraints
they can handle, for example, modeling application 101 might have two 2-dimensional
geometric constraint solver programs. One of the solver programs might use a numeric
approximation technique and be limited to working on ten model objects or fewer
while the other might use algebraic computation and handle an unlimited number of
objects. During the query, if cycle C 440 contained more objects than one of the
available solver programs could handle, that solver would be removed from the set
of possible solver programs.
In this example, neither solver drops out during the query process
and a vote is taken. Modeling application 101 can take into account user signals
such as preferring speed over accuracy as well as the preferences of the constraints
for one solver over another. In this case, the user has signaled that accuracy is
more important. The constraints vote and the 2-dimensional geometric constraint
solver is selected. Arc V 441 in cycle 440 was positioned by an earlier cycle which
was coupled to arc V 441 by the "is at (6,3)" constraint which centered the arc.
The model objects of cycle C 440 are completely defined by running the solver program.
Modeling application 101 next tries to solve the directed constraints
coupled to cycle C 440. Since line B 433 coupled to directed constraint "intersect
with" 450 is still partially defined, no change is made to the model.
Modeling application 101 repeats this process on cycle B 430 and completely
defines the model objects of that cycle.
Upon solving cycle B 430, the directed constraints coupled to cycle
B 430 can be solved. Once the "intersect with" 450 constraint is solver, the graph
has been fully solved, and all constraints between the objects are satisfied. Resulting
model 420 is shown.
|
| Anspruch[de] |
- Verfahren zum Definieren eines Modells (150, 400, 420) eines physikalischen
Objektes unter Verwendung eines Computer-Systems (100), wobei das Verfahren die
folgenden Schritte umfasst, welche von dem Computer-System automatisch ausgeführt
werden:
- Identifizieren des Modells, wobei das Modell eine Menge von Modell-Objekten
(402, 404) und eine Menge von Beziehungen zwischen Modell-Objekten dieser Menge
von Modell-Objekten enthält, und wobei einige Modell-Objekte aus der Menge von Modell-Objekten
partiell undefiniert sind;
- Erzeugen eines Graphen (107,410) des Modells,
- wobei der Graph definiert, welche Beziehungen aus der Menge von Beziehungen
gerichtet sind und welche Beziehungen aus der Menge von Beziehungen nicht-gerichtet
sind, wobei
- jede gerichtete Beziehung für eine gegebene Menge von Eingabe-Modellen eine
deterministische Veränderung an einer Menge von Ausgabe-Modellen aufweist, und wobei
- jede nicht-gerichtete Beziehung für eine gegebene Menge von Eingabe-Modellen
eine nicht-deterministische Veränderung an einer Menge von Ausgabe-Modellen aufweist,
wobei die nicht-gerichtete Beziehung zusätzliche Kontext-Information benötigt, um
die Veränderung an der Menge von Ausgabe-Modellen zu bestimmen,
- wobei der Graph auch eine Menge von Zyklen (430, 440) definiert, welche wenigstens
einen ersten Zyklus enthält, wobei
- jeder Zyklus aus der Menge von Zyklen eine Untermenge voneinander abhängiger
Modell-Objekte aus der Menge von Modell-Objekten definiert, und
- der erste Zyklus nicht-gerichtete Beziehungen zwischen Modell-Objekten aus der
Untermenge aufweist,
- für wenigstens den ersten Zyklus: Bestimmen einer Menge von Programmen, welche
die Modell-Objekte aus der Untermenge vollständig definieren können,
- Auswählen eines ersten Programms aus der Menge von Programmen, und
- Verwenden des ersten Programms zum vollständigen Definieren der Modell-Objekte
in der Untermenge, wobei
- die vollständig definierten Modell-Objekte in der Untermenge zum Berechnen der
Beziehungen verwendet werden können, die zu anderen Zyklen führen, wodurch ermöglicht
wird, dass alle Zyklen in dem Graphen gelöst werden.
- Verfahren gemäß Anspruch 1, wobei das Erzeugen des Graphen beinhaltet:
- Definieren einer Menge von Knoten, wobei jeder Knoten ein Modell-Objekt in dem
Modell ist,
- Definieren einer Menge von Bögen aus der Menge von Beziehungen, wobei jeder
Bogen eine Beziehung zwischen wenigstens zwei Modell-Objekten in dem Modell ist,
- Bestimmen eines Typs jeder Beziehung, wobei jede Beziehung eine gerichtete Beziehung
oder eine ungerichtete Beziehung ist, und
- Erzeugen der Menge von Zyklen durch Bilden von Gruppen von Knoten aus der Menge
von Knoten, wobei für jede Gruppe von Knoten innerhalb der Gruppe von Knoten befindliche
Knoten durch Bögen gekoppelt sind, die nicht-gerichteten Beziehungen entsprechen,
und wobei Gruppen von Knoten durch Bögen gekoppelt sind, die gerichteten Beziehungen
entsprechen.
- Verfahren gemäß Anspruch 1, wobei das Bestimmen der Menge von Programmen
beinhaltet:
- für jede nicht-gerichtete Beziehung in dem ersten Zyklus: Erzeugen einer Menge
von möglichen Programmen, welche jede der nicht-gerichteten Beziehungen lösen können,
und
- Erzeugen der Menge von Programmen mittels Schneidens aller dieser Mengen möglicher
Programme.
- Verfahren gemäß Anspruch 3, wobei der erste Zyklus eine erste nicht-gerichtete
Beziehung enthält, wobei das Computer-System eine Klassen-Hierarchie enthält, wobei
die Klassen-Hierarchie eine erste Klasse und eine erste Über-Klasse enthält, wobei
die erste Über-Klasse eine Über-Klasse der ersten Klasse ist, wobei die erste nicht-gerichtete
Beziehung eine Instanz der ersten Klasse ist, und wobei die erste Klasse mit einer
ersten Menge von zum Lösen einer Instanz der ersten Klasse geeigneten Löser-Programmen
assoziiert ist, wobei die erste Über-Klasse mit einer zweiten Menge von zum Lösen
einer Instanz der Über-Klasse geeigneten Löser-Programmen assoziiert ist, und wobei
das Erzeugen der Menge von möglichen Programmen ein Hinzufügen der ersten Menge
von Löser-Programmen und der zweiten Menge von Löser-Programmen zu der Menge möglicher
Programme enthält.
- Verfahren gemäß Anspruch 1, wobei der Graph ein erstes Modell-Objekt und
eine zweites Modell-Objekt beinhaltet, und wobei der Graph einen zweiten Zyklus
und eine erste gerichtete Beziehung beinhaltet, wobei sich das erste Modell-Objekt
in dem ersten Zyklus befindet, wobei sich das zweite Modell-Objekt in dem zweiten
Zyklus befindet, und wobei das Verfahren femer Verwenden der vollständig definierten
Modell-Objekte in dem ersten Zyklus umfasst, um das zweite Modell-Objekt in dem
zweiten Zyklus vollständig zu definieren.
- Verfahren gemäß Anspruch 1, wobei das Auswählen des ersten Programms beinhaltet:
- für jedes Programm in der Menge von Programmen: Bestimmen, ob jedes der Programme
die Modell-Objekte in dem ersten Zyklus vollständig definieren kann, und
- Hinzufügen derjenigen Programme, welche die Modell-Objekte in dem ersten Zyklus
vollständig definieren können, zu einer zweiten Menge von Programmen, wobei die
zweite Menge von Programmen das erste Programm enthält.
- Verfahren gemäß Anspruch 6, ferner umfassend: Auswählen des ersten Programms
aus der zweiten Menge von Programmen, wenn die zweite Menge von Programmen nur das
erste Programm enthält.
- Verfahren gemäß Anspruch 6, wobei die zweite Menge von Programmen eine
Mehrzahl von Programmen enthält, wobei das Verfahren femer basierend auf vorbestimmten
Kriterien ein Auswählen des ersten Programms aus der zweiten Menge von Programmen
umfasst.
- Verfahren gemäß Anspruch 8, wobei die vorbestimmten Kriterien anzeigen,
dass das erste Programm die Menge von Modell-Objekten schneller als andere Programme
in der Mehrzahl von Programmen vollständig definieren wird.
- Verfahren gemäß Anspruch 8, wobei die vorbestimmten Kriterien anzeigen,
dass das erste Programm die Menge von Modell-Objekten weniger aufwändig als andere
Programme aus der Mehrzahl von Programmen vollständig definieren wird.
- Verfahren gemäß Anspruch 8, wobei die vorbestimmten Kriterien anzeigen,
dass das erste Programm die Menge von Modell-Objekten mit größerer Genauigkeit
als andere Programme in der Mehrzahl von Programmen vollständig definieren wird.
- Verfahren gemäß Anspruch 8, wobei die vorbestimmten Kriterien anzeigen,
dass das erste Programm eine Menge von vorbestimmten Prioritäten zum Auswählen eines
Programms aus der Mehrzahl von Programmen am besten erfüllt.
- Verfahren gemäß Anspruch 1, wobei die Menge von Programmen ein Programm
zum Lösen dreidimensionaler Bedingungen beinhaltet.
- Verfahren gemäß Anspruch 1, wobei die Menge von Programmen ein Programm
zum Lösen von Kinematik beinhaltet.
- System zum Erzeugen eines dreidimensionalen Modells (150, 400, 420) eines physikalischen
Objektes, wobei das System umfasst:
- einen Prozessor (108) zum Ausführen von Befehlen und Zugreifen auf Daten;
- einen Speicher (106) zum Speichern der Befehle und der Daten, wobei der Speicher
ein Modell enthält, welches eine Menge von Modell-Objekten (402, 404) und eine Menge
von Beziehungen zwischen Modell-Objekten der Menge von Modell-Objekten beinhaltet,
und wobei einige Modell-Objekte aus der Menge von Modell-Objekten teilweise undefiniert
sind, und wobei
- die Befehle enthalten:
- eine erste Menge von Befehlen zum Erzeugen eines Graphen (107, 410) des Modells
in dem Speicher,
- wobei der Graph definiert, welche Beziehungen aus der Menge von Beziehungen
gerichtet sind, und welche Beziehungen aus der Menge von Beziehungen nicht-gerichtet
sind, wobei
- jede gerichtete Beziehung für eine gegebene Menge von Eingabe-Modellen eine
deterministische Veränderung an der Menge von Ausgabe-Modellen aufweist, und wobei
- jede nicht-gerichtete Beziehung für eine gegebene Menge von Eingabe-Modellen
eine nicht-deterministische Veränderung an einer Menge von Ausgabe-Modellen aufweist,
wobei die nicht-gerichtete Beziehung zusätzliche Kontext-Information benötigt, um
die Veränderung an der Menge von Ausgabe-Modellen zu bestimmen,
- wobei der Graph ferner eine Menge von Zyklen (430, 440) definiert, welche wenigstens
einen ersten Zyklus umfasst, wobei jeder Zyklus aus der Menge von Zyklen eine Untermenge
voneinander abhängiger Modell-Objekte aus der Menge von Modell-Objekten definiert,
- eine zweite Menge von Befehlen zum Identifizieren wenigstens des ersten Zyklus
in dem Graphen, wobei der erste Zyklus nicht-gerichtete Beziehungen zwischen Modell-Objekten
der Untermenge aufweist,
- eine dritte Menge von Befehlen zum Bestimmen einer Menge von Programmen, welche
die Modell-Objekte der Untermenge vollständig definieren können,
- eine vierte Menge von Befehlen zum Selektieren eines ersten Programms aus der
Menge von Programmen, und
- eine fünfte Menge von Befehlen zum Verwenden des ersten Programms zum vollständigen
Definieren des Modell-Objektes in der Unter-Menge, wobei
- die vollständig definierten Modell-Objekte in der Untermenge verwendet werden
können, um die Beziehungen zu berechnen, welche zu anderen Zyklen führen, wodurch
das Lösen aller Zyklen in dem Graphen ermöglicht wird.
- System gemäß Anspruch 15, wobei die dritte Menge von Befehlen enthält:
- eine sechste Menge von Befehlen zum Erzeugen einer Menge von möglichen Programmen,
welche jede nicht-gerichtete Beziehung des ersten Zyklus vollständig definieren
können, und
- eine siebte Menge von Befehlen zum Identifizieren einer Untermenge der Menge
möglicher Programme.
- System gemäß Anspruch 15, wobei die vierte Menge von Befehlen beinhaltet:
- eine sechste Menge von Befehlen zum Verifizieren, dass jedes Programm aus der
Menge von Programmen den ersten Zyklus vollständig definieren kann,
- eine siebte Menge von Befehlen für jede nicht-gerichtete Beziehung des ersten
Zyklus zum Auswählen eines bevorzugten Programms, und
- eine achte Menge von Befehlen zum Auswählen des von den meisten nicht-gerichteten
Beziehungen selektierten bevorzugten Programms als das erste Programm.
- System gemäß Anspruch 15, wobei das Verwenden der Menge von Programmen
ein Programm zum Lösen inverser Kinematik beinhaltet.
- Computerprogrammprodukt, welches umfasst:
- ein computerverwendbares Medium mit darin enthaltenem computerlesbaren Programm-Code,
der einen Computer (100) veranlasst, ein N-dimensionales Modell (150, 400, 420)
zu erzeugen, wobei N > 1 ist, und zwar basierend auf physikalischen Objekten
und eine Menge von Modell-Objekten (402, 404) und eine Menge von Beziehungen zwischen
den Modell-Objekten umfassend, und wobei einige aus der Menge von Modell-Objekten
teilweise undefiniert sind,
- wobei der computerlesbare Programm-Code umfasst:
- computerlesbaren Programm-Code, welcher die Menge von Modell-Objekten identifiziert,
- computerlesbaren Programm-Code, welcher die Menge von Beziehungen zwischen den
Modell-Objekten identifiziert,
- computerlesbaren Programm-Code, welcher einen Graphen (107, 410) erzeugt, der
die Menge von Modell-Objekten und die Menge von Beziehungen zwischen den Modell-Objekten
repräsentiert, wobei der Graph definiert, welche Beziehungen aus der Menge von Beziehungen
gerichtet sind und welche Beziehungen aus der Menge von Beziehungen nicht-gerichtet
sind, wobei
- jede gerichtete Beziehung für eine gegebene Menge von Eingabe-Modellen eine
deterministische Veränderung an einer Menge von Ausgabe-Modellen aufweist, und wobei
- jede nicht-gerichtete Beziehung für eine gegebene Menge von Eingabe-Modellen
eine nicht-deterministische Veränderung an einer Menge von Ausgabe-Modellen aufweist,
wobei die nicht-gerichtete Beziehung zusätzliche Kontext-Information benötigt, um
die Veränderung an der Menge von Ausgabe-Modellen zu bestimmen,
- computerlesbaren Programm-Code, der eine Menge von Zyklen (430, 440) in dem
Graphen identifiziert, wobei
- die Menge von Zyklen wenigstens einen ersten Zyklus umfasst,
- jeder Zyklus aus der Menge von Zyklen eine Untermenge voneinander abhängiger
Modell-Objekte der Menge von Modell-Objekten definiert, und
- der erste Zyklus nicht-gerichtete Beziehungen zwischen Modell-Objekten der Untermenge
aufweist,
- computerlesbaren Programm-Code, welcher eine Menge von Programmen identifiziert,
welche dazu geeignet sind, die Modell-Objekte jedes Zyklus vollständig zu definieren,
und
- computerlesbaren Programm-Code, welcher die Modell-Objekte in einem Zyklus durch
Verwenden eines Programms aus der Menge von Programmen, die zum vollständigen Definieren
der Modell-Objekte des Zyklus geeignet sind, vollständig definiert, wobei
- die vollständig definierten Modell-Objekte in dem Zyklus verwendet werden können,
um die Beziehungen zu berechnen, die zu anderen Zyklen führen, wodurch es ermöglicht
wird, dass alle Zyklen in dem Graphen gelöst werden.
- Computerprogrammprodukt gemäß Anspruch 19, wobei Code, welcher eine Menge
von Programmen identifiziert, die zum vollständigen Definieren der Modell-Objekte
jedes Zyklus geeignet sind, umfasst:
- Code, der die Menge von Programmen identifiziert, welche zum Lösen aller Beziehungen
zwischen den Modell-Objekten dieses Zyklus geeignet sind, und
- Code, welcher eine Untermenge der Menge von Programmen identifiziert.
- Computerprogrammprodukt gemäß Anspruch 19, wobei Code, der die Modell-Objekte
in einem Zyklus mittels Verwendung eines Programms aus der Menge von Programmen
vollständig definiert, umfasst:
- Code, der das schnellste Programm aus der Menge von Programmen identifiziert,
und
- Code, der dieses schnellste Programm aufruft, um die Modell-Objekte dieses Zyklus
vollständig zu definieren.
|
| Anspruch[en] |
- A method of defining a model (150, 400, 420) of a physical object using a computer
system (100), the method comprising the following steps that are performed automatically
by the computer system:
- identifying said model, said model including a set of model objects (402, 404)
and a set of relationships between said set of model objects, and wherein some of
said set of model objects are partially undefined;
- generating a graph (107, 410) of said model,
- said graph defining which relationships of said set of relationships are directed
and which relationships of said set of relationships are nondirected, wherein
- each directed relationship has a deterministic change on a set of output models
given a set of input models, and wherein
- each nondirected relationship has a nondeterministic change on a set of output
models given a set of input models, said nondirected relationship requiring additional
context information to determine the change to said set of output models,
- said graph also defining a set of cycles (430, 440) comprising at least a first
cycle,
- each cycle of said set of cycles defining a subset of interdependent model objects
of said set of model objects, and
- said first cycle having nondirected relationships between model objects of said
subset,
- for at least said first cycle, determining a set of programs that can completely
define said model objects of said subset,
- selecting a first program from said set of programs, and
- using said first program to completely define said model objects in said subset,
wherein
- said completely defined model objects in said subset can be used to compute
the relationships leading to other cycles thus permitting all of the cycles in the
graph to be solved.
- The method of claim 1 wherein generating said graph includes:
- defining a set of nodes, each node being a model object in said model;
- defining a set of arcs from said set of relationships, each arc being a relationship
between at least two model objects in said model;
- determining a type of each relationship, each relationship being one of a directed
relationship and a nondirected relationship; and
- generating said set of cycles by forming groups of nodes from said set of nodes,
for each group of nodes, nodes within the group of nodes are coupled by arcs corresponding
to nondirected relationships, and wherein groups of nodes are coupled by arcs corresponding
to directed relationships.
- The method of claim 1 wherein said determining said set of programs includes:
- for each nondirected relationship in said first cycle, generating a set of possible
programs that can solve said each nondirected relationship; and
- generating said set of programs by intersecting all of said sets of possible
programs.
- The method of claim 3 wherein said first cycle includes a first nondirected
relationship, wherein said computer system includes a class hierarchy, said class
hierarchy includes a first class and a first superclass, said first superclass being
a superclass of said first class, wherein said first nondirected relationship is
an instance of said first class, and said first class being associated with a first
set of solver programs capable of solving an instance of said first class, said
first superclass being associated with a second set of solver programs capable of
solving an instance of said superclass, and wherein said generating said set of
possible programs includes adding said first set of solver programs and said second
set of solver programs to said set of possible programs.
- The method of claim 1 wherein said graph includes a first model object and a
second model object and said graph includes a second cycle and a first directed
relationship, said first model object being in said first cycle, said second model
object being in said second cycle, and said method further comprising using the
completely defined model objects in the first cycle, to completely define the second
model object in the second cycle.
- The method of claim 1 wherein said selecting said first program includes:
- for each program in said set of programs determining whether said each program
can completely define said model objects in said first cycle; and
- adding those programs that can completely define said model objects in said
first cycle to a second set of programs, wherein said second set of programs includes
said first program.
- The method of claim 6 further comprising selecting said first program from said
second set of programs if said second set of programs only includes said first program.
- The method of claim 6 wherein said second set of programs includes a plurality
of programs, said method further comprising selecting said first program from said
second set of programs based upon a predetermined criteria.
- The method of claim 8 wherein said predetermined criteria indicate said first
program will completely define said set of model objects faster than other programs
in said plurality of programs.
- The method of claim 8 wherein said predetermined criteria indicate said first
program will completely define said set of model objects less expensively than other
programs in said plurality of programs.
- The method of claim 8 wherein said predetermined criteria indicate said first
program will completely define said set of model objects with greater accuracy than
other programs in said plurality of programs.
- The method of claim 8 wherein said predetermined criteria indicate said first
program best fits a set of predetermined priorities for selecting a program from
said plurality of programs.
- The method of claim 1 wherein said set of programs includes a three dimensional
constraint solver program.
- The method of claim 1 wherein said set of programs includes a kinematic solver
program.
- A system for generating a three dimensional model (150, 400, 420) of a physical
object, said system comprising:
- a processor (108) for executing instructions and accessing data;
- a memory (106) for storing said instructions and said data, said memory comprising
a model including a set of model objects (402, 404) and a set of relationships between
said set of model objects and wherein some of said set of model objects are partially
undefined; and wherein
- said instructions include
- a first set of instructions for constructing a graph (107, 410) of the model
in said memory,
- said graph defining which relationships of said set of relationships are directed
and which relationships of said set of relationships are nondirected, wherein
- each directed relationship has a deterministic change on a set of output models
given a set of input models, and wherein
- each nondirected relationship has a nondeterministic change on a set of output
models given a set of input models, said nondirected relationship requiring additional
context information to determine the change to said set of output models,
- said graph also defining a set of cycles (430, 440) comprising at least a first
cycle, each cycle of said set of cycles defining a subset of interdependent model
objects of said set of model objects,
- a second set of instructions for identifying at least said first cycle in said
graph, said first cycle having nondirected relationships between model objects of
said subset,
- a third set of instructions for determining a set of programs that can completely
define said model objects of said subset,
- a fourth set of instructions for selecting a first program from said set of
programs, and
- a fifth set of instructions for using said first program to completely define
said model objects in said subset, wherein
- said completely defined model objects in said subset can be used to compute
the relationships leading to other cycles thus permitting all of the cycles in the
graph to be solved.
- The system of claim 15 wherein said third set of instructions includes:
- a sixth set of instructions for generating a set of possible programs that can
completely define each nondirected relationship of said first cycle; and
- a seventh set of instructions for identifying a subset of said set of possible
programs.
- The system of claim 15 wherein said fourth set of instructions includes:
- a sixth set of instructions for verifying that each program of said set of programs
can completely define said first cycle;
- a seventh set of instructions for each nondirected relationship of said first
cycle to select a preferred program; and
- an eighth set of instructions for choosing as said first program the preferred
program selected by the most nondirected relationships.
- The system of claim 15 wherein said using said set of programs includes an inverse
kinematic solver program.
- A computer program product comprising:
- a computer usable medium having a computer readable program code embodied therein
for causing a computer (100) to create an N dimensional model (150, 400, 420), where
N > 1, based on physical objects comprising a set of model objects (402, 404)
and a set of relationships between said model objects, and wherein some of said
set of model objects are partially undefined,
- the computer readable program code comprising,
- computer readable program code that identifies said set of model objects;
- computer readable program code that identifies said set of relationships between
said model objects;
- computer readable program code that generates a graph (107, 410) representing
said set of model objects and said set of relationships between said model objects,
said graph defining which relationships of said set of relationships are directed
and which relationships of said set of relationships are nondirected, wherein
- each directed relationship has a deterministic change on a set of output models
given a set of input models, and wherein
- each nondirected relationship has a nondeterministic change on a set of output
models given a set of input models, said nondirected relationship requiring additional
context information to determine the change to said set of output models,
- computer readable program code that identifies a set of cycles (430, 440) in
said graph,
- said set of cycles comprising at least a first cycle,
- each cycle of said set of cycles defining a subset of interdependent model objects
of said set of model objects, and
- said first cycle having nondirected relationships between model objects of said
subset,
- computer readable program code that identifies a set of programs capable of
completely defining the model objects of each cycle; and
- computer readable program code that completely defines the model objects in
a cycle by using one of said set of programs capable of completely defining the
model objects of said cycle, wherein
- said completely defined model objects in said cycle can be used to compute the
relationships leading to other cycles thus permitting all of the cycles in the graph
to be solved.
- The computer program product of claim 19, wherein code that identifies a set
of programs capable of completely defining the model objects of each cycle comprises:
- code that identifies the set of programs capable of solving each relationship
between the model objects of said cycle; and
- code that identifies a subset of said sets of programs.
- The computer program product of claim 19, wherein code that completely defines
the model objects in a cycle by using one of said set of programs comprises:
- code that identifies the quickest program from said set of programs; and
- code that calls said quickest program to completely define the model objects
of said cycle.
|
| Anspruch[fr] |
- Procédé de définition d'un modèle (150, 400, 420) d'un objet physique en utilisant
un système informatique (100), le procédé comprenant les étapes suivantes qui sont
réalisées automatiquement par le système informatique :
- l'identification dudit modèle, ledit modèle comprenant un ensemble d'objets
de modèle (402, 404) et un ensemble de relations entre lesdits ensembles d'objets
de modèle, et dans lequel certains desdits ensembles d'objets de modèle sont partiellement
indéfinis ;
- la génération d' un graphique (107, 410) dudit modèle,
- ledit graphique définissant les relations dudit ensemble de relations qui sont
dirigées, et les relations dudit ensemble de relations qui né sont pas dirigées,
dans lequel
- chaque relation dirigée possède un changement déterministe en termes d'ensemble
de modèles de sortie en fonction d'un ensemble donné de modèles d'entrée, et dans
lequel
- chaque relation non dirigée possède un changement non déterministe en termes
d'ensemble de modèles de sortie en fonction d'un ensemble donné de modèles d'entrée,
ladite relation non dirigée nécessitant des informations de contexte supplémentaires
afin de déterminer le changement en termes dudit ensemble de modèles de sortie,
- ledit graphique définissant également un ensemble de cycles (430, 440) comprenant
au moins un premier cycle,
- chaque cycle dudit ensemble de cycles définissant un sous-ensemble d' objets
de modèle interdépendants dudit ensemble d'objets de modèle, et
- ledit premier cycle possédant des relations non dirigées entre les objets de
modèle dudit sous-ensemble,
- pendant ledit premier cycle au moins, la détermination d' un ensemble de programmes
qui peuvent définir entièrement lesdits objets de modèle dudit sous-ensemble,
- la sélection d'un premier programme à partir dudit ensemble de programmes, et
- l'utilisation dudit premier programme afin de définir entièrement lesdits objets
de modèle dans ledit sous-ensemble, dans lequel
- lesdits objets de modèle entièrement définis dans ledit sous-ensemble peuvent
être utilisés pour calculer les relations menant à d'autres cycles, permettant ainsi
à l'ensemble des cycles du graphique d'être résolus.
- Procédé selon la revendication 1, dans lequel la génération dudit graphique
comprend :
- la définition d'un ensemble de noeuds, chaque noeud étant un objet de modèle
dans ledit modèle ;
- la définition d'un ensemble d'arcs à partir dudit ensemble de relations, chaque
arc étant une relation entre au moins deux objets de modèle dans ledit modèle ;
- la détermination d'un type de chaque relation, chaque relation étant l'une d'une
relation dirigée et d'une relation non dirigée ; et
- la génération dudit ensemble de cycles en formant des groupes de noeuds à partir
dudit ensemble de noeuds, pour chaque groupe de noeuds, les noeuds du groupe de
noeuds étant couplés par des arcs correspondant aux relations non dirigées, et dans
lequel les groupes de noeuds sont couplés par des arcs correspondant aux relations
dirigées.
- Procédé selon la revendication 1, dans lequel ladite détermination dudit ensemble
de programmes comprend :
- pour chaque relation non dirigée au sein dudit premier cycle, la génération
d'un ensemble de programmes possibles qui peuvent résoudre chacune desdites relations
non dirigées ; et
- la génération dudit ensemble de programmes en croisant l'ensemble desdits ensembles
de programmes possibles.
- Procédé selon la revendication 3, dans lequel ledit premier cycle comprend une
première relation non dirigée, dans lequel ledit système informatique comprend une
hiérarchie de classes, ladite hiérarchie de classes comprenant une première classe
et une première surclasse, ladite première surclasse étant une surclasse de ladite
première classe, dans lequel ladite première relation non dirigée est une instance
de ladite première classe, et ladite première classe étant associée à un premier
ensemble de programmes de résolution capables de résoudre une instance de ladite
première classe, ladite première surclasse étant associée à un second ensemble de
programmes de résolution capables de résoudre une instance de ladite surclasse,
et dans lequel ladite génération dudit ensemble de programmes possibles comprend
l'ajout dudit premier ensemble de programmes de résolution et dudit second ensemble
de programmes de résolution audit ensemble de programmes possibles.
- Procédé selon la revendication 1, dans lequel ledit graphique comprend un premier
objet de modèle et un second objet de modèle, et ledit graphique comprend un second
cycle et une première relation dirigée, ledit premier objet de modèle étant dans
ledit premier cycle, ledit second objet de modèle étant dans ledit second cycle,
et ledit procédé comprenant en outre l'utilisation des objets de modèle entièrement
définis dans le premier cycle, afin de définir entièrement le second objet de modèle
dans le second cycle.
- Procédé selon la revendication 1, dans lequel ladite sélection dudit premier
programme comprend :
- pour chaque programme dudit ensemble de programmes, la détermination selon laquelle
chacun desdits programmes peut ou non définir entièrement lesdits objets de modèle
dans ledit premier cycle ; et
- l'ajout des programmes qui peuvent définir entièrement lesdits objets de modèle
dans ledit premier cycle à un second ensemble de programmes, dans lequel ledit second
ensemble de programmes comprend ledit premier programme.
- Procédé selon la revendication 6, comprenant en outre la sélection dudit premier
programme à partir dudit second ensemble de programmes si ledit second ensemble
de programmes comprend seulement ledit premier programme.
- Procédé selon la revendication 6, dans lequel ledit second ensemble de programmes
comprend une pluralité de programmes, ledit procédé comprenant en outre la sélection
dudit premier programme à partir dudit second ensemble de programmes sur la base
d' un critère prédéterminé.
- Procédé selon la revendication 8, dans lequel ledit critère prédéterminé indique
que ledit premier programme définira entièrement ledit ensemble d'objets de modèle
plus rapidement que les autres programmes de ladite pluralité de programmes.
- Procédé selon la revendication 8, dans lequel ledit critère prédéterminé indique
que ledit premier programme définira entièrement ledit ensemble d'objets de modèle
de manière moins coûteuse que les autres programmes de ladite pluralité de programmes.
- Procédé selon la revendication 8, dans lequel ledit critère prédéterminé indique
que ledit premier programme définira entièrement ledit ensemble d'objets de modèle
avec une meilleure précision que les autres programmes de ladite pluralité de programmes.
- Procédé selon la revendication 8, dans lequel ledit critère prédéterminé indique
que ledit premier programme correspond mieux à un ensemble de priorités prédéterminées
afin de sélectionner un programme parmi ladite pluralité de programmes.
- Procédé selon la revendication 1, dans lequel ledit ensemble de programmes comprend
un programme de résolution de contraintes en trois dimensions.
- Procédé selon la revendication 1, dans lequel ledit ensemble de programmes comprend
un programme de résolution cinématique.
- Système de génération d' un modèle en trois dimensions (150, 400, 420) d'un
objet physique, ledit système comprenant :
- un processeur (108) pour exécuter des instructions et accéder à des données
;
- une mémoire (106) pour stocker lesdites instructions et lesdites données, ladite
mémoire comprenant un modèle comprenant un ensemble d'objets de modèle (402, 404)
et un ensemble de relations entre lesdits ensembles d'objets de modèle, et dans
laquelle certains desdits ensembles d'objets de modèle sont partiellement indéfinis
; et dans lequel
- lesdites instructions comprennent
- un premier ensemble d'instructions pour construire un graphique (107, 410) du
modèle dans ladite mémoire,
- ledit graphique définissant les relations dudit ensemble de relations qui sont
dirigées, et les relations dudit ensemble de relations qui ne sont pas dirigées,
dans lequel
- chaque relation dirigée possède un changement déterministe en termes d'ensemble
de modèles de sortie en fonction d'un ensemble donné de modèles d'entrée, et dans
lequel
- chaque relation non dirigée possède un changement non déterministe en termes
d'ensemble de modèles de sortie en fonction d'un ensemble donné de modèles d'entrée,
ladite relation non dirigée nécessitant des informations de contexte supplémentaires
afin de déterminer le changement en termes dudit ensemble de modèles de sortie,
- ledit graphique définissant également un ensemble de cycles (430, 440) comprenant
au moins un premier cycle, chaque cycle dudit ensemble de cycles définissant un
sous-ensemble d' objets de modèle interdépendants dudit ensemble d'objets de modèle,
- un second ensemble d' instructions pour identifier au moins ledit premier cycle
sur ledit graphique, ledit premier cycle possédant des relations non dirigées entre
les objets de modèle dudit sous-ensemble,
- un troisième ensemble d'instructions pour déterminer un ensemble de programmes
qui peuvent définir entièrement lesdits objets de modèle dudit sous-ensemble,
- un quatrième ensemble d'instructions pour sélectionner un premier programme
à partir dudit ensemble de programmes, et
- un cinquième ensemble d'instructions pour utiliser ledit premier programme afin
de définir entièrement lesdits objets de modèle dans ledit sous-ensemble, dans lequel
- lesdits objets de modèle entièrement définis dans ledit sous-ensemble peuvent
être utilisés pour calculer les relations menant à d'autres cycles, permettant ainsi
à l'ensemble des cycles du graphique d'être résolus.
- Système selon la revendication 15, dans lequel ledit troisième ensemble d'instructions
comprend :
- un sixième ensemble d'instructions pour générer un ensemble de programmes possibles
qui peuvent définir entièrement chaque relation non dirigée dudit premier cycle
; et
- un septième ensemble d'instructions pour identifier un sous-ensemble dudit ensemble
de programmes possibles.
- Système selon la revendication 15, dans lequel ledit quatrième ensemble d' instructions
comprend :
- un sixième ensemble d'instructions pour vérifier que chaque programme dudit
ensemble de programmes peut définir entièrement ledit premier cycle ;
- un septième ensemble d'instructions pour chaque relation non dirigée dudit premier
cycle afin de sélectionner un programme préféré ; et
- un huitième ensemble d'instructions pour choisir, en tant que premier programme,
le programme préféré sélectionné par les relations les plus non dirigées.
- Système selon la revendication 15, dans lequel ladite utilisation dudit ensemble
de programmes comprend un programme de résolution cinématique inverse.
- Programme informatique comprenant :
- un moyen informatique possédant un code de programme lisible par un ordinateur
intégré à celui-ci afin qu'un ordinateur (100) crée un modèle en N dimensions (150,
400, 420), où N > 1, sur la base d'objets physiques comprenant un ensemble d'objets
de modèle (402, 404) et un ensemble de relations entre lesdits objets de modèle,
et dans lequel certains desdits ensembles d'objets de modèle sont partiellement
indéfinis,
- le code de programme lisible par un ordinateur comprenant
- un code de programme lisible par un ordinateur qui identifie ledit ensemble
d'objets de modèle ;
- un code de programme lisible par un ordinateur qui identifie ledit ensemble
de relations entre lesdits objets de modèle ;
- un code de programme lisible par un ordinateur qui génère un graphique (107,
410) représentant ledit ensemble d'objets de modèle et ledit ensemble de relations
entre lesdits objets de modèle, ledit graphique définissant les relations dudit
ensemble de relations qui sont dirigées, et les relations dudit ensemble de relations
qui ne sont pas dirigées, dans lequel
- chaque relation dirigée possède un changement déterministe en termes d'ensemble
de modèles de sortie en fonction d'un ensemble donné de modèles d'entrée, et dans
lequel
- chaque relation non dirigée possède un changement non déterministe en termes
d'ensemble de modèles de sortie en fonction d'un ensemble donné de modèles d'entrée,
ladite relation non dirigée nécessitant des informations de contexte supplémentaires
afin de déterminer le changement en termes dudit ensemble de modèles de sortie,
- un code de programme lisible par un ordinateur qui identifie un ensemble de
cycles (430, 440) sur ledit graphique,
- ledit ensemble de cycles comprenant au moins un premier cycle,
- chaque cycle dudit ensemble de cycles définissant un sous-ensemble d'objets
de modèle interdépendants dudit ensemble d'objets de modèle, et
- ledit premier cycle possédant des relations non dirigées entre les objets de
modèle dudit sous-ensemble,
- un code de programme lisible par un ordinateur qui identifie un ensemble de
programmes capables de définir entièrement les objets de modèle de chaque cycle
; et
- un code de programme lisible par un ordinateur qui définit entièrement les objets
de modèle d'un cycle en utilisant l'un dudit ensemble de programmes capables de
définir entièrement les objets de modèle dudit cycle, dans lequel
- lesdits objets de modèle entièrement définis au sein dudit cycle peuvent être
utilisés pour calculer les relations menant à d'autres cycles, permettant ainsi
à l'ensemble des cycles du graphique d'être résolus.
- Programme informatique selon la revendication 19, dans lequel le code qui identifie
un ensemble de programmes capables de définir entièrement les objets de modèle de
chaque cycle comprend :
- un code qui identifie l'ensemble de programmes capables de résoudre chaque relation
entre les objets de modèle dudit cycle ; et
- un code qui identifie un sous-ensemble desdits ensembles de programmes.
- Programme informatique selon la revendication 19, dans lequel le code qui définit
entièrement les objets de modèle au sein d'un cycle en utilisant l' un dudit ensemble
de programmes comprend :
- un code qui identifie le programme le plus rapide à partir dudit ensemble de
programmes ; et
- un code qui exécute ledit programme le plus rapide afin de définir entièrement
les objets de modèle dudit cycle.
|
|
|