U.S. patent application number 13/946888 was filed with the patent office on 2014-07-03 for multi-user finite analysis systems apparatuses and methods.
This patent application is currently assigned to BRIGHAM YOUNG UNIVERSITY. The applicant listed for this patent is BRIGHAM YOUNG UNIVERSITY. Invention is credited to Jared Briggs, Charles Gregory Jensen, Karl Merkley, Walter Edward Red, Prasad Weerakoon, Jingsi James Wu.
Application Number | 20140188437 13/946888 |
Document ID | / |
Family ID | 51018161 |
Filed Date | 2014-07-03 |
United States Patent
Application |
20140188437 |
Kind Code |
A1 |
Red; Walter Edward ; et
al. |
July 3, 2014 |
MULTI-USER FINITE ANALYSIS SYSTEMS APPARATUSES AND METHODS
Abstract
A method for collaborative finite analysis may include obtaining
an electronic model of an engineering object, assigning users one
or more geometries for pre-analysis editing to provide assigned
geometries for each user, and enabling each user to conduct
pre-analysis editing of their assigned geometries concurrent with
other users. The method may also include conducting finite analysis
on the assigned geometries of a first user concurrent with
conducting finite analysis on the assigned geometries of a second
user. Examples of pre-analysis editing include removing features
that are secondary to analysis, applying a material definition to a
geometry, pre-meshing a geometry, initiating automated meshing of a
geometry, validating automated meshing of a geometry, editing a
mesh for a geometry, manually meshing a geometry, defining one or
more loads associated with a geometry, and defining one or more
boundary conditions for a geometry. A corresponding system and
apparatus are also disclosed herein.
Inventors: |
Red; Walter Edward; (Provo,
UT) ; Jensen; Charles Gregory; (Provo, UT) ;
Weerakoon; Prasad; (Provo, UT) ; Wu; Jingsi
James; (Norcross, GA) ; Merkley; Karl;
(Lindon, UT) ; Briggs; Jared; (Provo, UT) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
BRIGHAM YOUNG UNIVERSITY |
PROVO |
UT |
US |
|
|
Assignee: |
BRIGHAM YOUNG UNIVERSITY
PROVO
UT
|
Family ID: |
51018161 |
Appl. No.: |
13/946888 |
Filed: |
July 19, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61773855 |
Mar 7, 2013 |
|
|
|
61744934 |
Oct 6, 2012 |
|
|
|
Current U.S.
Class: |
703/1 |
Current CPC
Class: |
G06F 30/23 20200101 |
Class at
Publication: |
703/1 |
International
Class: |
G06F 17/50 20060101
G06F017/50 |
Claims
1. A method for collaborative finite analysis of an electronic
model of an engineering object, the method comprising: obtaining an
electronic model of an engineering object, the electronic model
comprising a plurality of geometries; assigning each of a plurality
of users one or more geometries for pre-analysis editing to provide
assigned geometries for each of the plurality of users; and
enabling each user to conduct pre-analysis editing of their
assigned geometries concurrent with other users of the plurality of
users.
2. The method of claim 1, wherein the pre-analysis editing is
selected from the group consisting of removing features that are
secondary to analysis, applying a material definition to a
geometry, pre-meshing a geometry, initiating automated meshing of a
geometry, validating automated meshing of a geometry, editing a
mesh for a geometry, manually meshing a geometry, defining one or
more loads associated with a geometry, and defining one or more
boundary conditions for a geometry.
3. The method of claim 1, further comprising conducting finite
analysis on the assigned geometries of a first user of the
plurality of users concurrent with conducting finite analysis on
the assigned geometries of a second user of the plurality of
users.
4. The method of claim 1, wherein the assigned geometries of a user
of the plurality of users correspond to a spatial region.
5. The method of claim 4, further comprising partitioning the
electronic model into a plurality of spatial regions.
6. The method of claim 1, further comprising decomposing the
pre-analysis editing for one or more geometries into a plurality of
editing tasks and assigning different users to each editing
task.
7. The method of claim 6, further comprising specifying sequential
dependencies for the plurality of editing tasks.
8. An apparatus for collaborative finite analysis of an electronic
model of an engineering object, the method comprising: an import
module configured to import an electronic model of an engineering
object, the electronic model comprising a plurality of geometries;
an assignment module configured to assign each of a plurality of
users one or more geometries for pre-analysis editing to provide
assigned geometries for each of the plurality of users; and a
pre-analysis editing module configured to enable each user of the
plurality of users to conduct pre-analysis editing of their
assigned geometries concurrent with other users of the plurality of
users.
9. The apparatus of claim 8, wherein the pre-analysis editing is
selected from the group consisting of removing features that are
secondary to analysis, applying a material definition to a
geometry, pre-meshing a geometry, initiating automated meshing of a
geometry, validating automated meshing of a geometry, editing a
mesh for a geometry, manually meshing a geometry, defining one or
more loads associated with a geometry, and defining one or more
boundary conditions for a geometry.
10. The apparatus of claim 8, further comprising a first analysis
module configured to conduct finite analysis on the assigned
geometries of a first user of the plurality of users, and a second
analysis module configured to conduct finite analysis on the
assigned geometries of a second user of the plurality of users
concurrent with the first analysis module.
11. The apparatus of claim 8, wherein the assigned geometries of a
user of the plurality of users correspond to a spatial region.
12. The apparatus of claim 8, further comprising partitioning the
electronic model into a plurality of spatial regions.
13. The apparatus of claim 8, wherein the assignment module is
further configured to decompose the pre-analysis editing for one or
more geometries into a plurality of editing tasks and assigning
different users to each editing task.
14. The apparatus of claim 13, wherein the assignment module is
further configured to impose sequential dependencies for the
plurality of editing tasks.
15. A system for collaborative pre-analysis editing of an
electronic model of an engineering object, the system comprising: a
CAD editor configured to enable a user to create an electronic
model for an engineering object; a finite analysis editing tool
configured to import the electronic model of an engineering object,
the electronic model comprising a plurality of geometries; the
finite analysis editing tool configured to assign each of a
plurality of users one or more geometries for pre-analysis editing
to provide assigned geometries for each of the plurality of users;
and the finite analysis editing tool configured to enable each user
to conduct pre-analysis editing of their assigned geometries
concurrent with other users of the plurality of users.
16. The system of claim 15, wherein the pre-analysis editing is
selected from the group consisting of removing features that are
secondary to analysis, applying a material definition to a
geometry, pre-meshing a geometry, initiating automated meshing of a
geometry, validating automated meshing of a geometry, editing a
mesh for a geometry, manually meshing a geometry, defining one or
more loads associated with a geometry, and defining one or more
boundary conditions for a geometry.
17. The system of claim 15, further comprising a first analysis
server configured to conduct finite analysis on the assigned
geometries of a first user of the plurality of users, and a second
analysis server configure to conduct finite analysis on the
assigned geometries of a second user of the plurality of users
concurrent with the first analysis module.
18. The system of claim 15, wherein the assigned geometries of a
user of the plurality of users correspond to a spatial region.
19. The system of claim 18, wherein the finite analysis editing
tool is further configured to partition the electronic model into a
plurality of spatial regions.
20. The system of claim 15, wherein the finite analysis editing
tool is further configured to enable a user to decompose the
pre-analysis editing for one or more geometries into a plurality of
editing tasks and assigning different users to each editing
task.
21. The system of claim 15, wherein the finite analysis editing
tool is further configured to impose sequential dependencies for
the plurality of editing tasks.
Description
RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional
Application 61/773,855 entitled "MULTI-USER DECOMPOSITION OF DESIGN
SPACE MODELS" and filed on 7 Mar. 2013 for Walter Edward Red,
Felicia Marshal, Charles Gregory Jensen, Prasad Weerakoon and Rob
Moncur and of U.S. Provisional Application 61/774,934 entitled
"MULTI-USER METHODS FOR FEA PRE-PROCESSING" and filed on 8 Mar.
2013 for Walter Edward Red, Prasad Weerakoon, Charles Gregory
Jensen, Steven E. Benzley, Karl Merkley, James Wu and Chia-Chi
Teng. The aforementioned applications are incorporated herein by
reference in their entirety.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The claimed invention relates to computer aided technologies
(CAx) such as computer aided design, engineering, analysis and
manufacture in general, and means and methods for collaborative FEA
pre-processing in particular.
[0004] 2. Description of the Related Art
[0005] Despite the processing power and algorithmic sophistication
available in state of the art finite analysis systems, effective
finite analysis typically requires user driven completion of a
variety of tasks such as removing features that are secondary to
analysis, applying a material definition to geometries, pre-meshing
geometries, validating and editing automated meshing of a geometry,
defining loads and boundary conditions, and the like. For example,
it is common industry practice to assign ownership and control of a
finite analysis task to a single user in order to prohibit multiple
users from making uncoordinated pre-processing changes to a CAD
model and the analysis parameters associated therewith.
Unfortunately, the serial nature of such an approach results in
slow and cumbersome optimization cycles. This is particularly true
of complex systems that integrate a number of subsystems designed
by a variety of suppliers such as automobiles and aircraft. As a
result, significant delays to such products are common resulting in
increased development costs and lost opportunities.
[0006] Given the foregoing, what is needed are systems, apparatuses
and methods for concurrent completion of the various tasks related
to finite analysis.
BRIEF SUMMARY OF THE INVENTION
[0007] The present invention has been developed in response to the
present state of the art, and in particular, in response to the
problems and needs in the art that have not yet been fully solved
by currently available finite analysis processing and
pre-processing systems, apparatuses, and methods. Accordingly, the
claimed inventions have been developed to provide collaborative
finite analysis processing and pre-processing systems, apparatuses,
and methods that overcome shortcomings in the art.
[0008] As detailed below, a method for collaborative finite
analysis of an electronic model of an engineering object includes
obtaining an electronic model of an engineering object, assigning
each of a plurality of users one or more geometries for
pre-analysis editing to provide assigned geometries for each of the
plurality of users, and enabling each user to conduct pre-analysis
editing of their assigned geometries concurrent with other users of
the plurality of users. The method may also include conducting
finite analysis on the assigned geometries of a first user of the
plurality of users concurrent with conducting finite analysis on
the assigned geometries of a second user of the plurality of users.
Examples of pre-analysis editing include removing features that are
secondary to analysis, applying a material definition to a
geometry, pre-meshing a geometry, initiating automated meshing of a
geometry, validating automated meshing of a geometry, editing a
mesh for a geometry, manually meshing a geometry, defining one or
more loads associated with a geometry, and defining one or more
boundary conditions for a geometry.
[0009] Apparatuses and systems corresponding to the above methods
are also disclosed herein. It should be noted that references
throughout this specification to features, advantages, or similar
language do not imply that all of the features and advantages that
may be realized with the present invention should be or are in any
single embodiment of the invention. Rather, language referring to
the features and advantages is understood to mean that a specific
feature, advantage, or characteristic described in connection with
an embodiment is included in at least one embodiment of the present
invention. Thus, discussion of the features and advantages, and
similar language, throughout this specification may, but do not
necessarily, refer to the same embodiment.
[0010] The described features, advantages, and characteristics of
the invention may be combined in any suitable manner in one or more
embodiments. One skilled in the relevant art will recognize that
the invention may be practiced without one or more of the specific
features or advantages of a particular embodiment. In other
instances, additional features and advantages may be recognized in
certain embodiments that may not be present in all embodiments of
the invention.
[0011] These features and advantages will become more fully
apparent from the following description and appended claims, or may
be learned by the practice of the invention as set forth
hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] In order that the advantages of the invention will be
readily understood, a more particular description of the invention
briefly described above will be rendered by reference to specific
embodiments that are illustrated in the appended drawings.
Understanding that these drawings depict only typical embodiments
of the invention and are not therefore to be considered to be
limiting of its scope, the invention will be described and
explained with additional specificity and detail through the use of
the accompanying drawings, in which:
[0013] FIG. 1 is a block diagram of one example of a computing and
communications infrastructure that is consistent with one or more
embodiments of the claimed invention;
[0014] FIG. 2 is a block diagram of one example of a collaborative
CAx editing system that is consistent with one or more embodiments
of the claimed invention;
[0015] FIGS. 3a-3c are block diagrams of several embodiments of the
collaborative CAx editing system of FIG. 2 as applied to various
computing architectures;
[0016] FIG. 4 is a flowchart diagram of one example of a
collaborative CAx editing method that is consistent with one or
more embodiments of the claimed invention;
[0017] FIG. 5 is a flowchart diagram of one example of a design
space decomposition method that is consistent with one or more
embodiments of the claimed invention;
[0018] FIG. 6 is a graphical and textual depiction of one example
of a design space decomposition user interface that may be used in
conjunction with embodiments of the collaborative design space
decomposition method depicted in FIG. 5 and other methods describe
herein;
[0019] FIG. 7 is a flowchart diagram of a geometry decomposition
method consistent with embodiments of the claimed invention;
[0020] FIG. 8 is a graphical and textual depiction of one example
of a geometry assignment user interface that may be used in
conjunction with the geometry decomposition method depicted in FIG.
7 and other methods describe herein;
[0021] FIG. 9 is a flowchart diagram of a feature assignment method
consistent with embodiments of the claimed invention;
[0022] FIG. 10 is a graphical and textual depiction of one example
of a feature assignment user interface that may be used in
conjunction with the feature assignment method depicted in FIG. 9
and other methods describe herein;
[0023] FIG. 11 is a flowchart of a feature constraint method
consistent with embodiments of the claimed invention;
[0024] FIG. 12 is a graphical and textual depiction of one example
of a collaborative feature constraint user interface that may be
used in conjunction with the feature constraint method depicted in
FIG. 11;
[0025] FIG. 13 is a graphical and textual depiction of one example
of a collaborative CAx user interface that is consistent with one
or more embodiments of the claimed invention;
[0026] FIG. 14 is a flowchart diagram of a multi-user finite
analysis method that is consistent with one or more embodiments of
the claimed invention;
[0027] FIG. 15a is a graphical and textual depiction of one example
of a finite analysis task assignment interface that is consistent
with one or more embodiments of the claimed invention;
[0028] FIG. 15b is a graphical and textual depiction of one example
of a finite analysis task status interface that is consistent with
one or more embodiments of the claimed invention;
[0029] FIGS. 16a and 16b are respective before and after
illustrations of a CAD cleanup task performed by a collaborative
user;
[0030] FIGS. 17a and 17b are respective before and after
illustrations of a meshing editing task performed by a user;
and
[0031] FIGS. 18a and 18b are respective before and after
illustrations of a load definition task performed by a user.
DETAILED DESCRIPTION OF THE INVENTION
[0032] Some of the functional units described in this specification
have been labeled as modules, in order to more particularly
emphasize their implementation independence. Others are assumed to
be modules. For example, a module or similar unit of functionality
may be implemented as a hardware circuit comprising custom VLSI
circuits or gate arrays, off-the-shelf semiconductors such as logic
chips, transistors, or other discrete components. A module may also
be implemented with programmable hardware devices such as field
programmable gate arrays, programmable array logic, programmable
logic devices or the like.
[0033] A module or a set of modules may also be implemented (in
whole or in part) as a processor configured with software to
perform the specified functionality. An identified module may, for
instance, comprise one or more physical or logical blocks of
computer instructions which may, for instance, be organized as an
object, procedure, or function. Nevertheless, the executables of an
identified module need not be physically located together, but may
comprise disparate instructions stored in different locations
which, when joined logically together, comprise the module and
achieve the stated purpose for the module. For example, a module
may be implemented as an on-demand service that is partitioned
onto, or replicated on, one or more servers.
[0034] Indeed, the executable code of a module may be a single
instruction, or many instructions, and may even be distributed over
several different code segments, among different programs, and
across several memory and processing devices. Similarly,
operational data may be identified and illustrated herein within
modules, and may be embodied in any suitable form and organized
within any suitable type of data structure. The operational data
may be collected as a single data set, or may be distributed over
different locations including over different storage devices.
[0035] Reference throughout this specification to "one embodiment,"
"an embodiment," or similar language means that a particular
feature, structure, or characteristic described in connection with
the embodiment is included in at least one embodiment of the
present invention. Thus, appearances of the phrases "in one
embodiment," "in an embodiment," and similar language throughout
this specification may, but do not necessarily, all refer to the
same embodiment.
[0036] Reference to a computer readable medium may take any
tangible form capable of enabling execution of a program of
machine-readable instructions on a digital processing apparatus.
For example, a computer readable medium may be embodied by a flash
drive, compact disk, digital-video disk, a magnetic tape, a
magnetic disk, a punch card, flash memory, integrated circuits, or
other digital processing apparatus memory device. A digital
processing apparatus such as a computer may store program codes,
associated data, and the like on the computer readable medium that
when retrieved enable the digital processing apparatus to execute
the functionality specified by the modules.
[0037] Furthermore, the described features, structures, or
characteristics of the invention may be combined in any suitable
manner in one or more embodiments. In the following description,
numerous specific details are provided, such as examples of
programming, software modules, user selections, network
transactions, database queries, database structures, hardware
modules, hardware circuits, hardware chips, etc., to provide a
thorough understanding of embodiments of the invention. One skilled
in the relevant art will recognize, however, that the invention may
be practiced without one or more of the specific details, or with
other methods, components, materials, and so forth. In other
instances, well-known structures, materials, or operations are not
shown or described in detail to avoid obscuring aspects of the
invention.
[0038] In a multi-user environment, it is desirable to assign
different areas, regions or geometries for different users to work
i.e. a workspace. The assigned workspace may or may not be a
contiguous region. Casually assigning a workspace to a user may not
be effective, because it is likely a user will accidently cross
into another user's workspace. The result may end up creating chaos
and result in a less productive multi-user environment. Therefore,
it is generally desirable that users should be restricted to their
own workspaces and they should not be allowed to make changes to
within others' workspaces. Exceptions include coordinated work or
training sessions where users are in direct communication with each
other over a communication channel such as a voice channel Blocking
users from making changes to another user's workspace does not mean
the user cannot view the rest of the model. It means the user
cannot make any modifications to areas, geometries, or elements
that they are not assigned.
[0039] As used herein the phrase `engineering object` refers to an
electronically modeled object that may be edited by a CAx
application or tool and `CAx model` refers to the electronic model
for that object. CAx applications and tools include, but are not
limited to, design tools, meshing tools, simulation tools,
visualization tools, analysis tools, manufacture planning tools,
and manufacture simulation tools.
[0040] FIG. 1 is a block diagram of one example of a computing and
communications infrastructure 100 that is consistent with one or
more embodiments of the claimed invention. As depicted, the
infrastructure 100 includes various systems, subsystems, and
networks such as a public switched telephone network (PSTN) 110, a
TDM gateway 120 connecting the PSTN to an inter-network 130, a
variety of workstations 125, a data center 140 with administrative
terminals 145, an inter-network gateway 150 connecting a local area
network to the inter-network 130, and various servers such as
application servers 170, communication servers 180, and data
servers 190. The infrastructure 100 is one example of components
that can be operably interconnected to provide an infrastructure
for a collaborative CAx system.
[0041] Each workstation 125 may include a separate computing device
126 and a communications device 127 or the computing device and
communications device may integrated into the workstation 125. The
computing devices 126 may enable graphical editing and viewing of
CAx models. The communications devices 127 may enable users to
communicate with other users that are concurrently editing a CAx
model.
[0042] The inter-network 130 may facilitate electronic
communications between the various workstations and servers. In one
embodiment, the inter-network 130 is the internet. In another
embodiment, the inter-network 130 is a virtual private network
(VPN).
[0043] Various servers such as blade servers within the data center
140 function cooperatively to facilitate concurrent collaborative
editing of CAx models by local and remote users. For example, the
application servers 170 may provide one or more collaborative CAx
applications to the local and remote users. Some users may have the
collaborative CAx applications installed on their local computing
devices 126.
[0044] The communication servers 180 may facilitate communications
between the users through various channels or services such as VOIP
services, email services, instant messaging services, short message
services, and text messaging services. The workstations 125 may
leverage such services for user to user communications via the
communication servers 180 or via other available service
platforms.
[0045] The data servers 190 or the like may store CAx models of
design or engineering objects within various model files or
records. The data servers may replicate copies of the models for
use by various users. Some users may have a local copy of a model.
As described herein, instead of requiring a particular user to
assume control of a model file or record, updates to the model may
be coordinated by one or more collaborative CAx applications
including client versions, server versions, and cloud versions of
such applications.
[0046] FIG. 2 is a block diagram of one example of a collaborative
CAx editing system 200 that is consistent with one or more
embodiments of the claimed invention. As depicted, the
collaborative CAX editing system 200 includes a variety of modules
including a model datastore 210, a change control module 220, a
user interface module 230, a user-to-user communication module 240,
a version control module 250, an object rendering module 260, and a
partitioning module 270. Each of the modules may reside on a single
computing device (i.e. node) or be collaboratively partitioned onto
multiple devices or nodes. For example, the depicted embodiment
includes a client node 200a where the various modules are appended
with the reference letter `a` and a server node 200b where the
modules are appended with the reference letter `b`. The modules may
be primarily or wholly comprised of software codes and associated
data that are executed and processed by a digital processing
apparatus such as a computer to provide the specified
functionality.
[0047] The model datastore 210 stores data for the node(s) 200. The
model datastore 210 may include an actual storage device or act as
an interface to a storage device. In particular, the model
datastore 210 may enable the nodes 200 to store and retrieve files
or other units of data such as database records that correspond to
an electronic model (i.e. CAx model) of an engineering object. The
model datastore 210 may include working memory on the node 200.
[0048] In one embodiment, the local model datastore 210a contains
local copies of CAx models managed by the global model datastore
210b. The local and global model datastores may coordinate together
to provide data coherency between local copies of the CAx models
and the global copy. In certain embodiments, the global model
datastore is a redundant and/or a distributed storage system.
[0049] The change control module 220 controls user access to data
managed by the model datastore 210. In one embodiment, the change
control module 220 ensures that users can only access data that
corresponds to geometries and features within an editing region
that has been assigned to the user. All other users may be blocked
by the change control module 220 from accessing data corresponding
to features within the editing region that has been assigned to
that user. In another embodiment, any user may change a feature as
long as that feature or region has not been assigned to another
user.
[0050] Examples of features include the shape, dimensions,
composition, material properties and tolerances of an object, the
mesh size and required accuracy for simulations, the path and
tolerances for a manufacturing tool, and any other attribute that
may affect the performance of a product and the manufacture
thereof.
[0051] The change control module 220 may also block an update to a
CAx model if the changes to an editable feature violate engineering
constraints associated with the modeled engineering object. For
example, if changing the material of a particular component results
in an increase in mass for the engineering object beyond a
designated threshold, the change to the material may be blocked by
the change control module 220. Constraints may be specified as
limiting values, allowable values, equations, functions or the
like.
[0052] The user interface module 230 provides a user with a variety
of interface elements that facilitate concurrent collaborative
editing. Examples of such interface elements include interfaces
elements for displaying a feature tree, defining a partitioning
surface or equation, selecting, reserving, assigning, locking and
releasing geometries, editing regions and features, specifying a
feature constraint, selecting and editing geometries, displaying a
list of concurrent users, displaying user identifiers proximate to
assigned editing regions, presenting a list or other view of
geometries and/or features, prioritizing user access rights and
priorities (e.g. by a project leader), selecting user-to-user
communication channels, initiating communication with another user,
and providing access to software tools corresponding to various
stages or layers associated with an engineering object. The user
interface module 230 may also respond to mouse events, keyboard
events, and the like.
[0053] The user-to-user communication module 240 facilitates direct
communication between users. The user-to-user communication module
240 may leverage a variety of communication services such as those
detailed above in the description of the computing and
communications infrastructure 100. Communication may be between
concurrent users as well as users that may not be actively editing
an object. The interface elements provided by the user interface
module 230 may enable a user to select particular users or groups
as a target for a particular message or ongoing conversation. Such
communication is enabled by the user-to-user communication module
240.
[0054] The update module 245 propagates changes to editable
features between nodes of the collaborative editing system. The
changes may be communicated via one or more communication channels
280 such as peer-to-peer communication channels, client-server
communication channels, and data replication channels associated
with a cloud computing environment. In the depicted embodiment,
valid changes to a local copy of an engineering model are
communicated by the client update module 245a to the server update
module 245b within the server node 200b. In turn, the server update
module 245b may update additional client nodes 200a.
[0055] One of skill in the art will appreciate that the granularity
and frequency of updates may be a factor in how frequently a user
may be blocked from editing a feature or geometry. For example,
frequent updates of relatively small regions may enable multiple
users to sequentially gain access to a common working region and
thereby reduce the probability of blocking. In one embodiment, an
editing region is released for access by any user when the changes
to a feature or geometry are propagated to other nodes.
[0056] The version control module 250 provides revision control
capabilities to the collaborative editing environment. For example,
the version control module in conjunction with the user interface
module may enable the concurrent users to select which revision of
a product is to be updated with the edits. In certain embodiments,
multiple revisions may be simultaneously edited. Revision control
may also allow the collaborative users to discard edits associated
with an editing session.
[0057] The object rendering module 260 renders the engineering
object on a display for viewing by the user. The user interface
module 230 may overlay interface elements such as control points on
the rendered engineering object.
[0058] The partitioning module 270 partitions the engineering
object into one or more editing regions. The partitioning may occur
via spatial decomposition. The partitioning may be automatic, for
example when an engineering object is opened for editing, or user
driven, for example in response to a user selecting a region or
particular elements or features for editing. In some embodiments,
the partitioning module 270 partitions the design space and/or the
engineering object into a plurality of editing regions by using a
partitioning constraint provided by the user.
[0059] In some embodiments, the local partitioning modules 270a
initiate the partitioning process but the actual partitioning is
performed by the global partitioning module 270b or a process under
control of the global partitioning module 270b. Specific
user-driven partitioning methods are shown in FIGS. 7 and 8 and
described in the associated description.
[0060] The task management module 275 facilitates and coordinates
the assignment of tasks to users. The tasks may be assigned on a
geometry or region basis. For example, various pre-analysis editing
tasks may be delegated to different users for each region generated
(automatically or under user direction) by the partitioning module
270. Specific methods, interfaces, and examples related to task
management are shown in FIGS. 14-18 and described in the associated
description.
[0061] FIGS. 3a-3c are block diagrams of several embodiments of the
collaborative CAx editing system of FIG. 2 as applied to various
computing architectures. FIG. 3a depicts one example of a
client-server embodiment, FIG. 3b depicts one example of a
peer-to-peer embodiment, and FIG. 3c depicts one example of a cloud
embodiment. It should be noted that a variety of computing
architectures beyond those shown in FIGS. 3a-3c including emerging
architectures may provide a computing infrastructure suitable for
the collaborative CAx editing disclosed herein.
[0062] The client-server embodiment depicted in FIG. 3a includes a
number of collaborative editing clients 310 that are in
communication with a collaborative editing server 320. In one
embodiment, the client 310 is the node 200a depicted in FIG. 2 and
the server 320 is the node 200b. However, one of skill in the art
will appreciate the modules shown in FIG. 2 may be partitioned
between the client 310 and the server 320 in any useful manner that
facilitates collaborative editing.
[0063] The peer-to-peer embodiment depicted in FIG. 3b includes a
number of collaborative editing nodes 330. In the depicted
embodiment, each collaborative editing node includes all of the
modules of the client node 200a along within distributed versions
of the modules of the server node 200b. In another embodiment, each
module of the server node 200b is assigned to a particular
collaborative editing node 330.
[0064] The cloud embodiment depicted in FIG. 3c includes a number
of collaborative editing nodes 330 similar to the peer-to-peer
embodiment of FIG. 4. However, the collaborative editing nodes may
be part of the inter-network 130 or one or more data centers 140
attached to the inter-network 130. In the depicted embodiment,
users access a collaborative CAx application via a collaborative
editing terminal 340. In one embodiment, the collaborative editing
terminal 340 is a thin client that only includes the modules of
FIG. 2 (or portions thereof) that are necessary to support user
interaction.
[0065] FIG. 4 is a flowchart diagram of one example of a
collaborative CAx editing method 400 that is consistent with one or
more embodiments of the claimed invention. As depicted, the
collaborative CAx editing method 400 includes enabling 410 a user
to define a partitioning constraint, partitioning 420 a design
space into editing regions, displaying 430 a feature tree, enabling
440 users to select, reserve, lock and release editing regions and
features, enabling 450 specified users to edit locked regions and
features, enabling 460 users to specify constraints on editable
features and blocking 470 users from editing locked regions and
exceeding specified constraints.
[0066] Enabling 410 a user to define a partitioning constraint may
include enabling the user to specify an equation, a geometry list,
(criteria for) a feature selection filter, a partitioning surface
that can guide the partitioning process. For example, a feature
selection filter may specify specific constraints such as "find
solid geometries with a fillet".
[0067] A partitioning surface may be specified via conventional CAx
input methods such as entering control points, specifying
parameters for a geometry or specifying a tool path and associated
tool. The partitioning surface may correspond to a variety of
shapes or geometries. For example, the partitioning surface may be
a planar surface, a curved surface, an open surface, a closed
surface, or the surface of a three dimensional shape (in part or
whole) such as a block, a cylinder, a cone, a conical frustum, an
ellipsoid, or a more complex mathematical surface.
[0068] Partitioning 420 a design space into editing regions may
include sorting and/or cutting an engineering object and/or
geometries and features associated therewith into features, parts
or regions that meet the specified constraints. The partitioned
features, parts or regions may then be independently reserved and
assigned to one or more users.
[0069] Displaying 430 a feature tree may include displaying various
geometries and elements used to define the engineering object and
various attributes associated therewith such as the shape,
dimensions, composition, material properties and tolerances of the
geometry.
[0070] Enabling 440 users to select, reserve, lock and release
editing regions and features may include providing interface
elements that facilitate selecting, reserving, locking (i.e.
assigning) and releasing editing regions. In one embodiment,
enabling 450 specified users to edit locked regions and features
includes allowing only users that have locked (i.e. been assigned
to) a region or particular feature to edit (features within) that
region or that particular feature. In another embodiment, any user
may edit features within a region or a specific feature as long as
that region or feature has not been assigned to another user.
[0071] Enabling 460 users to specify constraints on editable
features may include displaying edit controls that enable a user to
enter constraint equations or limiting values on features. The edit
controls may be separate from, or integrated with, the feature
tree. Blocking 470 users from editing locked regions and/or
features and exceeding specified constraints may include enforcing
locks on regions and features and constraints on features.
[0072] FIGS. 5-13 focus on specific aspects of, and interfaces for,
the collaborative CAx editing method 400. It should be noted that
large collaborative CAx projects require coordination and control
of the activities of potentially hundreds to thousands of engineers
and designers. Such projects have been managed by such means as
deconstructing the engineering object as an assembly into
components and subcomponents that are designed, engineered, and
manufactured independently, leading to component incompatibilities;
or by partitioning the subassembly design process in phases over
time, leading to longer development times; or by attempting to
manage synchronous design processes by rule and policy, which often
leads to corruption of the CAx database or lost work when multiple
users mistakenly edit features concurrently. Various aspects of the
collaborative CAx editing method 400 that address these issues were
introduced in FIG. 4 and are shown in greater detail in FIGS.
5-13.
[0073] FIG. 5 is a flowchart diagram of one example of a design
space decomposition method 500 that is consistent with one or more
embodiments of the claimed invention. As depicted, the design space
decomposition method 500 includes enabling definition 510 of a
partitioning constraint, partitioning 520 the design space into
editing regions, enabling assignment 530 of a selected editing
region, enabling feature editing 540 of a selected editing region,
and blocking editing 550 of an editing region and associated
features.
[0074] Enabling definition 510 of a partitioning constraint may
include any of the methods described in the enabling step 410. For
example, enabling definition 510 of a partitioning constraint may
include providing CAx graphic user interface tools or selection
filters for selecting features or geometries of an engineering
object. A partitioning surface may also be defined as components of
an engineering object are constructed. Enabling definition of
partitioning constrains may be coordinated by the local
partitioning module 220a, employing the user interface module 230a
and object rendering module 260 to facilitate identification of the
partitioning surface.
[0075] Partitioning 520 the engineering object into editing regions
may include local or remote invocation of one or more functions
that identify structures in a CAx database corresponding to
partitioning constraint. In some embodiments, regions are
automatically generated. In other embodiments, regions are
established in response to users selecting specific geometries or
features for editing. In such embodiments, the local partitioning
module 270a or global partitioning module 270b may check
dependencies between geometries and features and allocate one or
more spatial regions that encompasses all of the geometries (or the
like) affected by a change to a feature. For example, an
engineering object may have mounting holes for securing the object
within a product. Editing a mounting hole spacing parameter or
feature for the engineering object may cause the partitioning
module 270 to allocate one or more editing regions (to the
collaborative user) that encompasses each geometry affected by the
hole spacing.
[0076] Enabling assignment 530 of a selected editing region may
include providing user interface controls for selecting users from
a plurality of available users, selecting editing regions from a
plurality of defined editing regions, and assigning access to the
selected editing region and associated features to the selected
user. In one embodiment, assignment of editing regions is
established by an access privileges administrator such as a project
coordinator. In certain embodiments, assignment of editing regions
is established in response to the user selecting a feature for
editing via one or more interface elements associated with a
feature tree. In one embodiment, icons for reserving, locking and
releasing features are displayed proximate to features in the
feature tree.
[0077] Enabling feature editing 540 of a selected editing region
may include providing a user interface for inspecting and modifying
features associated with the selected region. User access to
features may be graphically represented by displaying features in
various colors, with background patterns or shading, or marked by
icons indicating whether the user is permitted access to change the
features.
[0078] Blocking editing 550 of an editing region and associated
features may include allowing users to make changes to features
within editing regions assigned to them while preventing users from
making changes to features within editing regions that are not
assigned to them. In one embodiment, user access to features may be
blocked by not providing interface controls for editing the
features. In another embodiment, a warning may be displayed when
the user attempts to modify a feature to which access has not been
assigned to the user.
[0079] FIG. 6 is a graphical and textual depiction of one example
of a design space decomposition user interface 600 in conjunction
with embodiments of the collaborative design space decomposition
method of the claimed invention. As depicted, the design space
decomposition user interface 600 includes a graphical rendering 610
with design space definition regions 620 and region definition
toolbox 630. The design space decomposition user interface 600
facilitates decomposing a design space into defined editing regions
for collaborative user editing of electronic models of engineering
objects.
[0080] The graphical rendering 610 provides a graphical rendering
of an engineering object and/or layer associated therewith. The
graphical rendering may be a 2D or 3D rendering from a variety of
perspectives that facilitates editing. In the depicted embodiment,
the graphical rendering includes a perspective CAD rendering 610a
and a cross-sectional analysis rendering 610b for a region.
[0081] The editing regions 620 may be demarcated with boundaries
622 and 624 that indicate generally the extents of the selected
region. Although not depicted, the spatial decomposition process
may result in spatially disjoint regions, or regions whose extents
do overlap. For example, an electronic model for an airplane may be
partitioned into a cabin interior region, a fuselage exterior
region, and a region for the aircraft wings. In some embodiments,
graphical renderings within each region are color coded or coded in
some other way such as a shading pattern to indicate the extent of
the editing regions.
[0082] In the depicted embodiment, a layer selector 612 (e.g. a
drop-down list) enables a collaborative user to select the layer
that is to be decomposed or viewed for an editing region. Software
tools that are specific to the selected layer (not shown) may be
made available or activated on the user interface 600 in response
to layer selection. Examples of such software tools include
visualization tools, design tools, analysis tools, and manufacture
planning tools.
[0083] The region definition toolbox 630 may provide a variety of
information and region selection tools relative to defining editing
regions, such as a list of defined region names 632 and associated
layers 634, selection tools 635 for selecting geometries in the
design space for designation as editing regions, and region
designation controls 636 and 638 to indicate when a new editing
region has been defined, and to assign an associated identifier.
The region name 632 may be derived from information within the
electronic model or specified by a user upon assignment or
selection.
[0084] FIG. 7 is a flowchart of a geometry decomposition method
700. As depicted, the geometry decomposition method 700 includes
enabling 710 a user to specify one or more selected geometries,
enabling 720 the user to assign a specified user, enabling 730 the
specified user to edit the selected geometries, and blocking 740
other users from access to the selected geometries. The method 700
may enable coordinated collaborative editing without requiring
rigid administrative control. One of skill in the art will
appreciate that the method 700 and other methods disclosed herein
could be applied to groups of users as well as individual
users.
[0085] Enabling 710 a user to specify one or more selected
geometries may include a variety of methods such as presenting a
list of geometries that the user can select, providing a selection
filter interface and responding to mouse events proximate to
geometries. Enabling 720 the user to assign a specified user may
include presenting a list of users that the user can selected from
and providing a search dialog. For example, the user could search
for users with specific skills or experience.
[0086] Enabling 730 the specified user to edit the selected
geometries may include responding to changes to features associated
with the selected geometries. Blocking 740 other users from access
to the selected geometries may include preventing access to
features associated with the selected geometries or preventing
updates to those features.
[0087] FIG. 8 is a graphical and textual depiction of one example
of a geometry assignment user interface 800 that is consistent with
one or more embodiments of the claimed invention. As depicted, the
geometry assignment user interface 800 includes a graphical
rendering 810 with design space display regions 820 and region
assignment tools 830. The geometry assignment user interface 800
facilitates assignment of defined editing regions to users for
collaborative editing of electronic models of engineering
objects.
[0088] The graphical rendering 810 provides a graphical rendering
of an engineering object and/or layer associated therewith. In the
depicted embodiment, the graphical rendering includes a perspective
CAD rendering 810a and a cross-sectional analysis rendering 810b,
similar to the graphical rendering 610 in the design space
decomposition user interface 600.
[0089] The editing regions 820 may be demarcated with boundaries
822 and marked with user identifiers 824 that indicate generally
the extents of the region and which user the region has been
assigned to. Although the depicted extents do not overlap each
other, the spatial decomposition process may result in distinct
regions whose extents do overlap. An editing region may also be
spatially disjoint. In some embodiments, graphical renderings
within each region are color coded or coded in some other way such
as a shading pattern to indicate which user they are assigned
to.
[0090] In the depicted embodiment, a layer selector 812 (e.g. a
drop-down list) enables a collaborative user to select the layer
that is to be edited or viewed for an assigned editing region.
Software tools that are specific to the selected layer (not shown)
may be made available or activated on the user interface 800 in
response to layer selection. Examples of such software tools
include visualization tools, design tools, analysis tools, and
manufacture planning tools.
[0091] The region assignment tools 830 may provide a variety of
information relative to collaborative editing such as user
identifiers 831, user names 832 and locations 833, a region name
834, a user priority 835, and a layer indicator 836. The user names
831 may correspond to a particular user identifier 824. The
location 833 may indicate the physical location of the user and
thereby enhance coordination and communication. As depicted, each
of the region assignment tools 830 may have associated assignment
controls, such as drop-down lists, to facilitate user selection,
user assignment to editing regions, and setting of related
parameters, such as the user identifier 824 and user priority 835.
When a user, editing region, and related parameters have been
selected, assignment may be completed by activating a control such
as the assign region button 837.
[0092] The region name 834 may be derived from information within
the electronic model or specified by a user upon assignment or
selection. The user priority 835 may be used to determine which
user a region should be assigned to if multiple users attempt to
edit the same region. In one embodiment, a higher priority user can
assume control of an editing region assigned to a lower priority
user. The layer indicator 836 may indicate the layer in which the
user is currently assigning users to editing regions.
[0093] FIG. 9 is a flowchart diagram of a feature assignment method
900. As depicted, the feature assignment method 900 includes
displaying 910 a feature tree, displaying 920 a list of users,
enabling 930 a user to select and lock a feature, display 940 a
locked status, blocking 950 other users, enabling 960 a specified
user to edit the selected feature and enabling 970 release of the
feature lock. The method 900 may facilitate peer-to-peer
arbitrated, or administrator controlled, multi-user CAx
editing.
[0094] Displaying 910 a feature tree may include displaying a set
of nodes, for example in a tree structure, that correspond to
editable features of an engineering object. The feature tree may be
essentially a graphically and hierarchically displayed editor that
facilitates structured display and editing of geometries and
associated features. Displaying 920 a list of users may include
presenting a list of collaborative users that may be assigned to
features. Enabling 930 a user to select and lock a feature may
include specifying or assigning a user to the feature. In one
embodiment, if a feature is locked for use by another user, it may
be reserved for future use by the specified user.
[0095] Display 940 a locked status may include indicating on, or
close to, a node corresponding to the selected feature, which user
is currently assigned to the selected feature. The currently
assigned user may be the specified user or a user that was
previously assigned to the selected feature who has not released
the selected feature for editing by others.
[0096] Blocking 950 other users may include preventing others from
editing the selected feature and/or vacating changes made by other
users while the feature is locked for use by the specified user.
Enabling 960 the specified user may include allowing the specified
user to edit the selected feature. Enabling 970 release of the
feature lock may include allowing the user or the specified user to
release the feature lock while blocking other users from releasing
the feature lock.
[0097] FIG. 10 is a graphical and textual depiction of one example
of a feature assignment user interface 1000 that may be used in
conjunction with the feature assignment method 900 of the claimed
invention. As depicted, the feature assignment user interface 1000
includes a user list 1010, an editing region feature list 1020, a
feature status display 1030, and a feature editor 1040. The feature
assignment user interface 1000 facilitates controlling
collaborative user access and editing of features associated with
editing regions in a design space for electronic models of
engineering objects.
[0098] The user list 1010 may include user interface controls for
identifying and selecting users 1012 to be assigned access to
features associated with editing regions. Controls for displaying
the user list 1010 may include scrolling lists, drop-down lists,
tree view controls, hierarchical outlines, or the like.
[0099] The editing region feature list 1020 may include user
interface controls for inspecting and selecting editing regions in
a design space to facilitate assignment of users to editable
features associated with a selected editing region. In the depicted
embodiment, the editing region feature list may comprise an
expanding hierarchical outline with a main assembly list 1022, a
subassembly list 1024, and a feature list 1026. Relationships
between main assemblies, subassemblies, and related features are
represented by levels in the expanding hierarchy. Other embodiments
may include drop-down lists, tree view controls, or the like.
[0100] The feature status display 1030 may include icons or other
representations, such as text identifiers, indicating the status of
editing regions and associated features. Status representations may
indicate user access to editing regions or features, the identity
of users currently assigned access or currently modifying editing
regions or features, user permission to browse editing regions to
which the user has not been assigned, or the like. The depicted
embodiment includes status icons 1032, indicating locking,
selection, and access status.
[0101] The feature editor 1040 facilitates editing of features
associated with editing regions, and may include a wide range of
editing tools and controls, depending on the nature of the feature
data. As depicted, controls may be as simple as checkboxes and text
fields. Other controls may include radio buttons, scrolling lists,
drop-down lists, combo boxes, sliders, spinners, or the like. In
other embodiments, the feature editing region may invoke graphical
editing tools for graphically editing an editable feature, or text
editing tools for creating and editing design notes associated with
an editing region.
[0102] FIG. 11 is a flowchart of a feature constraint method 1100.
As depicted, the feature constraint method 1100 includes displaying
1110 a feature tree, enabling 1120 a user to select a feature,
enabling 1130 the user to specify editing constraints, displaying
1140 a locked status, enabling 1150 others to modify the
constrained feature. The method 1100 may facilitate synchronous or
asynchronous collaborative editing of features of an engineering
object.
[0103] Displaying 1110 a feature tree may include displaying a set
of nodes that correspond to editable features of an engineering
object. Embodiments may vary according to the organization of the
feature tree display. While the features of an engineering object
decomposed into editing regions, geometries and associated features
may typically be represented in a tree structure display
corresponding to structures in a CAx database, one of skill in the
art will recognize the advantages of various hierarchical and
non-hierarchical display structures, according to the quantity and
complexity of data to be displayed, data types of the editable
features, and the tools that may be used to modify the editable
features.
[0104] Enabling 1120 a user to select a feature may include
providing user interface elements to facilitate searching or
browsing the feature tree for the desired editable feature, and
selecting the feature for editing. In one embodiment, the user may
be presented only with editable features to which the user has been
assigned. In another embodiment, selecting an editable feature
initiates assignment of the selected feature to the user and
locking the feature from modification by other users.
[0105] Enabling 1130 the user to specify editing constraints may
include providing user interface elements for assigning and
modifying constraints on an editable feature. Various user
interface controls and editing tools may be selected according to
the data type of the feature to be constrained.
[0106] Displaying 1140 a locked status may include displaying an
icon; changing the color, shading, or background of a region of a
graphical display; displaying a warning message, or the like. In
one embodiment, the locked or unlocked status of features are
included in the graphical or textual display of the feature data.
In another embodiment, the lock status is displayed when queried by
the user or when the user attempts to edit a locked feature.
[0107] Enabling 1150 others to modify the constrained feature may
include providing user interface controls that limit the range or
number of settings available to users. For example, radio buttons
and drop-down lists limit the number of available settings a user
may select. In other embodiments, enabling others to modify
features according to specified constraints may include invoking
data validity checking functions. Such functions may be implemented
as custom-developed routines, or as functions provided by user
interface development environments. For example, many database or
web-based interfaces include a facility to implement data validity
checking functions associated with user interface controls using
Visual Basic or Javascript.
[0108] FIG. 12 is a graphical and textual depiction of one example
of a collaborative feature constraint user interface 1200 that is
consistent with embodiments of the claimed invention. As depicted,
the collaborative feature constraint user interface 1200 includes a
feature tree 1210, a feature constraint editor 1220, and a feature
status display 1230. The collaborative feature constraint user
interface 1200 facilitates specification of constraints on editable
features for collaborative user editing of electronic models of
engineering objects, and may be used in conjunction with the
feature constraint method 1100.
[0109] The feature tree 1210 may include user interface controls
for inspecting and selecting editable features associated with an
editing region. As depicted, the feature tree may comprise a pop-up
list for selecting an editing region. Other embodiments may include
drop-down lists, tree view controls, or the like.
[0110] The feature constraint editor 1220 provides user interface
controls for assigning and modifying constraints on an editable
feature. As depicted, the feature constraint editor may comprise
controls such as checkboxes and text fields. Other controls may be
used as appropriate for the feature's data type, for example, radio
buttons, scrolling lists, drop-down lists, combo boxes, or the
like. In other embodiments, the feature constraint editor may
invoke graphical editing tools for graphically specifying
constraints on an editable feature.
[0111] The feature status display 1230 may include icons or other
representations, such as text identifiers, indicating the status of
features. Status representations may indicate user access to
editable features, the identity of users currently assigned access
or currently modifying editable features, user permission to browse
features to which the user has not been assigned, or the like. The
depicted embodiment includes status icons 1232 indicating locking,
selection, and access status, and a warning dialog 1234, indicating
that the user has attempted to edit a feature not assigned to the
user.
[0112] FIG. 13 is a graphical and textual depiction of one example
of a collaborative CAx user interface 1300 that is consistent with
one or more embodiments of the claimed invention. As depicted, the
user interface 1300 includes a graphical rendering 1310 with
editing regions 1320 and a concurrent user list 1330. The user
interface 1300 facilitates collaborative user editing of electronic
models of engineering objects.
[0113] The graphical rendering 1310 provides a graphical rendering
of an engineering object and/or layer associated therewith. The
graphical rendering may be a 2D or 3D rendering from a variety of
perspectives that facilitates editing. In the depicted embodiment,
the graphical rendering includes a perspective CAD rendering 1310a
and a cross-sectional analysis rendering 1310b for a region
assigned to the user of the interface 1300 (i.e. `Joe`).
[0114] The editing regions 1320 may be demarcated with boundaries
1322 and marked with user identifiers 1324 that indicate generally
the extents of the region and which user the region has been
assigned to. In the depicted embodiment, a layer selector 1312
(e.g. a drop-down list) enables a collaborative user to select the
layer that is to be edited or viewed for an assigned editing
region. Software tools that are specific to the selected layer (not
shown) may be made available or activated on the user interface
1300 in response to layer selection.
[0115] The concurrent user list 1330 may provide a variety of
information relative to collaborative editing such as user names
1331 and locations 1332, a region name 1333, a user priority 1334,
a region status 1335, a layer indicator 1336, and a channel
indicator/selector 1337. The user names 1331 may correspond to a
particular user identifier 1324. The location 1332 may indicate the
physical location of the user and thereby enhance coordination and
communication.
[0116] The region name 1333 may be derived from information within
the electronic model or specified by a user upon assignment or
selection. The user priority 1334 may be used to determine which
user a region should be assigned to if multiple users attempt to
edit the same region. In one embodiment, a higher priority user can
assume control of an editing region assigned to a lower priority
user. The region status 1335 may indicate the status of editing or
analysis for the region such as a `pending` indicator 1335a and a
`completed` indicator 1335b. The layer indicator 1336 may indicate
the layer that the user is currently editing. The channel
indicator/selector 1337 may provide a visual indication of which
communication channels are available for communication with each
user and enable selection of particular channels for use in
communicating with one or more users.
[0117] FIG. 14 is a flowchart diagram of a multi-user finite
analysis method 1400 that is consistent with one or more
embodiments of the claimed invention. As depicted, the multi-user
finite analysis method 1400 includes obtaining (1410) an electronic
model, decomposing (1420) the model into editing regions,
decomposing (1430) analysis related editing into tasks, assigning
(1440) tasks and associated editing regions to selected users,
testing (1450) whether a user has finished a task, testing (1460)
whether additional tasks remain for an editing region, and
conducting (1470) finite analysis on one or more editing regions.
The multi-user finite analysis method 1400 may be conducted in
conjunction with the collaborative CAx editing system 200 or the
like.
[0118] Obtaining (1410) an electronic model may include importing a
CAD model or the like into an analysis editing tool. The CAD model
may define a number of geometries and associated attributes
(features). Decomposing (1420) the model into editing regions may
include defining a partitioning constraint such as a partitioning
surface.
[0119] Decomposing (1430) analysis related editing into tasks may
include enabling a user to define a set of tasks to be completed on
the editing regions. Assigning (1440) tasks and associated editing
regions to selected users may include providing a user interface
that enables a user to assign tasks for particular editing regions
to selected users.
[0120] Testing (1450) whether a user has finished a task may
include waiting for a user to indicate that a task is finished for
a particular editing region. The user may indicate that a task is
finished by clicking on an interface control (not shown). Testing
(1460) whether additional tasks remain for an editing region may
include accessing a task scheduling table (e.g. see FIG. 15a) to
determine if a subsequent task remains for the particular editing
region. Conducting (1470) finite analysis on one or more editing
regions may include providing a CAD model, a meshing model, and
analysis related parameters to an analysis server for
processing.
[0121] FIG. 15a is a graphical and textual depiction of one example
of a finite analysis task assignment interface 1500. As depicted,
the finite analysis task assignment interface 1500 includes one or
more task designators 1510, region designators 1520, resource
selectors 1530, and resource indicators 1540. The assignment
interface 1500 enables an authorized user such as a project manager
to make assignments related to finite analysis and pre-analysis
editing on selected regions of an electronic model of an
engineering object and thereby coordinated and concurrent analysis
and pre-analysis of electronic models.
[0122] With regard to making assignments with the interface 1500,
the role, experience and capability of each user may determine
which regions he/she has access to. For example, each user may be
authorized for particular tasks and/or particular regions based on
their capabilities and experience. Therefore, the users available
for selection with each resource selector 1530 may be limited to
users that are qualified for both the task and the region
associated with the table entry in the interface 1500. In such a
manner, assignments may be limited to reasonable choices.
[0123] FIG. 15b is a graphical and textual depiction of one example
of a finite analysis task status interface 1550. In addition to the
task designators 1510 and region designators 1520, the depicted
interface 1550 includes one or more status selectors 1560 and
status indicators 1570. The task status interface 1550 enables
users to view and change the status of finite analysis and
pre-analysis tasks. In one embodiment, the assigned user is
displayed along with the status of the task.
[0124] FIGS. 16a-18a, and 16b-18b, focus on specific examples of
user assigned and executed tasks in conjunction with the multi-user
finite analysis method 1400.
[0125] FIGS. 16a and 16b are respective before and after
illustrations of a CAD cleanup task performed by a collaborative
user. A user may be assigned a CAD object 1600 that has a number of
features 1610 that are extraneous to analysis. The user may remove
the features 1610 to provide an analysis object 1650. Due to the
removal of the features 1610, the analysis object 1650 may require
fewer analysis grid points that the original CAD object 1600.
[0126] FIGS. 17a and 17b are respective before and during
illustrations of a meshing editing task performed by a user. A user
may be assigned a meshed CAD object 1700 that includes manually
entered mesh points 1710a and generated mesh points 1710b. The user
may edit the analysis mesh by moving, deleting, or adding the mesh
points 1710. In the depicted embodiment, a user has selected and is
moving a particular mesh point 1710b resulting in a moved mesh
point 1720.
[0127] FIGS. 18a and 18b are respective before and after
illustrations of a load definition task performed by a user. A user
may be assigned a meshed CAD object 1800 and indicate, via editing
controls (not shown), loads and boundary conditions for the object.
In the depicted embodiment, the meshed CAD object 1800 is a piston
rod that includes one or more boundary conditions 1810 specified by
the user. Subsequently, the user generates the meshed CAD object
1850 by defining one or more loads 1820.
[0128] One of skill in the art will appreciate that the means and
methods disclosed herein can significantly improve the efficiency
of finite analysis and pre-analysis processing--particularly for
large scale projects such as cars, bridges, airplanes and
buildings. One of skill in the art will also appreciate that the
various elements of the collaborative user interfaces, methods,
apparatuses and systems disclosed herein function cooperatively to
facilitate productive collaborative editing and finite analysis of
electronic models of engineering objects.
[0129] The proceeding depiction of the collaborative finite
analysis and other inventive elements described herein are intended
to be illustrative rather than definitive. Similarly, the claimed
invention may be embodied in other specific forms without departing
from its spirit or essential characteristics. The described
embodiments are to be considered in all respects only as
illustrative and not restrictive. The scope of the invention is,
therefore, indicated by the appended claims rather than by the
foregoing description. All changes which come within the meaning
and range of equivalency of the claims are to be embraced within
their scope.
* * * * *