U.S. patent application number 10/675809 was filed with the patent office on 2005-03-31 for knowledge management system for computer-aided design modeling.
Invention is credited to Mattern, Robert J., Smith, Gregory J., Vredenburgh, David W..
Application Number | 20050071135 10/675809 |
Document ID | / |
Family ID | 34377277 |
Filed Date | 2005-03-31 |
United States Patent
Application |
20050071135 |
Kind Code |
A1 |
Vredenburgh, David W. ; et
al. |
March 31, 2005 |
Knowledge management system for computer-aided design modeling
Abstract
A knowledge management system captures, stores, manages, and
applies rules for modeling geometric objects and related
non-geometric attributes. The knowledge management system controls
a computer-aided design system for modeling a geometric structure.
The knowledge management system includes a knowledge management
application in communication with the computer-aided design system
through an application program interface. The knowledge management
system also includes a central database managed by a knowledge
storage application for maintaining rules and other related
information. The knowledge management system also includes a
knowledge acquisition application for generating rule programs for
storage in the central database. The rules can relate to geometric
and non-geometric attributes of the model.
Inventors: |
Vredenburgh, David W.;
(Wenham, MA) ; Smith, Gregory J.; (Lyndhurst,
OH) ; Mattern, Robert J.; (Akron, OH) |
Correspondence
Address: |
BROMBERG & SUNSTEIN LLP
125 SUMMER STREET
BOSTON
MA
02110-1618
US
|
Family ID: |
34377277 |
Appl. No.: |
10/675809 |
Filed: |
September 30, 2003 |
Current U.S.
Class: |
703/1 ; 345/419;
700/98; 703/6 |
Current CPC
Class: |
G06T 19/00 20130101;
G06N 5/02 20130101; G06F 2111/04 20200101; G06F 30/13 20200101 |
Class at
Publication: |
703/001 ;
700/098; 703/006; 345/419 |
International
Class: |
G06T 015/00; G06F
019/00; G06G 007/48; G06F 017/50 |
Claims
What is claimed is:
1. A computer-aided modeling system comprising: a knowledge
management system for managing a set of modeling rules; and a
computer-aided design system controlled by the knowledge management
system, wherein the knowledge management system generates
instructions for modeling a geometric structure based on the set of
modeling rules and communicates the instructions to the
computer-aided design system for generating a model of the
geometric structure.
2. A computer-aided modeling system according to claim 1, wherein
the knowledge management system comprises a knowledge management
application in communication with the computer-aided design system
through an application program interface of the computer-aided
design system.
3. A computer-aided modeling system according to claim 2, wherein
the knowledge management system further comprises a knowledge
storage application in communication with the knowledge management
application for storing the set of rules in a central database and
communicating the set of rules to the knowledge management
application.
4. A computer-aided modeling system according to claim 3, wherein
the knowledge management system further comprises a knowledge
acquisition application in communication with the knowledge storage
application for generating the set of rules and communication the
set of rules to the knowledge storage application for storage in
the central database.
5. A computer-aided modeling system according to claim 1, further
comprising a graphical user interface, wherein the knowledge
management system produces a graphical display on the graphical
user interface, the graphical display comprising a first portion
including information from the knowledge management system and a
second portion including information from the computer-aided design
system.
6. A computer-aided modeling system according to claim 5, wherein
the second portion includes a display window generated by the
computer-aided design system.
7. A computer-aided modeling system according to claim 6, wherein
the display window includes a graphical representation of the
geometric structure.
8. A computer-aided modeling system according to claim 7, wherein
the display window further includes controls for manipulating the
graphical representation of the geometric structure.
9. A computer-aided modeling system according to claim 1, wherein
the set of rules includes at least one rule relating to a
non-geometric attribute of the geometric structure.
10. A computer-aided modeling system according to claim 9, wherein
the at least one rule relating to a non-geometric attribute
includes a rule for determine a cost of the geometric
structure.
11. A computer-aided modeling system according to claim 9, wherein
the at least one rule relating to a non-geometric attribute
includes a rule for defining a process.
12. A computer-aided modeling system according to claim 1, wherein
the set of rules includes at least one rule relating to a class
having a plurality of geometric structures.
13. A computer-aided modeling system according to claim 1, wherein
the set of rules includes at least one rule relating to a geometric
structure defined in the computer-aided design system.
14. A computer-aided modeling system according to claim 1, wherein
the computer-aided design system comprises a three-dimensional
computer-aided design system.
15. A computer-aided modeling system according to claim 14, wherein
the three-dimensional computer-aided design system is
SOLIDWORKS.TM..
16. A computer-aided modeling system according to claim 14, wherein
the computer-aided design system further comprises a
two-dimensional computer-aided design system.
17. A computer-aided modeling system according to claim 16, wherein
the two-dimensional computer-aided design system is VISIO.TM..
18. A method for computer-aided design modeling, the method
comprising: generating instructions for modeling a geometric
structure based on a set of modeling rules; and communicating the
instructions to a computer-aided design system for generating a
model of the geometric structure.
19. A method according to claim 18, wherein generating instructions
for modeling a geometric structure based on a set of modeling rules
comprises obtaining the set of modeling rules from a central
database over a communication network.
20. A method according to claim 18, wherein the computer-aided
design system comprises an application program interface, and
wherein communicating the instructions to a computer-aided design
system comprises communicating the instructions to the
computer-aided design system through the application program
interface.
21. A method according to claim 18, further comprising: producing a
graphical display on a graphical user interface, the graphical
display comprising a first portion including information relating
to the set of modeling rules and a second portion including
information from the computer-aided design system.
22. A method according to claim 21, wherein producing a graphical
display on a graphical user interface comprises: directing a window
display generated by the computer-aided design system to be
displayed on the graphical user interface.
23. A method according to claim 22, wherein the display window
includes a graphical representation of the geometric structure.
24. A method according to claim 23, wherein the display window
further includes controls for manipulating the graphical
representation of the geometric structure.
25. A method according to claim 18, wherein the set of rules
includes at least one rule relating to a non-geometric attribute of
the geometric structure.
26. A method according to claim 25, wherein the at least one rule
relating to a non-geometric attribute includes a rule for determine
a cost of the geometric structure.
27. A method according to claim 25, wherein the at least one rule
relating to a non-geometric attribute includes a rule for defining
a process.
28. A method according to claim 18, wherein the set of rules
includes at least one rule relating to a class having a plurality
of geometric structures.
29. A method according to claim 18, wherein the set of rules
includes at least one rule relating to a geometric structure
defined in the computer-aided design system.
30. A method according to claim 18, wherein the computer-aided
design system comprises a three-dimensional computer-aided design
system.
31. A method according to claim 30, wherein the three-dimensional
computer-aided design system is SOLIDWORKS.TM..
32. A method according to claim 30, wherein the computer-aided
design system further comprises a two-dimensional computer-aided
design system.
33. A method according to claim 32, wherein the two-dimensional
computer-aided design system is VISIO.TM..
34. Apparatus for computer-aided design modeling, the apparatus
comprising: a design modeler for generating instructions for
modeling a geometric structure based on a set of modeling rules;
and an interface from the design modeler to a computer-aided design
system for communicating the instructions to the computer-aided
design system for generating a model of the geometric
structure.
35. Apparatus according to claim 34, further comprising an
interface from the design modeler to a central database over a
communication network for obtaining the set of modeling rules from
the central database.
36. Apparatus according to claim 34, wherein the computer-aided
design system comprises an application program interface, and
wherein the interface from the design modeler to a computer-aided
design system complies with the application program interface.
37. Apparatus according to claim 34, further comprising a graphical
user interface, wherein the design modeler produces a graphical
display on the graphical user interface, the graphical display
comprising a first portion including information from the design
modeler and a second portion including information from the
computer-aided design system.
38. Apparatus according to claim 37, wherein the design modeler
directs a window display generated by the computer-aided design
system to be displayed on the graphical user interface.
39. Apparatus according to claim 38, wherein the display window
includes a graphical representation of the geometric structure.
40. Apparatus according to claim 39, wherein the display window
further includes controls for manipulating the graphical
representation of the geometric structure.
41. Apparatus according to claim 34, wherein the set of rules
includes at least one rule relating to a non-geometric attribute of
the geometric structure.
42. Apparatus according to claim 41, wherein the at least one rule
relating to a non-geometric attribute includes a rule for determine
a cost of the geometric structure.
43. Apparatus according to claim 41, wherein the at least one rule
relating to a non-geometric attribute includes a rule for defining
a process.
44. Apparatus according to claim 34, wherein the set of rules
includes at least one rule relating to a class having a plurality
of geometric structures.
45. Apparatus according to claim 34, wherein the set of rules
includes at least one rule relating to a geometric structure
defined in the computer-aided design system.
46. A method according to claim 34, wherein the computer-aided
design system comprises a three-dimensional computer-aided design
system.
47. Apparatus according to claim 46, wherein the three-dimensional
computer-aided design system is SOLIDWORKS.TM..
48. Apparatus according to claim 46, wherein the computer-aided
design system further comprises a two-dimensional computer-aided
design system.
49. Apparatus according to claim 48, wherein the two-dimensional
computer-aided design system is VISIO.TM..
50. Apparatus comprising a computer readable medium having embodied
therein a computer program for computer-aided design modeling, the
computer program comprising: means for generating instructions for
modeling a geometric structure based on a set of modeling rules;
and means for communicating the instructions to a computer-aided
design system for generating a model of the geometric
structure.
51. Apparatus according to claim 50, wherein the means for
generating instructions comprises means for obtaining the set of
modeling rules from a central database over a communication
network.
52. Apparatus according to claim 50, wherein the computer-aided
design system comprises an application program interface, and
wherein the means for communicating the instructions to the
computer-aided design system comprises means for communicating the
instructions to the computer-aided design system through the
application program interface.
53. Apparatus according to claim 50, further comprising: means for
producing a graphical display on a graphical user interface, the
graphical display comprising a first portion including information
relating to the set of modeling rules and a second portion
including information from the computer-aided design system.
54. Apparatus according to claim 53, wherein the means for
producing a graphical display on a graphical user interface
comprises: means for directing a window display generated by the
computer-aided design system to be displayed on the graphical user
interface.
55. Apparatus according to claim 54, wherein the display window
includes a graphical representation of the geometric structure.
56. Apparatus according to claim 55, wherein the display window
further includes controls for manipulating the graphical
representation of the geometric structure.
57. Apparatus according to claim 50, wherein the set of rules
includes at least one rule relating to a non-geometric attribute of
the geometric structure.
58. Apparatus according to claim 57, wherein the at least one rule
relating to a non-geometric attribute includes a rule for determine
a cost of the geometric structure.
59. Apparatus according to claim 57, wherein the at least one rule
relating to a non-geometric attribute includes a rule for defining
a process.
60. Apparatus according to claim 50, wherein the set of rules
includes at least one rule relating to a class having a plurality
of geometric structures.
61. Apparatus according to claim 50, wherein the set of rules
includes at least one rule relating to a geometric structure
defined in the computer-aided design system.
62. A method according to claim 50, wherein the computer-aided
design system comprises a three-dimensional computer-aided design
system.
63. Apparatus according to claim 62, wherein the three-dimensional
computer-aided design system is SOLIDWORKS.TM..
64. Apparatus according to claim 62, wherein the computer-aided
design system further comprises a two-dimensional computer-aided
design system.
65. Apparatus according to claim 64, wherein the two-dimensional
computer-aided design system is VISIO.TM..
66. Apparatus for computer-aided design modeling, the apparatus
comprising: means for generating instructions for modeling a
geometric structure based on a set of modeling rules; and means for
communicating the instructions to a computer-aided design system
for generating a model of the geometric structure.
Description
FIELD OF THE INVENTION
[0001] The present invention relates generally to computer-aided
design, and, more particularly, to a knowledge management system
for computer-aided design modeling.
BACKGROUND OF THE INVENTION
[0002] Computer-aided design (CAD) systems can be used to produce
and manipulate geometric models. CAD systems often include very
sophisticated algorithms for producing complex geometric models,
manipulating those models, and analyzing the components of those
models. For example, a CAD system may be used to model a complex
structure having a curved surface, view the structure at various
angles, and calculate the surface area of the curved surface and
the volume of the structure as a whole. It might be useful to know
the surface area of the curved surface, for example, to determine
how much paint would be needed to cover the surface. It might be
useful to know the volume of the structure, for example, to
determine how much material would be needed to produce the
structure.
[0003] While CAD systems can be very powerful modeling tools, they
are generally limited to geometric modeling. Thus, CAD systems
generally require the user to apply product design rules and
practices necessary to produce the model. For example, if the user
is required by an employer to use certain practices (such as, for
example, always using a certain size bolt to connect two
components), then the user must apply those practices to the model.
The user is typically also required to make successive changes to a
model when changing a component of the model. For example, each
time the user changes an attribute of a component (such as, for
example, the outside diameter of a component), the user may have to
change attributes of one or more other components that connect or
otherwise interact with that component, and the effects of these
changes may cascade through many components of the model. The user
is typically also required to handle non-geometric attributes of
the model (such as, for example, component pricing and
manufacturing processes). As a result of these limitations, CAD
systems can be difficult to use, particularly for casual CAD users
(such as engineers, architects, or managerial staff) who may not be
proficient with the CAD system but often need to make modifications
to drawings or models on an as-needed basis.
[0004] Knowledge-based engineering (KBE) attempts to combine some
level of knowledge management with design automation. Knowledge
management typically includes such things as best practices,
lessons learned (e.g., from earlier models), common practices
(e.g., industry standards, company policies), product design rules,
and quality metrics. Knowledge management might be applied to
design automation, for example, to reduce the number of parts a
company needs to order (e.g., by reusing parts from one model in
another model), reduce design time, reduce product cost, and
produce higher quality and reliability. KBE functionality is
typically implemented within a CAD system or as an add-on to a CAD
system (e.g., as a plug-in) so as to provide the CAD system with
additional knowledge management capabilities.
[0005] CAD systems are often used in conjunction with
computer-aided engineering (CAE) analysis tools for performing
advanced model analysis. CAD systems are also often used in
conjunction with product document management (PDM) tools for
generating and maintaining product documentation. These CAE and PDM
tools can be implemented as stand-alone applications or as add-ons
to a CAD system. The KBE functionality may interact with the CAE
and PDM tools to gather or provide information.
SUMMARY OF THE INVENTION
[0006] In various embodiments of the present invention, a knowledge
management system captures, stores, manages, and applies rules for
modeling geometric objects and related non-geometric attributes.
The knowledge management system controls a computer-aided design
system for modeling a geometric structure, typically through an
application program interface of the computer-aided design system.
The knowledge management system typically includes a knowledge
management application in communication with the computer-aided
design system through an application program interface. The
knowledge management system typically also includes a central
database managed by a knowledge storage application for maintaining
rules and other related information. The knowledge management
system typically also includes a knowledge acquisition application
for generating rule programs for storage in the central
database.
[0007] Rule programs are generated by the knowledge management
system based on information that can be provided by a user,
imported from the computer-aided design system, or extracted from a
product document management application. The rules can relate to
both geometric and non-geometric attributes of the model.
Non-geometric attributes can be dependent on geometric attributes.
Geometric structures can be modeled based on rules relating to
non-geometric attributes.
[0008] In certain embodiments of the present invention there is
provided a computer-aided modeling system includes a knowledge
management system for managing a set of modeling rules and a
computer-aided design system controlled by the knowledge management
system. The knowledge management system generates instructions for
modeling a geometric structure based on the set of modeling rules
and communicates the instructions to the computer-aided design
system for generating a model of the geometric structure.
[0009] The knowledge management system can include a knowledge
management application in communication with the computer-aided
design system through an application program interface of the
computer-aided design system. The knowledge management system can
also include a knowledge storage application in communication with
the knowledge management application for storing the set of rules
in a central database and communicating the set of rules to the
knowledge management application. The knowledge management system
can also include a knowledge acquisition application in
communication with the knowledge storage application for generating
the set of rules and communication the set of rules to the
knowledge storage application for storage in the central database.
The knowledge management system can produce a graphical display on
a graphical user interface, including a first portion including
information from the knowledge management system and a second
portion including information from the computer-aided design system
(such as a display window including a graphical representation of
the geometric structure, with or without controls for manipulating
the graphical representation).
[0010] In other embodiments of the present invention there is
provided a method for computer-aided design modeling involves
generating instructions for modeling a geometric structure based on
a set of modeling rules and communicating the instructions to a
computer-aided design system for generating a model of the
geometric structure. In certain embodiments of the present
invention, the set of rules are obtained from a central database
over a communication network. The computer-aided design system
typically includes an application program interface, and the
instructions are typically communicated to the computer-aided
design system through the application program interface.
[0011] The method can also involve producing a graphical display on
a graphical user interface, including a first portion including
information relating to the set of modeling rules and a second
portion including information from the computer-aided design
system. This may involve directing a window display generated by
the computer-aided design system to be displayed on the graphical
user interface. The display window can include a graphical
representation of the geometric structure, and may also include
controls for manipulating the graphical representation of the
geometric structure.
[0012] In other embodiments of the present invention there is
provided apparatus for computer-aided design modeling, the
apparatus includes a design modeler for generating instructions for
modeling a geometric structure based on a set of modeling rules and
an interface from the design modeler to a computer-aided design
system for communicating the instructions to the computer-aided
design system for generating a model of the geometric structure.
The apparatus typically also includes an interface from the design
modeler to a central database over a communication network for
obtaining the set of modeling rules from the central database. The
computer-aided design system typically includes an application
program interface, and the interface from the design modeler to a
computer-aided design system typically complies with the
application program interface.
[0013] In certain embodiments of the present invention, the
apparatus includes a graphical user interface. The design modeler
can produce a graphical display on the graphical user interface,
including a first portion including information from the design
modeler and a second portion including information from the
computer-aided design system. This may involve the design modeler
directing a window display generated by the computer-aided design
system to be displayed on the graphical user interface. The display
window can include a graphical representation of the geometric
structure, and may also include controls for manipulating the
graphical representation of the geometric structure.
[0014] In still other embodiments of the present invention there is
provided a computer program for computer-aided design modeling can
be embodied in a computer readable medium. The computer program
includes means for generating instructions for modeling a geometric
structure based on a set of modeling rules and means for
communicating the instructions to a computer-aided design system
for generating a model of the geometric structure. In certain
embodiments of the present invention, the set of rules are obtained
from a central database over a communication network. The
computer-aided design system typically includes an application
program interface, and the instructions are typically communicated
to the computer-aided design system through the application program
interface.
[0015] The computer program typically includes means for producing
a graphical display on a graphical user interface, including a
first portion including information relating to the set of modeling
rules and a second portion including information from the
computer-aided design system. This may involve directing a window
display generated by the computer-aided design system to be
displayed on the graphical user interface. The display window can
include a graphical representation of the geometric structure, and
may also include controls for manipulating the graphical
representation of the geometric structure.
[0016] In other embodiments of the present invention there is
provided apparatus for computer-aided design modeling including
means for generating instructions for modeling a geometric
structure based on a set of modeling rules and means for
communicating the instructions to a computer-aided design system
for generating a model of the geometric structure.
[0017] In the various embodiments of the present invention, the set
of rules can include rules relating to both geometric and
non-geometric attributes. Rules relating to non-geometric
attributes can include, for example, a rule for determine a cost of
the geometric structure or a rule for defining a process. The set
of rules can include rules relating to a class having a plurality
of geometric structures. The set of rules can include rules
relating to geometric structures defined in the computer-aided
design system.
[0018] Typical embodiments include a three-dimensional
computer-aided design system controlled by a knowledge management
system, such as the SOLIDWORKS.TM. three-dimensional computer-aided
design system, and may additionally include a two-dimensional
computer-aided design system, such as the VISIO.TM. two-dimensional
computer-aided design system.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] In the accompanying drawings:
[0020] FIG. 1 is a block diagram showing an exemplary modeling
system in accordance with an embodiment of the present
invention;
[0021] FIG. 2 is a block diagram showing the relevant components of
the knowledge management system in accordance with an embodiment of
the present invention;
[0022] FIG. 3A is a block diagram showing relevant components of
the CAD system in accordance with an embodiment of the present
invention;
[0023] FIG. 3B is a block diagram showing the relevant components
of a CAD program in accordance with an embodiment of the present
invention;
[0024] FIG. 4 is a block diagram showing an exemplary
computer-aided modeling system in accordance with an embodiment of
the present invention;
[0025] FIG. 5 shows an exemplary user interface screenshot for
importing information from the CAD system relating to a mounting
assembly, such as might be generated by the knowledge management
application in accordance with an embodiment of the present
invention;
[0026] FIG. 6 shows an exemplary user interface screenshot for
defining a new geometric specification relating to the Mounting
part family, such as might be generated by the knowledge management
application in accordance with an embodiment of the present
invention;
[0027] FIG. 7 shows an exemplary user interface screenshot
displaying information upon entry of the name of a new CAD part
file, such as might be generated by the knowledge management
application in accordance with an embodiment of the present
invention;
[0028] FIG. 8 shows an exemplary user interface screenshot for
defining a geometry feature, such as might be generated by the
knowledge management application in accordance with an embodiment
of the present invention;
[0029] FIG. 9 shows an exemplary user interface screenshot showing
geometry features (properties) defined for the CAD part file, such
as might be generated by the knowledge management application in
accordance with an embodiment of the present invention;
[0030] FIG. 10 shows an exemplary user interface screenshot for
defining a mating, such as might be generated by the knowledge
management application in accordance with an embodiment of the
present invention;
[0031] FIG. 11 shows an exemplary user interface screenshot showing
mating definitions, such as might be generated by the knowledge
management application in accordance with an embodiment of the
present invention;
[0032] FIG. 12 shows an exemplary user interface screenshot showing
a rule for determining a fan area for the fan, such as might be
generated by the knowledge management application in accordance
with an embodiment of the present invention;
[0033] FIG. 13 shows an exemplary user interface screenshot
including an embedded graphical representation of a model generated
by the CAD system, such as might be generated by the knowledge
management application in accordance with an embodiment of the
present invention;
[0034] FIG. 14 shows a first exemplary user interface screenshot
including a sub-window generated by the CAD system, such as might
be generated by the knowledge management application in accordance
with an embodiment of the present invention;
[0035] FIG. 15 shows a second exemplary user interface screenshot
including a sub-window generated by the CAD system, such as might
be generated by the knowledge management application in accordance
with an embodiment of the present invention;
[0036] FIG. 16 shows a third exemplary user interface screenshot
including a full view window generated by the CAD system, such as
might be generated by the knowledge management application in
accordance with an embodiment of the present invention;
[0037] FIG. 17 shows an exemplary user interface screenshot
including a window generated by a two-dimensional CAD system, such
as might be generated by the knowledge management application in
accordance with an embodiment of the present invention;
[0038] FIG. 18 shows an exemplary user interface screenshot
including an analysis window, such as might be generated by the
knowledge management application in accordance with an embodiment
of the present invention;
[0039] FIG. 19 shows the relationship between the user (engineer),
knowledge management application, knowledge database, and the
integrated systems controlled by the knowledge management
application in accordance with an embodiment of the present
invention; and
[0040] FIG. 20 shows the relationship between the knowledge
management application and the integrated systems in greater
detail;
[0041] FIG. 21 is a logic flow diagram showing exemplary logic for
class-based rules in accordance with an embodiment of the present
invention; and
[0042] FIG. 22 is a logic flow diagram showing exemplary logic for
the knowledge management application in accordance with an
embodiment of the present invention.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
[0043] For the purpose of the present description, the attachments
thereto, and the accompanying claims, the following terms shall
have the indicated meanings unless the context otherwise
requires:
[0044] ActiveX Control--A reusable control written in Visual Basic
used to create custom user interfaces in nAct.
[0045] Application--In the context of a model, a unit of deployment
that contains one or more top-level parts and its components. In
some cases, top-level part families can reference components in
other applications.
[0046] Assembly--A grouping of parts and their subparts. An
assembly is the hierarchy of parts that make up something
meaningful to the engineers, such as a top-level part or a finished
good.
[0047] Calculated Value--The value that was calculated by the
formula that was entered into the rules database. The formula may
return a constant, a calculation based on other properties or a
value obtained from a customer database.
[0048] Check In/Check Out --
[0049] A project cannot be deleted if it contains line items that
are checked out to another user.
[0050] A line item cannot be deleted or edited if it is checked out
to another user.
[0051] A model cannot be edited if the line item is checked out to
another user.
[0052] When a user edits a model that is not checked out to anyone,
the corresponding line item automatically becomes checked out to
them.
[0053] Line items can be manually checked in or out by clicking the
Check In and Check Out buttons beneath the line item grid or by
clicking the corresponding options under the Line Item menu. While
editing a model automatically checks out a line item, the check in
process must always be done manually.
[0054] When a line item is checked out, Checked_Out_By column in
the LineItem table in the Project database is updated with the
user's username. When the line item is checked back in, the column
is set to null.
[0055] Anyone can edit a line item (or its model) if the line item
is not checked out to anyone.
[0056] Child Part Family--A family that inherits properties,
subparts and connections from another part family (template part
family).
[0057] Code Generation--The creation of rules into executable
source code for use in nAct during run-time. The generated code can
also be compiled into a dynamic link library (.DLL) using Visual
Basic.
[0058] Column--In an SQL table, the area in each row that stores
the data value for some attribute of the object modeled by the
table.
[0059] Compiled Mode--Editing models in nAct with rules that are
compiled into a DLL file using Microsoft Visual Basic 6.0. In a
typical embodiment of the invention, compiled rules cannot be seen
by the user and cannot be debugged at runtime. (See also Developer
Mode)
[0060] Component--A component is any part or sub-assembly within an
assembly.
[0061] Connection Collection--A conceptual or physical relationship
between two or more parts. This differs from a subpart collection
in that the two connected parts do not have a parent-child
relationship (such as a nut and a bolt).
[0062] Connection Constraint--The formula used to determine the
correct part or parts to be connected at run-time. There is
preferably never a connection constraint associated with a
connection specification where the same part family owns both.
[0063] Connection Point--A point in which two schematic shapes can
be connected directly or via wire.
[0064] Connection Spec--The definition of a relationship between
two parts at run-time (e.g. a hose and a valve). A connection
exists when one part in an assembly needs to reference the
properties of another part in an assembly and the user cannot or
prefers not to walk up and down the part/subpart hierarchy.
[0065] Constraint--A formula that indicates how a specification
should be computed in the design model.
[0066] Context--The current location of the part in the tree
defined by its parents, grandparents, etc. A part may be used in
more than one location in the tree, and each location is considered
a different context.
[0067] Custom Control--A customer-developed ActiveX Control written
in Microsoft Visual Basic 6.0 and compiled to an .OCX file. Custom
controls are used to create custom interfaces for process
steps.
[0068] Database--A collection of data arranged for ease and speed
of search and retrieval. A database also includes an engine which
accepts commands from the user to insert, update, delete and select
the data. Exemplary embodiments of the invention use Microsoft SQL
Server 2000 database to store its data.
[0069] Decache--Resetting values based on a dependency.
[0070] Dependency--A property or attribute that is used in the
calculation of another formula.
[0071] Design Time--Using nAct Expert to create part families and
specifications (properties, subparts, connections, database
constraints, geometry and schematics) and to write formulas for
rules. (See also Run Time)
[0072] Developer Mode--Editing models in nAct with rules running in
source code using Microsoft Visual Basic for Applications. The user
can see the actual formulas for the rules and can step through and
debug them at run time. (See also Compiled Mode)
[0073] Display Name--This is a property that is used to create a
formula-driven name that appears in the run-time application
instead of the part family pretty name. (Display Name can be placed
on any part family.)
[0074] Drawing--A Drawing is a 2D representation of a 3D part or
assembly.
[0075] Feature--A geometric attribute of a part (i.e. plane,
extrusion, sketch, cut, etc.) whose dimensions can be driven by
nAct properties within the model.
[0076] Follow Part Number--When this flag is set, all parts with
the same part number will share the user input value of its
properties, subparts or connections.
[0077] Frame--A component of a process step layout. Each layout
contains 1 to 4 frames. Each frame contains 1 of the following user
interface elements: dynamically generated form, CAD system, 2D
modeler, drawing, report or custom control.
[0078] Hierarchy--A logical tree structure that organizes the
members of a dimension such that each member has one parent member
and zero or more child members.
[0079] IIS--Microsoft Internet Information Services. IIS includes a
web server, SMTP (mail) services and FTP (file transfer protocol)
services. The RuleStream Enterprise Web tools must be installed on
an IIS server. IIS is a component of Microsoft Windows 2000 Server
and Microsoft Windows 2003 Server and can be installed from the
Windows CD.
[0080] Index--In a relational database, a database object that
provides fast access to data in the rows of a table, based on key
values. Indexes can also enforce uniqueness on the rows in a table.
SQL Server supports clustered and nonclustered indexes. The primary
key of a table is automatically indexed. In full-text search, a
full-text index stores information about significant words and
their location within a given column.
[0081] Input Value--A value that is entered by the user in nact
during run-time. This takes precedence over any calculated
values.
[0082] Kernel--The knowledge engine that executes rules. It
provides the base system functionality for managing the run-time
model.
[0083] Layout--The configuration of the user interface of the model
designer window in nAct. Each step in the selected process can have
its own unique layout. A layout consists of 1 to 4 frames, and each
frame can contain 1 of the following user interface elements:
dynamically generated form, CAD system, 2D modeler, drawing, report
or custom control.
[0084] Line Item--A top-level part that is associated with a
project. The line item has an associated top-level part family.
[0085] Local Constraint--A constraint owned the same part family as
the associated spec. This is the default formula.
[0086] Model--An actual design created using nact (the graphical
representation of a line item).
[0087] nAct--The client server tool used to create projects, line
items and models.
[0088] nAnswer--The web-based tool which allows users to query the
databases using English like query statements.
[0089] nExplore--The web-based tool used to view rules and
documentation.
[0090] nPlatform--The project and rules repository.
[0091] nQuality--The web-based tool for entering and reporting
quality data, scoring and risks.
[0092] Override--The action of a higher-level part within an
assembly determining the value for a subordinate part.
[0093] Owner Part Family--The part family that contains the
specification or constraint.
[0094] Parent Part Family--The part family that owns the subpart
collection of which the part is a member.
[0095] Part--An instance of a part family.
[0096] Part Family--The definition of a fundamental object in an
assembly. This may be a component or a finished good.
[0097] Process--A defined set of steps. Each top-level part family
can have 1 or more processes. The processes that will be used
during run time are determined by the line item definition.
[0098] Process Step--A defined workflow for editing a model during
run time. Each process step has a layout that defines its user
interface. Process steps are grouped in categories and have a
defined order within the process. Each process must have 1 or more
process steps.
[0099] Property Constraint--The formula used to determine the value
of a property.
[0100] Property Specification--The definition of the
characteristics of a part family (e.g. height, weight, length).
[0101] Release--A snapshot of a model and its values.
[0102] Row--In an SQL table, the collection of elements that form a
horizontal line in the table. Each row in the table represents a
single occurrence of the object modeled by the table and stores the
values for all the attributes of that object.
[0103] Run Time--Using the nAct Model Designer to edit a model
using defined part families, specs and rules. Users design models
in run time in Compiled Mode or Developer Mode. (See also Design
Time)
[0104] Schematic--A 2D representation, usually associated with
electrical components.
[0105] Score--A value assigned to rate the effectiveness of the
design.
[0106] Shape--A 2D object within a schematic diagram.
[0107] Specification--The constituent elements of a part family.
Specifications indicate that parts of that type always have certain
properties, subpart collections, or connection collections.
[0108] Step--(see Process Step)
[0109] Stored Procedure--A precompiled collection of Transact-SQL
statements stored under a name and processed as a unit.
[0110] Subpart Collection--A collection of component parts.
[0111] Subpart Link Constraint--The formulas used to determine
existence, type, quantity and/or names of parts within the
collection.
[0112] Subpart Link Spec--Provides the valid part families that can
become components at run-time.
[0113] Subscription--The ability of one part family to assume the
property, subpart or connection definitions and formulas of another
part family.
[0114] Table--A two-dimensional object, consisting of rows and
columns, used to store data in a relational database. Each table
stores information about one of the types of objects modeled by the
database.
[0115] Template Part Family--The part family from which a child
part family inherits its characteristics.
[0116] UDF (User Defined Fields)--Customizable columns on the
project table. There are four UDF columns available.
[0117] Unit--A unit of measure for a numeric property value. Like
units are grouped in unit categories. The unit category "Length"
may include units such as "feet", "meters", "inches" or
"millimeters".
[0118] VB--Microsoft Visual Basic 6.0. In exemplary embodiments of
the invention, Visual Basic is the language used to create custom
controls for use in process steps and to create compiled versions
of rules (application DLLs).
[0119] VBA--Microsoft Visual Basic for Applications.
[0120] View--A database object that can be referenced the same way
as a table in SQL statements. Views are defined using a SELECT
statement and are analogous to an object that contains the result
set of this statement.
[0121] Wire--A line or connector used when two connected objects
are not coincidental.
[0122] In embodiments of the present invention, a knowledge
management system captures, stores, manages, and applies rules for
modeling geometric objects and related non-geometric attributes.
The knowledge management system preferably supports rules relating
to geometric attributes that can be represented and manipulated by
a CAD system as well as rules relating to various other attributes
that generally cannot be represented and manipulated by the CAD
system, such as certain "negative" geometric attributes (e.g., a
specification for producing a hole in a component or for removing
material from a component so as to form a feature of that
component), certain geometry-based attributes that are not modeled
as physical features of a structure or assembly, and non-geometric
attributes (e.g., pricing, processes, component relationships,
component classes, user intentions, and abstractions). The rules
are typically stored in a central database so that the rules can be
manipulated independently of any modeling. The rules can be derived
from various sources, including general engineering principles,
user-provided information, and information obtained from a PDM
system. The knowledge management system can tracks rule changes
over time, and can apply a particular version of the rules to a
model. The knowledge management system defines the components and
parameters for a particular model based on the rules being applied.
The knowledge management system can incorporate predefined
components (such as components created in a CAD system) or
dynamically defined components into the model.
[0123] The knowledge management system is generally independent of
the CAD system, although the knowledge management system can
interface with a CAD system for, among other things,
importing/integrating component specifications from the CAD system
for use in modeling, instructing the CAD system to produce a
geometric model incorporating the components and parameters defined
by the knowledge management system, and obtaining geometric
information relating to a model (e.g., sizes, surface areas,
volumes) for use by the knowledge management system (e.g., for
computing the cost of a component based on its volume according to
pricing rules provided by a user). A geometric model produced by
the CAD system can be viewed and manipulated as usual using the CAD
system, although it is preferable for any and all changes to the
model to be coordinated through the knowledge management system so
that the appropriate rules can be applied to the changes.
[0124] In certain embodiments of the present invention, the
knowledge management system interfaces with the CAD system through
an application program interface (API) of the CAD system.
Specifically, the CAD system includes an API through which certain
functions of the CAD system can be performed. The CAD system API is
typically used for such things as macros (i.e., programs that
perform a series of function steps for the user) and add-ons (i.e.,
programs that add functionality to the CAD system). In embodiments
of the present invention, however, the knowledge management system
uses the API to control the CAD system such that the CAD system
runs only when activated by the knowledge management system. The
knowledge management system typically activates the CAD system for
such things as displaying a model to the user and obtaining
geometric information relating to model components.
[0125] FIG. 1 is a block diagram showing an exemplary modeling
system 100 in accordance with an embodiment of the present
invention. Among other things, the modeling system 100 includes a
knowledge management system 110 in communication with a CAD system
120. The knowledge management system 110 controls the CAD system
120, specifically by generating instructions for modeling a
geometric structure based on a set of modeling rules and
communicating the instructions to the computer-aided design system
120 for generating a model of the geometric structure. The
knowledge management system 110 can also interface with a CAE
application 130 for analysis and with a PDM application 140 for
product document management.
[0126] FIG. 2 is a block diagram showing the relevant components of
the knowledge management system 110 in accordance with an
embodiment of the present invention. Among other things, the
knowledge management system 110 includes a knowledge acquisition
application 210 for capturing and generating rules, a knowledge
storage application 220 for storing rules and models in a central
database 240, and a knowledge management application 230 for
generating models based on the rules. Among other things, the
knowledge acquisition application 210 generates rule programs based
on information obtained from a user and communicates the rule
programs to the knowledge storage application 220 for storage in
the central database 240. The knowledge management application 230
obtains rule programs from the knowledge storage application 220
and applies the rule programs for building a model. The knowledge
management application 230 may communicate model information to the
knowledge storage application 220 for storage in the central
database 240.
[0127] More specifically, the knowledge acquisition application 210
captures modeling rules and generates rule programs for storage by
the knowledge storage application 220. The knowledge acquisition
application 210 interacts with a user through a user interface
through which the user enters information regarding components,
design processes, engineering and manufacturing rules, and customer
and marketing requirements. The knowledge acquisition application
210 generates rule programs from the user information, and sends
the rule programs to the knowledge storage application 220 for
storage. The knowledge acquisition application 210 allows rules to
be modified quickly and easily.
[0128] The knowledge storage application 220 stores modeling
information in a relational database, including, among other
things, rule programs generated by the knowledge acquisition
application 210 and models generated by the knowledge management
application 230. The knowledge storage application 220 also tracks
revision histories, design status, and user group security.
Multiple revisions of a rule can be stored so that a particular
version of a rule can be applied to a model while another version
of the rule is being created or modified. A design can be modeled
using an earlier version of a rule if desired.
[0129] The knowledge management application 230 applies rules to
create detailed computer models. The knowledge management
application 230 can model two-dimensional schematics or
three-dimensional geometries. The knowledge management application
230 can also model a bill of materials for the components of an
assembly. The knowledge management application 230 can
automatically update a previously completed model under revised or
new rules. In this way, models can be generated by manipulating the
rules through the knowledge management system rather than
manipulating the model itself through the computer-aided design
system.
[0130] FIG. 3A is a block diagram showing relevant components of
the CAD system 120 in accordance with an embodiment of the present
invention. Among other things, the CAD system 120 includes a 3D CAD
program 301, such as such as SOLIDWORKS.TM.from SolidWorks
Corporation, 300 Baker Avenue, Concord, Mass. 01742, and may also
include a 2D CAD program 302, such as VISIO.TM. from Microsoft
Corporation. Each of the CAD programs has its own API through which
it interacts with the knowledge management application. FIG. 3B is
a block diagram showing the relevant components of a CAD program,
such as the 3D CAD program 301 or the 2D CAD program 302, in
accordance with an embodiment of the present invention. Among other
things, the CAD program includes a CAD application 320 having an
API 310 through which certain functions of the CAD application 320
can be controlled. The interactions between the knowledge
management application and different CAD systems depend to a large
degree on the CAD system API. The SOLIDWORKS.TM. three-dimensional
CAD program has an internal macro/recording language and also
supports an application programming interface language that is
accessible through an OLE (Object Linking and Embedding) interface
with support for VISUAL BASIC.TM. and VISUAL C++.TM.. In an
exemplary embodiment of the present invention, the knowledge
management application is substantially reactive to the VISIO.TM.
two-dimensional CAD system, while the knowledge management
application actively controls the SOLIDWORKS.TM. three-dimensional
CAD system. Thus, support for each particular CAD system generally
requires some level of integration by the knowledge management
application to work with the specific functions and API of the CAD
program.
[0131] In certain embodiments of the present invention, the various
functions of the knowledge management system 110 are divided among
different devices that communicate over a communication network,
such as the public Internet or public or private intranets. In an
exemplary embodiment of the present invention, knowledge storage
functions reside in one or more storage servers that incorporate
the knowledge storage application 220 and central database 240,
while knowledge acquisition and management functions reside in user
workstations (such as personal computers) or terminals that
incorporate the knowledge acquisition application 210, the
knowledge management application 230, and the CAD system 120. The
user workstations or terminals typically include a user interface
for interacting with a user and a network interface for
communicating with the storage server over a communication
network.
[0132] FIG. 4 is a block diagram showing an exemplary
computer-aided modeling system in accordance with an embodiment of
the present invention. Among other things, the system 400 includes
one or more user workstations 410 in communication with one or more
storage servers 430 over a communication network 420. The
workstation 410 incorporates the knowledge acquisition application
210, the knowledge management application 230, and the CAD system
120, and also includes a user interface for interacting with the
user and a network interface for communicating over the
communication network 420 with the storage server(s) 430. The user
interface 411 is typically a graphical user interface that provides
for both displaying information to the user and receiving inputs
from the user. The storage server 430 incorporates the knowledge
storage application 220 and the central database 240, and also
includes a network interface 431 for communicating over the
communication network 420 with the user workstation(s) 410.
[0133] Within the user workstation 410, the knowledge acquisition
application 210 and the knowledge management application 230
interact with the user through the user interface 411, and also
interact with the knowledge storage application 220 in the storage
server 430 through the network interface 412 using a client-server
paradigm. The knowledge management application 230 also controls
the CAD system 120 through an API of the CAD system 120. The user
workstation 410 is typically a general-purpose computer, and the
knowledge acquisition application 210, the knowledge management
application 230, and the CAD system 120 are typically software
programs that run on the general-purpose computer.
[0134] Within the storage server 430, the knowledge storage
application 220 interacts with the central database 240 through a
database interface (not shown), and interacts with the knowledge
acquisition application 210 and the knowledge management
application 230 in the user workstation 410 through the network
interface 431. The storage server 430 is typically a
general-purpose computer, and the knowledge storage application 220
is typically a software program that runs on the general-purpose
computer. The central database 240 is typically a relational
database.
[0135] FIG. 19 shows the relationship between the user (engineer)
1910, knowledge management application 1920, knowledge database
1930, and the integrated systems 1940 controlled by the knowledge
management application 1920, including CAD system(s) and possibly
also a CAE application, a PDM application, and a component
databases. The knowledge management application 1920 extracts rules
for design automation from the knowledge database 1930. The
knowledge management application 1920 may also receive
specifications, rules, and other information relating to modeling.
A product control modeler element of the knowledge management
application 1920 interacts with the integrated applications as
necessary for modeling, analysis, product document management, and
component selection. Information generated by the knowledge
management application 1920, such as runtime rule authoring and
trend analysis, may be stored in the knowledge database 1930.
[0136] FIG. 20 shows the relationship between the knowledge
management application and the integrated systems in greater
detail. The knowledge management application 1920 interacts with
the CAD system 2010 for modeling such things as features, mating
conditions, surface area, volume, and mass properties. The
knowledge management application 1920 interacts with the CAE
analysis application 2020 for such things as stress, thermal,
kinematics, and loads analysis. The knowledge management
application 1920 interacts with the PDM application 2030 to
generate and utilize such things as files, structure, workflow, and
bill of materials (BOM). The knowledge management application 1920
interacts with component databases 2040 for such things as part
numbers, standards, inventory, and pricing.
[0137] In typical embodiments of the present invention, a model may
include multiple geometric components. Each component can be
associated with both geometric attributes and non-geometric
attributes. Rules can be established for defining relationships
between components without necessarily defining that actual
parameters of the relationship (such as, for example, a rule that a
fan blade assembly must mate with a motor shaft, without
necessarily defining the shape or size of the shaft which might
affect the type of mating). Components can be organized into
classes (such as, for example, three possible motors for a fan
assembly can be organized into a "motors" class), and rules can be
established for the class as a whole such that the rules are
applied to whatever class member is selected for inclusion in a
particular model (such as, for example, a generic rule that any of
the class of motors must mate with a fan blade component). Rules
can be established for selecting a particular member of a class for
a particular model (such as, for example, a rule for selecting a
particular motor based on the amount of power or the rotational
speed required for a model, or a rule for selecting the number of
fan blades for the fan blade component based on the volume of air
to be moved and other parameters such as the motor selected and the
diameter of the fan blade component). Rules relating to "negative"
attributes can be defined (such as, for example, a rule that a
motor frame must include a hole in a particular location for
bolting the motor frame to a chassis) and applied to a model
component as a library feature. Rules relating to various
non-geometric attributes can be established (such as, for example,
rules for deriving manufacturing processes based on the components
incorporated into a selected model, or rules for estimating
component, sub-assembly, product, and manufacturing costs).
[0138] One particular implementation of a knowledge management
application in accordance with an embodiment of the present
invention is described in Attachment I (consisting of numbered
pages 1-91) and in Attachment II (consisting of numbered pages
1-113), each of which is hereby incorporated herein by reference in
its entirety. Within these attachments, the knowledge management
system may be referred to generally as "Rulestream" or "Navion,"
the knowledge management application may be referred to as "nAct"
or "nAct Engineer," the knowledge acquisition application may be
referred to as "nAct Expert," and the knowledge storage application
may be referred to as "nPlatform." In Attachment II, edit rules
relating to "Geometry Specification" and "Geometry Constraint"
generally relate to the SOLIDWORKS.TM. three-dimensional CAD
system, while edit rules relating to "2DSchematic Specification"
generally relate to the VISIO.TM. two-dimensional CAD system.
[0139] As discussed above, the knowledge management application
controls the CAD system through a CAD system API. While the actual
CAD functions that can be performed through the API are
substantially limited by the API (and are subject to change by the
CAD system provider), the specific API functions used and the
manner in which the API functions are used are determined by the
knowledge management application for performing specific knowledge
management operations. In an exemplary embodiment of the present
invention, the knowledge management application controls the
SOLIDWORKS.TM. three-dimensional CAD system through its API. In
order to control the CAD system, the knowledge management
application typically performs such operations as starting
SOLIDWORKS.TM., opening a part file, opening an assembly file,
mating a component, deleting a mate, fixing a component, removing a
part or assembly, suppressing a component, hiding/showing a
component, suppressing a feature, inserting a library feature,
removing a library feature, setting a part dimension, setting an
assembly dimension, creating a component pattern, removing a
component pattern, creating a feature pattern, removing a point in
a sketch, removing a feature pattern, setting a custom property,
setting component color, and closing SOLIDWORKS.TM.. This is not
meant as an exhaustive list, and the knowledge management
application can perform other operations as needed. Exemplary API
calls and settings for performing the above operations in an
exemplary embodiment of the invention are described below.
[0140] Starting SOLIDWORKS.TM. may involve use of the following API
functions:
[0141] Set SW=New SldWorks.SldWorks
[0142] SW.UserControl=False
[0143] Set Assembly=SW.OpenDoc6(strFilename, swDocPART,
[0144] swOpenDocOptions_Silent, " ", lngErr, lngMess)
[0145] The following SOLIDWORKS.TM. settings may be used:
[0146] swMateAnimationSpeed=0
[0147] swLargeAsmModeAutoActivate=swResponseNever
[0148] swPerformanceAssemRebuildOnLoad=swResponseAlways
[0149] swLoadExternalReferences=swResponseNever
[0150] swAutoSaveInterval=0
[0151] swBackupCopiesPerDocument=0
[0152] swShowErrorsEveryRebuild=False
[0153] swMaximizeDocumentOnOpen=True
[0154] swSnapToPoints=False
[0155] swLargeAsmModeAutoLoadLightweight=False
[0156] swLargeAsmModeUpdateMassPropsOnSave=False
[0157] swLargeAsmModeAutoRecover=False
[0158] swAutoLoadPartsLightweight=False
[0159] swPerformanceVerifyOnRebuild=False
[0160] swEnablePerformanceEmail=False
[0161] swUseFolderSearchRules=False
[0162] swExtRefUpdateCompNames=True
[0163] swFeatureManagerEnsureVisible=False
[0164] Opening a part file typically involves opening the part
file, adding the part file as a component to a parent assembly,
closing the part file, and rebuilding the top level assembly. The
following API functions may be used:
[0165] Set objDoc=SW.OpenDoc6(strFilename, swDocPART,
swOpenDocOptions_Silent, " ", lngErr, lngMess)
[0166] Assembly.AddComponent2(strFilename, 0, 0, 0)
[0167] SW.CloseDoc objDoc.GetTitle
[0168] Assembly.EditRebuild3
[0169] Opening an assembly file typically involves opening the part
file, adding the part file as a component to a parent assembly,
closing the part file, and rebuilding the top level assembly. If
assembly dimensions are driven by the knowledge management
application, then all components are typically renamed to ensure
uniqueness. The following API functions may be used:
[0170] Set objDoc=SW.OpenDoc6(strFilename, swDocPART,
swOpenDocOptions_Silent, " ", lngErr, lngMess)
[0171] Set objconfiguration=objDoc.GetActiveConfigurationO
[0172] Set obj Component=objConfiguration.GetRootComponent( )
[0173] objComponent.GetChildren
[0174] Set objChildDoc=objChild.GetModelDoc objChildDoc.SaveAs4
strNewFileName swSaveAsCurrentVersion, swSaveAsOptions_Silent,
lngErr, lngWarnings
[0175] SWAssembly.AddComponent2(strFilename, 0, 0, 0)
[0176] SW.CloseDoc objDoc.GetTitle
[0177] SWAssembly.EditRebuild3
[0178] Mating a component typically involves putting the parent
assembly in "edit" mode, selecting the features to mate, adding the
mate, and rebuilding the assembly. The mate name is then found and
noted by the knowledge management application in the case where a
dependent property is changed and the mating is effected. The
following API functions may be used:
[0179] ObjParentComponent.Select False
[0180] Assembly.EditAssembly
[0181] Selecting Plane, Axis, or Point
[0182] Assembly.SelectByID strFeatureName, strFeatureType, 0, 0, 0
(also used, strFeatureName & "@," & strComponentPath, and
"Point1@" & strFeatureName) Selecting Face or Edge (loop
through Faces, or Faces and Edges to find name match)
[0183] objComponent.GetBody( ), objBody.GetFirstFaceo,
[0184] objBody.GetNextFace( ), objFace.GetEdges,
[0185] Assembly.GetEntityName(obj)
[0186] Assembly.AddMate lngMateType, lngAlignType, boolFlip,
dblDist, dblAngle
[0187] Assembly.EditRebuild3
[0188] Finding the Mate created (find the MateGroup, move to the
last SubFeature)
[0189] Assembly.FeatureByPositionReverse(i)
[0190] objFeature.GetTypeName="MateGroup"
[0191] objMateGroup.GetFirstSubFeature
[0192] objMate.GetNextSubFeatureO
[0193] Deleting a mate typically involves selecting the mate using
the parent assembly's model document and deleting the selection.
The following API functions may be used:
[0194] Assembly.SelectByID strMateName, "MATE", 0, 0, 0
[0195] Assembly.DeleteSelection False
[0196] Assembly.EditRebuild3
[0197] Fixing a component typically involves setting the component
transform, selecting the component, and fixing the component. The
following API functions may be used:
[0198] objComponent.GetXform
[0199] objComponent.SetXform (varXForm)
[0200] objComponent.Select False
[0201] Assembly.FixComponent
[0202] Assembly.EditRebuild3
[0203] Removing a part or assembly typically involves selecting the
parent assembly, putting the parent assembly in "edit" mode,
selecting the component, and deleting the selection. The following
API functions may be used:
[0204] objParentComp.Select False
[0205] Assembly.EditAssembly
[0206] objComponent.Select False
[0207] Assembly.DeleteSelection False
[0208] Assembly.ClearSelection
[0209] Assembly.EditAssembly
[0210] Assembly.EditRebuild3
[0211] Suppressing a component typically involves checking the
suppression state of the component and setting the suppression
state, if suppressing the document is saved. The following API
functions may be used:
[0212] objComponent.IsSuppressed
[0213] Set oModelDoc=objComponent.GetModelDoc
[0214] oModelDoc.Save3 swSaveAsOptions_Silent, lngErr,
lngwarnings
[0215] objComponent.Select False
[0216] Assembly.EditSuppress2 or Assembly.EditUnSuppress2
[0217] Assembly.EditRebuild3
[0218] Hiding or showing a component typically involves setting the
hidden state appropriately. The following API functions may be
used:
[0219] objComponent.IsHidden(False)
[0220] objComponent.Select False
[0221] Assembly.ShowComponent2, Assembly.HideComponent2
[0222] Assembly.EditRebuild3
[0223] Suppressing a feature typically involves traversing the
model documents to find the named feature and setting its
suppression state accordingly. The following API functions may be
used:
[0224] objModelDoc.FirstFeature
[0225] objFeature.Name( )
[0226] objFeature.GetNextFeature( )
[0227] objFeature.IsSuppressed
[0228] objFeature.SetSuppression 0
[0229] objFeature.SetSuppression 2
[0230] Inserting a library feature typically involves selecting the
component to receive the feature, putting the component in "edit"
mode, selecting the references required for insertion, and
inserting the library feature. The new feature and its sub-features
are typically renamed. The following API functions may be used:
[0231] objParentComponent.Select2 False, 0
[0232] Assembly.EditPart2 True, True, lngErr
[0233] obj.Select2 True, intMark (Traverse features and select for
Edges and Faces)
[0234] Assembly.AndSelectByMark(strFeatureName & "@" &
strComponentPath, strFeatureType, 0, 0, 0, intMark) (Plane, Point,
or Axis)
[0235] Assembly.InsertLibraryFeature(strFileName)
[0236] Assembly.SelectedFeatureProperties 0, 0, 0, 0, 0, 0, 0, 1,
0, strNewName)
[0237] objFeature.GetFirstSubFeature, subFeature.Name( ),
[0238] subFeature.GetNextFeature( )
[0239] Assembly.EditAssembly
[0240] Assembly.EditRebuild3
[0241] Removing a library feature typically involves selecting
component owning the feature, putting the component in "edit" mode,
selecting the feature, and deleting the feature using the context
of the top level assembly. The following API functions may be
used:
[0242] objComponent.Select2 False, 0
[0243] Assembly.EditPart2 True, True, lngErr
[0244] Assembly.ClearSelection
[0245] Assembly.SelectByID strFeatureName & "@" &
objComponentPath,
[0246] "BODYFEATURE", 0, 0, 0
[0247] Assembly.DeleteSelection False
[0248] Assembly.EditAssembly
[0249] Assembly.EditRebuild3
[0250] Setting a part dimension typically involves setting the
read-only status of the dimension to false, setting the system
value for the dimension, and resetting the read-only status of the
dimension to true (this is because all dimensions controlled by the
knowledge management application are preferably maintained as
read-only to prevent modification through the CAD system). A
dimension is typically references by a string (e.g. D1@Sketch1).
The following API functions may be used:
[0251] objDoc.Parameter(strDimension).ReadOnly=False
[0252] objDoc.Parameter(strDimension).SystemValue=varValue
[0253] objDoc.Parameter(strDimension).ReadOnly=True
[0254] Setting an assembly dimension typically involves all of the
steps for setting an assembly dimension, except Parameter is
additionally checked for existence on the components. The following
API functions may be used:
[0255] objDoc.Parameter(strDimension & "@" &
strComponent).ReadOnly=False
[0256] objDoc.Parameter(strDimension & "@" &
strComponent).SystemValue=var- Value
[0257] objDoc.Parameter(strDimension & "@" &
strComponent).ReadOnly=True OR
[0258] objDoc.Parameter(strDimension & "@" & strComponent
& ".Part").ReadOnly=False
[0259] objDoc.Parameter(strDimension & "@" & strComponent
& ".Part").SystemValue=varValue
[0260] objDoc.Parameter(strDimension & "@" & strComponent
& ".Part").ReadOnly=True OR
[0261] objDoc.Parameter(strDimension & "@" & strComponent
& ".Assembly").ReadOnly=False
[0262] objDoc.Parameter(strDimension & "@" & strComponent
& ".Assembly").SystemValue=varValue
[0263] objDoc.Parameter(strDimension & "@" & strComponent
& ".Assembly").ReadOnly=True
[0264] Creating a component pattern typically involves selecting
the parent assembly, putting the parent assembly in "edit" mode,
selecting the component and the feature pattern, and inserting the
feature pattern. The Derived Pattern is typically renamed by
traversing the parent assembly and finding the Derived Pattern
using the seed component. The following API functions may be
used:
[0265] objComponent.Select False
[0266] Assembly.EditAssembly
[0267] Assembly.ClearSelection
[0268] Assembly.SelectByID strComponentPath, "COMPONENT", 0, 0,
0
[0269] Assembly.AndSelectByID strPatternName & "@" &
strComponentPath2, "BODYFEATURE", 0, 0, 0
[0270] Assembly.InsertDerivedPattern
[0271] Set objFeature=objDoc.FirstFeature
[0272] objFeature.GetTypeName="DerivedSketchPattern"
[0273] arrSeed=def.SeedComponentArray( )
[0274] arrSeed(i).Name
[0275] def.ReleaseSelectionAccess
[0276] Set objFeature=objFeature.GetNextFeature
[0277] Removing a component pattern typically involves selecting
the Derived Pattern from the parent model document and deleting the
selection. In some models, the referenced configuration may need to
be reset to prevent future selections from failing on this part.
The following API functions may be used:
[0278] oParentDoc.ClearSelection
[0279] oParentDoc.SelectByID strPatternName, "COMPPATTERN", 0, 0,
0
[0280] oParentDoc.DeleteSelection False
[0281] oParentComponent.ReferencedConfiguration=
[0282] Assembly.EditRebuild3
[0283] The knowledge management application typically requires a
part for each feature in the pattern, and maintains a property
containing the X and Y coordinates for each feature. In order to
create a feature pattern, the is activated and is used to select
the Sketch Pattern. A point for each component required is created,
it's identifier is stored, the Sketch is inserted, and the document
rebuilt. The Sketch and Feature are selected and a Pattern is
created. The Sketch Pattern is then found and renamed by traversing
the Document and finding the Pattern using the seed feature. The
following API functions may be used:
[0284] SW.ActivateDoc2 objDoc.GetTitle, True, lngErr
[0285] objDoc.ClearSelection
[0286] objDoc.SelectByID strSketchName, "SKETCH", 0, 0, 0
[0287] objDoc.SetAddToDB True
[0288] objDoc.EditSketch
[0289] Set oPoint=objDoc.CreatePoint2(lngX, lngY, 0)
[0290] arrPointID=oPoint.GetId( )
[0291] objDoc.InsertSketch
[0292] objDoc.EditRebuild3
[0293] objDoc.SelectByID strSketch, "SKETCH", 0, 0, 0
[0294] objDoc.AndSelectByID strFeature, "BODYFEATURE", 0, 0, 0
[0295] objDoc.ActivateSelectedFeature
[0296] objDoc.FeatureSketchDrivenPattern 1
[0297] Set objFeature=objDoc.FirstFeature
[0298] objFeature.GetTypeName="SketchPattern"
[0299] arrSeed=def.PatternFeatureArray( )
[0300] Set subFeature=arrSeed(i)
[0301] objModelDoc.GetEntityName(subFeature)=strSeedName
[0302] def.ReleaseSelectionAccess
[0303] Set objFeature=objFeature.GetNextFeature
[0304] SW.ActivateDoc2 Assembly.GetTitle, True, lngErr
[0305] SW.CloseDoc objDoc.GetTitle
[0306] Removing a point in a sketch typically involves opening the
document containing the sketch, putting the sketch in "edit" mode,
traversing the sketch points to find the point with the
corresponding identifier, selecting the point, and deleting the
selected point. The following API functions may be used:
[0307] SW.ActivateDoc2 objDoc.GetTitle, True, lngErr
[0308] objDoc.ClearSelection
[0309] objDoc.SelectByID strSketchName, "SKETCH", 0, 0, 0
[0310] objDoc.EditSketch
[0311] Set oSketch=objModelDoc.GetActiveSketch2( )
[0312] arrPoints=oSketch.GetSketchPoints
[0313] arrID=arrPoints(i).GetId
[0314] arrPoints(i).Select2 False, 0
[0315] objDoc.DeleteSelection False
[0316] objDoc.InsertSketch
[0317] objDoc.EditRebuild3
[0318] SW.ActivateDoc2 Assembly.GetTitle, True, lngErr
[0319] SW.CloseDoc objDoc.GetTitle
[0320] Removing a feature pattern typically involves selecting the
derived pattern from the parent model document and deleting the
selected derived pattern. The following API functions may be
used:
[0321] oParentDoc.ClearSelection
[0322] oParentDoc.SelectByID strPatternName, "BODYFEATURE", 0, 0,
0
[0323] oParentDoc.DeleteSelection False
[0324] Assembly.EditRebuild3
[0325] Setting a custom property typically involves verifying the
value and setting the value if necessary. The following API
functions may be used:
[0326] objDoc.GetCustominfoValue(" ", strName) ovarArgument
[0327] objDoc.CustomInfo2(" ", strName)=varArgument
[0328] Assembly.EditRebuild 3
[0329] Setting a component color typically involves retrieving the
MaterialPropertyValues for the component from the component or the
model document, changing the first three elements in the array to
reflect the new color, and setting the new MaterialPropertyValues
on the component. If the color is being removed, the
RemoveMaterialProperty is called. The following API functions may
be used:
[0330] arr=objComponent.MaterialPropertyValues( )
[0331] arr=objComponent.GetModelDoc.MaterialPropertyValues( )
[0332] objComponent.MaterialPropertyValues=arr
[0333] Assembly.EditRebuild 3
[0334] objComponent.RemoveMaterialProperty
[0335] Closing SOLIDWORKS.TM. typically involves closing the top
level assembly (which is typically the only one open at this point)
and calling the Exit App API function.
[0336] The following API functions may be used:
[0337] SW.QuitDoc strTitle
[0338] SW.ExitApp
[0339] Various aspects of an exemplary embodiment of the present
invention are described hereinafter with reference to modeling a
fan. In accordance with an embodiment of the present invention, a
fan includes various sub-parts, including a fan assembly, a housing
assembly, a motor assembly, and a mounting assembly. Certain
components of the fan might have fixed characteristics. For
example, a company might purchase three different motors that can
be used in a fan, and these motors have fixed dimensions that
cannot be changed in the model. CAD models of the motors may be
created in the CAD system and imported into the knowledge
management application for storage by the knowledge storage
application. Other components of the fan might have characteristics
that can be determined dynamically during modeling. For example,
the dimensions of a fan hub might depend on the motor selected for
the model. Models of these components might be created in the CAD
system and imported into the knowledge management application, or
rules for defining these components might be established. For
purposes of the following example, the CAD system is presumed to be
the SOLIDWORKS.TM. three-dimensional CAD system.
[0340] FIG. 5 shows an exemplary user interface screenshot 500 for
importing information from the CAD system relating to a mounting
assembly, such as might be generated by the knowledge management
application in accordance with an embodiment of the present
invention. The screenshot 500 displays, among other things, a
hierarchical part family tree 510 showing that a
BuildingServicesFan part family includes sub-parts entitled
FanAssembly, HousingAssembly, MotorAssembly, and MountingAssembly,
with the sub-parts having their own part families entitled Rotor,
Housing, Motor, and Mounting, respectively. The screenshot 500
shows information relating to the MountingAssembly sub-part (as
indicated by the MountingAssembly sub-part being highlighted in the
part family tree 510), including a list of all specifications 520
relating to the MountingAssembly sub-part and a window 530 for
entering information about the MountingAssembly sub-part. The
screenshot 500 also includes a toolbar 540 from which various
functions of the knowledge management application (such as creating
a new part family, sub-part, property, connection, or CAD
specification) can be accessed using either pull-down menus or
icons. The window 530 includes a portion 531 showing that there is
a single valid part family entitled Mounting associated with the
MountingAssembly sub-part. It should be noted that there could be
multiple part families associated with the MountingAssembly
sub-part, and all valid part families would be displayed in the
portion 531. The window 530 also includes a portion 532 for
defining a rule to determine the optimal part family for a
particular model (in this case, the optimal part family is the
Mounting part family by default).
[0341] In order to associate a mounting component defined in the
CAD system with the Mounting part family, the user might highlight
"Mounting" in the part family tree 510 and then select a function
from the toolbar 540 to create a new geometric specification (this
function can be accessed from either the File menu or an icon on
the toolbar). FIG. 6 shows an exemplary user interface screenshot
600 for defining a new geometric specification relating to the
Mounting part family, such as might be generated by the knowledge
management application in accordance with an embodiment of the
present invention. The screenshot 600 shows information relating to
the Mounting part family of the MountingAssembly sub-part (as
indicated by the Mounting part family being highlighted in the part
family tree 610), including a list of all specifications 620
relating to the Mounting part family and a window 630 for entering
the new geometric specification for the Mounting part family. The
window 630 shows the geometry type 631 (in this case, "SolidWorks")
and a list of valid CAD part files 632 associated with the Mounting
part family (in this case, none have yet been specified).
[0342] In order to associate a CAD part file with the Mounting part
family, the user might select the "add part file" control 633 and
enter the name of a CAD part file, in which case the knowledge
management application imports from the CAD system information
relating to the specified CAD part file. The knowledge management
application preferably displays a list of parameters defined for
the part in the CAD part file. FIG. 7 shows an exemplary user
interface screenshot 700 displaying information upon entry of the
name of a new CAD part file, such as might be generated by the
knowledge management application in accordance with an embodiment
of the present invention. The screenshot 700 shows the part family
tree 710, a list of all specifications 720 relating to the Mounting
part family, a window 730 showing the new valid part file
(Mounting-Aero.SLDPR), and a window 740 displaying a list of
parameters defined for the part in the CAD part file.
[0343] Once the CAD part file has been associated with the Mounting
part family, the user typically defines various geometry features
and associates the geometry features with specific CAD parts. In
order to define a geometry feature and associate the geometry
feature with one or more specific CAD parts, the user might select
a function from the toolbar 750 to create a new geometry feature
(this function can be accessed from either the File menu or an icon
on the toolbar). FIG. 8 shows an exemplary user interface
screenshot 800 for defining a geometry feature, such as might be
generated by the knowledge management application in accordance
with an embodiment of the present invention. The screenshot 800
includes a window 840 for defining a geometry feature and
associating the geometry feature with one or more specific CAD
parts. In this case, a geometry feature having a display name 842
HubDiameter and a system name HubDiameter 843 is associated with a
corresponding CAD part entitled HubDiameter by specifying a formula
in portion 844.
[0344] FIG. 9 shows an exemplary user interface screenshot 900
showing geometry features (properties) defined for the CAD part
file, such as might be generated by the knowledge management
application in accordance with an embodiment of the present
invention. The screenshot 900 shows the part family tree 910, a
list of all specifications 920 relating to the Mounting part
family, and a window 930 including a properties portion 931 showing
the geometry features associated with specific CAD parts (in this
case, a HubDiameter geometry feature and a MountingDiameter
geometry feature).
[0345] After the geometry features have been defined and associated
with corresponding CAD parts, the user typically defines any mating
rules associated with the CAD parts file. In order to define a
mating, the user may select a function from the toolbar 950 (this
function can be accessed from either the File menu or an icon on
the toolbar). FIG. 10 shows an exemplary user interface screenshot
1000 for defining a mating, such as might be generated by the
knowledge management application in accordance with an embodiment
of the present invention. The screenshot 1000 shows the part family
tree 1010, a list of all specifications 1020 relating to the
Mounting part family, a part file window 1030, and a window 1040
for entering mating information.
[0346] FIG. 11 shows an exemplary user interface screenshot 1100
showing mating definitions, such as might be generated by the
knowledge management application in accordance with an embodiment
of the present invention. The screenshot 1100 shows the part family
tree 1110, a list of all specifications 1120 relating to the
Mounting part family, and a window 1130 displaying various mating
(orientation) definitions 1131 for the CAD part.
[0347] As discussed above, the user can establish rules for
attributes that may be difficult or impossible to model in the CAD
system, including certain geometric attributes (such as "negative"
attributes), certain geometry-based attributes that are not modeled
as physical features of a structure or assembly, and non-geometric
attributes (such as pricing and processes). For example, continuing
with the fan modeling scenario above, it might be useful to
establish a rule for computing a non-modeled geometry-based
attribute, such as area covered by the sweep of the fan blade
component when rotating. While this fan area might be useful, for
example, for computing the volume of air moved by a fan blade
component having a specified number of blades rotating at a
specified rate, the fan area is typically not modeled as a physical
feature of the fan. FIG. 12 shows an exemplary user interface
screenshot 1200 showing a rule for determining a fan area for the
fan, such as might be generated by the knowledge management
application in accordance with an embodiment of the present
invention. The screenshot 1200 shows the part family tree 1210
(with the part family BuildingServicesFan highlighted), a list of
all specifications 1220 relating to the BuildingServicesFan part
family (with the FanArea specification highlighted), and a window
1230 displaying the rule 1240 for determining the fan area based on
the diameter of the fan blade component. The user can establish
other rules that utilize this FanArea value.
[0348] After component information has been imported from the CAD
system and modeling rules have been established, the knowledge
management application controls the CAD system through its API to
produce a geometric model according to predetermined
specifications. The specifications can be incorporated into the
rules and/or provided by a user at run time. The CAD model may be
produced for display to the user via the graphical user interface,
or may be produced solely for the knowledge management application
to obtain model-related information from the CAD system. As an
example of the former, the knowledge management application can
control the CAD system to generate a model and then produce a
graphical display through the graphical user interface including a
graphical representation of the model as generated by the CAD
system (e.g., by displaying a display window generated by the
computer-aided design system), with or without related information
from the knowledge management system. As an example of the latter,
the knowledge management application can control the CAD system to
generate a model and then control the CAD system to compute the
surface area of a component for a cost estimate to be produced by
the knowledge management application.
[0349] FIG. 13 shows an exemplary user interface screenshot 1300
including an embedded graphical representation of a model generated
by the CAD system, such as might be generated by the knowledge
management application in accordance with an embodiment of the
present invention. The screenshot 1300 shows the part family tree
1310 (with the part family BuildingServicesFan highlighted), a list
of all specifications 1320 relating to the BuildingServicesFan part
family, and a window 1330 including a portion 1340 including a
graphical representation of the model generated by the CAD
system.
[0350] The user can specify how information is to be displayed by
the knowledge management application. For example, the user can
specify that the CAD system window be displayed under some
conditions but not others, and can also specify what knowledge
management system information to display along with the CAD system
window.
[0351] FIG. 14 shows a first exemplary user interface screenshot
1400 including a sub-window generated by the CAD system, such as
might be generated by the knowledge management application in
accordance with an embodiment of the present invention. The
screenshot 1400 displays a function list 1410, information from the
knowledge management system 1430, and a sub-window 1440 generated
by the CAD system including a graphical representation of the model
generated by the CAD system and controls for manipulating the
model.
[0352] FIG. 15 shows a second exemplary user interface screenshot
1500 including a sub-window generated by the CAD system, such as
might be generated by the knowledge management application in
accordance with an embodiment of the present invention. The
screenshot 1500 displays a function list 1510, a part family tree
1520, information from the knowledge management system 1530, a
sub-window 1540 generated by the CAD system including a graphical
representation of the model generated by the CAD system and
controls for manipulating the model, and properties information
1550.
[0353] FIG. 16 shows a third exemplary user interface screenshot
1600 including a full view window generated by the CAD system, such
as might be generated by the knowledge management application in
accordance with an embodiment of the present invention. The
screenshot 1600 displays a function list 1610 and a full view
window 1630 generated by the CAD system.
[0354] In certain embodiments of the invention, the user can make
rule changes on the fly, and the knowledge management application
will control the CAD system to update the model accordingly and
will display the updated graphical representation of the model to
the user substantially in real time. In this way, the user
essentially gets immediate feedback regarding the rule change.
[0355] In certain embodiments of the invention, changes to a model
can be made in the CAD system, and the knowledge management
application will identify those changes through interactions with
the CAD system and will modify and apply rules accordingly. For
example, if the user makes a change in the CAD system that
overrides a particular rule, the knowledge management application
might cause appropriate tracking information to be stored by the
knowledge storage application, create one or more revised rules
that reflect the change, and apply other rules to update other
components of the model according to the rules. The manner in which
the knowledge management application can identify CAD system
changes depends to a large degree on the CAD system API. For
example, the CAD system might communicate the changes to the
knowledge management application, or the knowledge management
application might monitor or poll the CAD system for changes.
[0356] In certain embodiments of the invention, the knowledge
management application can cause a particular model part displayed
in the CAD system window to be displayed or highlighted when the
user is working on rules relating to that part. For example, with
reference again to FIG. 13, if the user selects the Motor part
family in the part family tree 1310, the knowledge management
application might cause the motor to be highlighted in the window
1340, for example, by changing the color of the motor.
[0357] In certain embodiments of the invention, the knowledge
management application can cause information relating to a
particular model part to be displayed when the user highlights that
part in the CAD system window. For example, with reference again to
FIG. 13, if the user highlights the fan blade component in the CAD
window 1340, the knowledge management application might cause
information relating to the fan blade component to be displayed in
the window 1330, with appropriate highlighting in the part family
tree 1310 and the list of specifications 1320.
[0358] As discussed above, the knowledge management application can
interoperate with two-dimensional CAD systems as well as
three-dimensional CAD systems. In an exemplary embodiment of the
present invention, the knowledge management application supports
both the two-dimensional CAD system VISIO.TM. and the
three-dimensional CAD system SOLIDWORKS.TM..
[0359] FIG. 17 shows an exemplary user interface screenshot 1700
including a window generated by a two-dimensional CAD system, such
as might be generated by the knowledge management application in
accordance with an embodiment of the present invention. The
screenshot 1700 displays a function list 1710, a part family tree
1720, a CAD system window 1740, and properties information
1750.
[0360] The knowledge management application can also interoperate
with various analysis applications. Typically, the knowledge
management application exports information to the analysis
application for analysis. The knowledge management application can
display analysis information to the user.
[0361] FIG. 18 shows an exemplary user interface screenshot 1800
including an analysis window, such as might be generated by the
knowledge management application in accordance with an embodiment
of the present invention. The screenshot 1800 displays a function
list 1810, a part family tree 1820, a CAD system window 1840,
properties information 1850, and an analysis window 1860 generated
by the analysis application.
[0362] Thus, in certain embodiments of the present invention,
structures are defined in a CAD system and are associated with a
structure class. Rules are defined for the structure class. When
one of the structures is selected by the knowledge management
system for a computer-aided design model, the rules are applied to
the selected structure. These class-based rules make it easier for
the user to define rules, since a single rule defined by the user
gets applied to an entire class of structures, and therefore the
user does not have to define the rule individually for each
structure of the structure class.
[0363] FIG. 21 is a logic flow diagram showing exemplary logic 2100
for class-based rules in accordance with an embodiment of the
present invention. Starting in block 2102, structures (such as
parts for an assembly) are defined in a CAD system, in block 2104.
The structures are associated with a structure class (such as a
part family) in a knowledge management system, in block 2106. At
least one rule is defined that applies to the structure class, in
block 2108. When one of the structures is selected for a
computer-aided design model by the knowledge management system, in
block 2110, the knowledge management system applies the rule(s) to
the selected structure, in block 2112. The logic 2100 ends in block
2199.
[0364] As discussed above, the knowledge management application
obtains a set of rules from a central database. The set of rules
may include rules relating to geometric and non-geometric
attributes. The non-geometric attributes may be dependent on
geometric attributes. The knowledge management application
generates instructions for modeling a geometric structure based on
the set of rules. The knowledge management application communicates
the instructions to a computer-aided design system, typically
through an API of the computer-aided design system. The knowledge
management application may produce a graphical display on a
graphical user interface including information from the knowledge
management system as well as information from the computer-aided
design system (such as a graphical representation of a geometric
model).
[0365] FIG. 22 is a logic flow diagram showing exemplary logic 2200
for the knowledge management application in accordance with an
embodiment of the present invention. Starting in block 2202, the
logic obtains a set of rules from a central database, in block
2204. The logic generates instructions for modeling a geometric
structure based on the set of rules, in block 2206. The logic
communicates the instructions to a computer-aided design system, in
block 2208, typically through an application program interface of
the computer-aided design system. The logic may produce a graphical
display on a graphical user interface including a first portion
including information from the knowledge management application and
a second portion including information from the computer-aided
design system, in block 2210. The logic ends in block 2299.
[0366] It should be noted that the logic flow diagrams are used
herein to demonstrate various aspects of the invention, and should
not be construed to limit the present invention to any particular
logic flow or logic implementation. The described logic may be
partitioned into different logic blocks (e.g., programs, modules,
functions, or subroutines) without changing the overall results or
otherwise departing from the true scope of the invention. Often
times, logic elements may be added, modified, omitted, performed in
a different order, or implemented using different logic constructs
(e.g., logic gates, looping primitives, conditional logic, and
other logic constructs) without changing the overall results or
otherwise departing from the true scope of the invention.
[0367] The present invention may be embodied in many different
forms, including, but in no way limited to, computer program logic
for use with a processor (e.g., a microprocessor, microcontroller,
digital signal processor, or general purpose computer),
programmable logic for use with a programmable logic device (e.g.,
a Field Programmable Gate Array (FPGA) or other PLD), discrete
components, integrated circuitry (e.g., an Application Specific
Integrated Circuit (ASIC)), or any other means including any
combination thereof. In a typical embodiment of the present
invention, predominantly all of the knowledge management system
applications are implemented as a set of computer program
instructions that are executed by a computer under the control of
an operating system.
[0368] Computer program logic implementing all or part of the
functionality previously described herein may be embodied in
various forms, including, but in no way limited to, a source code
form, a computer executable form, and various intermediate forms
(e.g., forms generated by an assembler, compiler, linker, or
locator). Source code may include a series of computer program
instructions implemented in any of various programming languages
(e.g., an object code, an assembly language, or a high-level
language such as Fortran, C, C++, JAVA, or HTML) for use with
various operating systems or operating environments. The source
code may define and use various data structures and communication
messages. The source code may be in a computer executable form
(e.g., via an interpreter), or the source code may be converted
(e.g., via a translator, assembler, or compiler) into a computer
executable form.
[0369] The computer program may be fixed in any form (e.g., source
code form, computer executable form, or an intermediate form)
either permanently or transitorily in a tangible storage medium,
such as a semiconductor memory device (e.g., a RAM, ROM, PROM,
EEPROM, or Flash-Programmable RAM), a magnetic memory device (e.g.,
a diskette or fixed disk), an optical memory device (e.g., a
CD-ROM), a PC card (e.g., PCMCIA card), or other memory device. The
computer program may be fixed in any form in a signal that is
transmittable to a computer using any of various communication
technologies, including, but in no way limited to, analog
technologies, digital technologies, optical technologies, wireless
technologies (e.g., Bluetooth), networking technologies, and
internetworking technologies. The computer program may be
distributed in any form as a removable storage medium with
accompanying printed or electronic documentation (e.g., shrink
wrapped software), preloaded with a computer system (e.g., on
system ROM or fixed disk), or distributed from a server or
electronic bulletin board over the communication system (e.g., the
Internet or World Wide Web).
[0370] Hardware logic (including programmable logic for use with a
programmable logic device) implementing all or part of the
functionality previously described herein may be designed using
traditional manual methods, or may be designed, captured,
simulated, or documented electronically using various tools, such
as Computer Aided Design (CAD), a hardware description language
(e.g., VHDL or AHDL), or a PLD programming language (e.g., PALASM,
ABEL, or CUPL).
[0371] Programmable logic may be fixed either permanently or
transitorily in a tangible storage medium, such as a semiconductor
memory device (e.g., a RAM, ROM, PROM, EEPROM, or
Flash-Programmable RAM), a magnetic memory device (e.g., a diskette
or fixed disk), an optical memory device (e.g., a CD-ROM), or other
memory device. The programmable logic may be fixed in a signal that
is transmittable to a computer using any of various communication
technologies, including, but in no way limited to, analog
technologies, digital technologies, optical technologies, wireless
technologies (e.g., Bluetooth), networking technologies, and
internetworking technologies. The programmable logic may be
distributed as a removable storage medium with accompanying printed
or electronic documentation (e.g., shrink wrapped software),
preloaded with a computer system (e.g., on system ROM or fixed
disk), or distributed from a server or electronic bulletin board
over the communication system (e.g., the Internet or World Wide
Web).
[0372] The present invention may be embodied in other specific
forms without departing from the true scope of the invention. The
described embodiments are to be considered in all respects only as
illustrative and not restrictive.
* * * * *