U.S. patent application number 14/067652 was filed with the patent office on 2014-05-01 for methods, systems, and devices for designing and manufacturing flank millable components.
This patent application is currently assigned to Concepts ETI, Inc.. The applicant listed for this patent is Concepts ETI, Inc.. Invention is credited to Brad W. Amidon, Peter Klein, Alexander Plomp.
Application Number | 20140121819 14/067652 |
Document ID | / |
Family ID | 49582821 |
Filed Date | 2014-05-01 |
United States Patent
Application |
20140121819 |
Kind Code |
A1 |
Amidon; Brad W. ; et
al. |
May 1, 2014 |
Methods, Systems, And Devices For Designing and Manufacturing Flank
Millable Components
Abstract
Methods, systems, and devices for designing and manufacturing
flank millable components. In one embodiment, devices, systems, and
methods for designing a flank millable component are provided, in
which a user is notified when a component geometry option is
selected that will result in the component not being flank
millable. In another embodiment, the user is prevented from
selecting a geometry option that would result in the component not
being flank millable. In yet another embodiment, devices, systems,
and methods are provided for manufacturing a component with a flank
milling process, in which optimized machine instructions are
determined that minimize milling machine motion.
Inventors: |
Amidon; Brad W.; (Arlington,
MA) ; Klein; Peter; (Woburn, MA) ; Plomp;
Alexander; (Lebanon, NH) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Concepts ETI, Inc. |
White River Junction |
VT |
US |
|
|
Assignee: |
Concepts ETI, Inc.
White River Junction
VT
|
Family ID: |
49582821 |
Appl. No.: |
14/067652 |
Filed: |
October 30, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61720166 |
Oct 30, 2012 |
|
|
|
Current U.S.
Class: |
700/173 ;
700/182; 703/1 |
Current CPC
Class: |
Y02P 90/02 20151101;
G05B 19/40931 20130101; G05B 2219/35028 20130101; G05B 2219/35032
20130101; G05B 19/4097 20130101 |
Class at
Publication: |
700/173 ; 703/1;
700/182 |
International
Class: |
G05B 19/4097 20060101
G05B019/4097 |
Claims
1. A method of designing a flank millable component comprising:
providing a user with a plurality of options for defining a
geometry of a component; and notifying the user when the user
selects an option from said plurality of options that will result
in the component not being flank millable.
2. The method of claim 1, wherein said notifying step further
comprises providing the user with one or more suggestions for
modifying the geometry of the component to make the component flank
millable.
3. The method of claim 1, wherein said providing step comprises
providing the user with at least one geometry option that requires
the selection of a sub-option for the component to be flank
millable.
4. The method of claim 3, further comprising, checking, when the
user selects said at least one geometry option that requires the
selection of a sub-option, if the user has selected said
sub-option; said notifying step further comprising notifying the
user if the user has not selected said sub-option.
5. The method of claim 4, wherein said providing step comprises
providing the user with a geometry option that, when selected,
results in a surface of the component no longer being fully defined
as a two-section ruled surface; and said checking step comprising
checking, when the user selects said geometry option, that results
in the component surface no longer being fully defined as a
two-section ruled surface checking if the user selected a
sub-option that allows the component to be represented by more than
two sections.
6. The method of claim 5, wherein said providing step comprises
providing the user with a geometry option that removes at least a
portion of a leading edge or trailing edge of a turbomachinery
blade.
7. The method of claim 6, wherein said providing step further
comprises providing the user with an option to specify a rounded
edge; and said checking step comprises, if the user selects said
geometry option that removes at least a portion of a leading edge
or trailing edge, and has also selected said rounded edge geometry
option, checking if the user selected a sub-option that allows the
edge of the component to be point milled.
8. The method of claim 4, wherein said component comprises a
turbomachinery blade, and wherein said providing step comprises
providing the user with a geometry option that allows the
definition of a separate blade generation sheet of the
turbomachinery blade; and said checking step comprises checking if
the user selected a sub-option that requires a thickness of the
turbomachinery blade to be based on blade generating lines.
9. The method of claim 8, wherein said checking step further
comprises checking if the user selected a second sub-option that
interpolates the thickness in non-Cartesian coordinates; said
notifying step further comprising prompting the user to de-select
said second sub-option when said second sub-option is selected.
10. The method of claim 1, wherein said providing step comprises
providing the user with at least one geometry option that has a
small deviation from a flank millable geometry, and said method
further comprises, if the user selects said at least one geometry
option that has a small deviation from a flank millable geometry,
automatically modifying the geometry of the component to make the
component flank millable.
11. The method of claim 10, wherein, when said at least one
geometry option that has a small deviation from a flank millable
geometry is selected, the geometry of the component when thickness
is applied along flow quasi-orthogonal ("QO") lines has minimal
variation from the geometry of the component when thickness is
applied along geometry QO lines.
12. The method of claim 10, wherein said at least one geometry
option that has a small deviation from a flank millable geometry is
selected from the group consisting of (1) fully radial, (2) 2-D
with Bezier beta distribution, (3) 2-D with straight arc blades,
and (4) 2-D with circular arc blades.
13. The method of claim 1, wherein the plurality of options include
a first category that comprises a geometry that is flank millable,
a second category that comprises a geometry that is flank millable
when additional conditions are imposed, and a third category that
comprises a geometry that is assumed to be not flank millable; and
said notifying step comprises providing a first notification when
the user selects a geometry in said second category but has not
selected a sub-option for imposing said additional conditions, and
providing a second notification when the user selects a geometry in
said third category.
14. The method of claim 1, wherein said component comprises a
turbomachinery blade, and wherein said providing step comprises
providing the user with a geometry option selected from the group
consisting of (1) a geometry that defines a non-linear thickness of
the turbomachinery blade along a mean camber sheet, (2) a geometry
option for bowing said turbomachinery blade, (3) a geometry option
for a component ruled in cylindrical or spherical coordinates
rather than Cartesian coordinates, (4) a geometry option for the
addition of a fillet, and (5) a geometry option for smoothing a
surface of the component; and said notifying step comprising, if
the user selects one of said geometry options in said group of
geometry options, notifying the user that the turbomachinery blade
will not be flank millable.
15. The method of claim 1, wherein said component comprises a
turbomachinery blade, and wherein said providing step comprises
providing the user with a geometry option selected from the group
consisting of (1) a geometry option for the addition of a fillet,
and (5) a geometry option for smoothing a surface of the component.
said notifying step comprising, if the user selects one of said
geometry options in said group of geometry options, checking if a
sub-option has been selected that allows the program to consider at
least a portion of the component as flank millable, and, if said
sub-option is not selected, prompting the user to select said
sub-option.
16. The method of claim 15, wherein said sub-option is selected
from the group consisting of (1) a sub-option allowing the blade to
be represented by more than two sections, and (2) a sub-option
allowing a section of the blade to be point milled.
17. A method of determining machine instructions for flank milling
a surface with a milling machine having a cutter, the machine
instructions being determined from an array of data points
representing a series of cutter positions along the surface, an
orientation of the cutter being a function of an azimuthal angle
(.theta.) and a polar angle (.PHI.), the method comprising:
determining an initial set of cutter orientations; and calculating
a machine motion minimized set of cutter orientations, wherein said
calculating step comprises using an optimizer to simultaneously
minimize machine motion in both the .theta. and .PHI.
directions.
18. The method of claim 17, wherein said optimizer minimizes an
objective function, said objective function having a solution that
varies based on a change in a rate of change of phi and theta.
19. The method of claim 18, wherein the objective function is a
function of a deviation (.DELTA.u) of the cutter from an
isoparametric-tangency orientation.
20. The method of claim 18, wherein the objective function is a
function of a sum of squares of finite differences of .theta. and
.PHI..
21. The method of claim 17, wherein said optimizer minimizes an
objective function, wherein said objective function is the
following: S = i = 3 n ( .DELTA. 2 .PHI. i ) 2 + ( .DELTA. 2
.theta. i ) 2 ##EQU00003## wherein , .DELTA. 2 .PHI. i =
.DELTA..PHI. i - .DELTA. .PHI. i - 1 .DELTA. .PHI. i = .PHI. i -
.PHI. i - 1 d i - d i - 1 .DELTA. 2 .theta. i = .DELTA. .theta. i -
.DELTA..theta. i - 1 .DELTA..theta. i = .theta. i - .theta. i - 1 d
i - d i - 1 ##EQU00003.2## d.sub.i=distance along machining path at
point i
22. The method of claim 17, wherein said determining step
comprises: selecting a subset of the data points as fixed points;
calculating an undercut-minimized cutter orientation at each of the
fixed points; and calculating a cutter orientation at un-fixed
points by linearly interpolating from the undercut-minimized
orientations.
23. The method of claim 22, wherein said selecting step comprises
selecting a larger number of fixed points in areas of the surface
that are more contoured.
24. The method of claim 22, further comprising, after said step of
calculating an undercut-minimized cutter orientation; calculating a
machine motion ratio at each fixed point; comparing said machine
motion ratio to a first predetermined value; if said machine motion
ratio is greater than said predetermined value, unfixing said fixed
point.
25. The method of claim 17, further comprising, after said
calculating step; calculating an undercut at each point; comparing
said undercut to a second predetermined value; for any point where
said undercut is greater than said second predetermined value,
calculating an undercut-minimized cutter orientation for said
point(s), and re-performing said step of calculating a machine
motion minimized set of cutter orientations on points other than
said point(s) with said calculated undercut-minimized cutter
orientation.
26. The method of claim 22, further comprising, after said step of
calculating a machine motion minimized set of cutter orientations;
calculating an undercut at each un-fixed point; comparing said
undercut to a second predetermined value; for any point where said
undercut is greater than said second predetermined value,
calculating an undercut-minimized cutter orientation for said
point(s) and adding said point(s) to said subset of fixed points,
and re-performing said step of calculating a machine motion
minimized set of cutter orientations on said un-fixed points.
27. The method of claim 17, further comprising adding additional
machine motion control in areas of the surface having high machine
motion.
28. The method of claim 27, wherein said optimizer minimizes an
objective function, and wherein said step of adding additional
machine motion control comprises adding a first finite difference
of said .theta. and .PHI. to said objective function in said areas
of the surface having high machine motion.
29. The method of claim 27, wherein said step of adding additional
machine motion control comprises allowing a user to manually
specify the cutter orientation at one or more points in said areas
of the surface having high machine motion.
30. The method of claim 27, wherein said areas of the surface
having high machine motion comprise data points at the ends of a
machining path of the cutter.
31. The method of claim 17, further comprising: receiving
cutter-type input parameters representing a shape and size of the
cutter; and determining an initial set of cutter position data
points by offsetting a data set representing the surface by a
radius of the cutter.
32. The method of claim 17, wherein said array of data points are
calculated from a data set S(u,v) representing the surface and at
least a portion of said surface is a ruled surface having straight
lines along constant u curves.
33. A method of flank milling a component comprising: providing a
component-geometry subroutine capable of determining a surface
geometry of a flank millable component; said component-geometry
subroutine configured to notify a user of said sub-routine when the
user selects a geometry option that will result in the component
not being flank millable; and providing a machine-instruction
subroutine capable of converting a surface geometry calculated by
said component-geometry subroutine into machine instructions for
machining a flank millable component with the cutter of a milling
machine; said machine-instruction subroutine configured to
calculate machine instructions that result in minimal milling
machine motion by simultaneously minimizing the motion of the
milling machine in both azimuthal and polar directions.
Description
RELATED APPLICATION DATA
[0001] This application is a non-provisional of U.S. Provisional
Patent Application Ser. No. 61/720,166, filed Oct. 30, 2012,
entitled "System and Method of Flank Milling a Turbo-Machinery
Blade Using Ruled Surfaces," which is incorporated by reference
herein in its entirety.
FIELD OF THE INVENTION
[0002] The present invention generally relates to the field of
design and manufacture of components. In particular, the present
invention is directed to the design of flank millable components
and methods of determining milling instructions for flank milling
components.
BACKGROUND
[0003] In a typical turbomachinery component design process, a
turbomachinery component can be designed using computer automated
design (CAD) software that can be used to generate a dataset
representing the shape of the component. Computer automated
manufacturing (CAM) software can then be used to translate the data
set into a series of machining instructions that will be used to
manufacture the component.
[0004] Turbomachinery components are often manufactured by a
machining process whereby material is removed from a work piece
with a mill having a rotary cutter. Significant advancements in
machining time, part tolerances, and part finishes have been
realized by employing a flank milling process, where the side of an
elongated cutter is used to remove material, rather than the end of
the cutter, which is utilized in a point milling process. Flank
milling, however, can only be used to machine certain geometries
and state of the art turbomachinery components often have very
complex shapes. In addition, modern CAD software provides designers
with great flexibility in designing components, and designers can
employ complex design processes to optimize component geometry.
This high degree of flexibility can lead to the design of a
component that will be difficult or impossible to flank mill. The
designer, however, may not realize he or she has designed a
component that cannot be flank milled until very late in the design
process, for example, not until prototyping or manufacturing. At
that point the designer is in an undesirable position choosing
between proceeding with a less efficient and more costly
manufacturing process such as point milling, or going back and
re-designing the component. And even if a flank millable geometry
is input into the CAM software, the machine instructions calculated
by the CAM program can result in excessive machine motion and
undesirably long machining times.
SUMMARY OF THE DISCLOSURE
[0005] In one implementation, the present disclosure is directed to
a method of designing a flank millable component. The method
includes providing a user with a plurality of options for defining
a geometry of a component, and notifying the user when the user
selects an option from said plurality of options that will result
in the component not being flank millable.
[0006] In another implementation, the present disclosure is
directed to a method of determining machine instructions for flank
milling a surface with a milling machine having a cutter, the
machine instructions being determined from an array of data points
representing a series of cutter positions along the surface, an
orientation of the cutter being a function of an azimuthal angle
(.theta.) and a polar angle (.PHI.). The method includes
determining an initial set of cutter orientations, and calculating
a machine motion minimized set of cutter orientations, wherein said
calculating step comprises using an optimizer to simultaneously
minimize machine motion in both the .theta. and .PHI.
directions.
[0007] In yet another implementation, the present disclosure is
directed a method of flank milling a component. The method includes
providing a component-geometry subroutine capable of determining a
surface geometry of a flank millable component, said
component-geometry subroutine configured to notify a user of said
sub-routine when the user selects a geometry option that will
result in the component not being flank millable, providing a
machine-instruction subroutine capable of converting a surface
geometry calculated by said component-geometry subroutine into
machine instructions for machining a flank millable component with
the cutter of a milling machine, and said machine-instruction
subroutine configured to calculate machine instructions that result
in minimal milling machine motion by simultaneously minimizing the
motion of the milling machine in both azimuthal and polar
directions.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] For the purpose of illustrating the invention, the drawings
show aspects of one or more embodiments of the invention. However,
it should be understood that the present invention is not limited
to the precise arrangements and instrumentalities shown in the
drawings, wherein:
[0009] FIG. 1 is a flow diagram illustrating a method of designing
a flank millable component and manufacturing the component with a
flank milling process;
[0010] FIG. 2 is a perspective view of an exemplary five-axis
milling machine;
[0011] FIG. 3 is a top view of an exemplary turbomachinery
component that can be designed to be flank millable and then
machined using optimized machining instructions;
[0012] FIG. 4 is a flow diagram illustrating a method of designing
a flank millable component;
[0013] FIG. 5 is an example graphical user interface for
implementing a method of designing a flank millable component;
[0014] FIG. 6 is an example graphical user interface for
implementing a method of designing a flank millable component;
[0015] FIG. 7 is a cross sectional view, in a meridional plane, of
a Fully Radial turbomachinery blade geometry with geometry
quasi-orthogonal lines;
[0016] FIG. 8 is a cross sectional view, in a meridional plane, of
a Fully Radial turbomachinery blade geometry with flow
quasi-orthogonal lines;
[0017] FIG. 9 is an example graphical user interface for
implementing a method of designing a flank millable component;
[0018] FIG. 10 is a perspective view of a turbomachinery impeller
having a plurality of blades with swept leading edges;
[0019] FIG. 11 is a perspective view of a turbomachinery blade
having a sheared edge;
[0020] FIG. 12 is a perspective view of a turbomachinery blade
having a rounded edge;
[0021] FIG. 13 is a flow diagram illustrating a method of designing
a flank millable component;
[0022] FIG. 14 is a flow diagram for a sub-routine of the method
shown in FIG. 13;
[0023] FIG. 15 is a flow diagram for a sub-routine of the method
shown in FIG. 13;
[0024] FIG. 16 is a flow diagram for a sub-routine of the method
shown in FIG. 13;
[0025] FIG. 17 is a flow diagram for a sub-routine of the method
shown in FIG. 13;
[0026] FIG. 18 is a flow diagram illustrating a method of
calculating milling machine instructions for flank milling a
part;
[0027] FIG. 19 is a perspective view of an initial position of a
milling machine rotary cutter;
[0028] FIG. 20 is a perspective view of the cutter of FIG. 19, and
also showing an amount of undercut;
[0029] FIG. 21 is a perspective view of the cutter of FIG. 19 in an
alternative orientation;
[0030] FIG. 22 is a flow diagram illustrating a method of
calculating milling machine instructions for flank milling a
part;
[0031] FIG. 23 is a perspective view of a cutter and a
turbomachinery blade surface;
[0032] FIG. 24 is side views of exemplary types of milling machine
cutters;
[0033] FIG. 25 is an illustration of cutter positions along a
machine path;
[0034] FIG. 26 is an illustration of a subset of the cutter
positions in FIG. 25;
[0035] FIG. 27 is a flow diagram illustrating a method of designing
a flank millable component with improved manufacturability; and
[0036] FIG. 28 is a diagram illustrating a machine capable of
implementing various aspects of the present disclosure.
DETAILED DESCRIPTION
[0037] Some aspects of the present invention include devices,
methods, and systems for designing a component that can be
machined, at least in part, with a flank milling machining process.
Methods of designing a flank millable component include monitoring
component geometry options selected by a designer and notifying the
designer when a geometry option is selected that will result in the
component no longer being flank millable. Other aspects include
providing the designer with options to modify the component
geometry to make the component flank millable. As will be seen
below, such feedback during the design process can be invaluable,
ensuring the final component design will be flank millable and
avoiding the undesirable situation of not learning until too late
in the product design phase that a component cannot be flank
milled. Other aspects of the present invention include improved
methods of calculating flank milling machining instructions that
determine an optimized machining path that results in reduced
machining time and superior surface finishes without sacrificing
accuracy of the shape of the component. Yet other aspects of the
invention include providing the component designer with details on
the manufacturability of the component early in the design
process.
[0038] FIG. 1 shows an example method 5 for designing and
manufacturing a flank millable component. As shown in FIG. 1, such
a method can begin at step 10, with the design of a flank millable
component. As noted above, flank milling involves using the side of
a rotary cutter, rather than the end of the cutter, to remove
material from a work piece. Designers and manufacturers often try
to design a part such that it can be machined with a flank milling
process because flank milling can result in improved surface finish
and significantly decreased manufacturing time and costs. For
example, in the turbomachinery field, the costs for manufacturing a
turbomachinery component such as an impeller can be quite high for
a number of reasons, including material hardness and complex
geometries. Significant reduction in manufacturing time and costs
have been realized by utilizing flank milling. In step 10, the
component may be designed using computer automated design (CAD)
which can involve CAD software operating on one or more computer
systems, such as the exemplary systems illustrated in FIG. 28 and
described in more detail below. A designer or other operator of the
CAD software may select from a myriad of geometry options and
geometry modifications to determine the final geometry of the
component. During step 10, the CAD software can include various
processes that, as will be described in more detail below, are
configured to notify the designer when the designer chooses a
geometry option that will result in a final component geometry that
will most likely not be flank millable. Armed with this valuable
information, the designer can make an informed decision to either
proceed and design a component that will not be flank millable, or
make appropriate adjustments to stay on a flank millable design
path.
[0039] After a flank millable component has been designed, at step
12, milling machine instructions are calculated for machining the
component. The milling instructions can be determined using
computer automated manufacturing (CAM) software that, as with the
CAD software, can be implemented on one or more computer systems
such as the systems illustrated in FIG. 28. The CAM and CAD
software may be either integrated in a comprehensive software
package or exist separately. During step 12, a data set developed
during step 10 that describes the shape of the component can be
converted into machining instructions, such as the paths a milling
machine cutter will take over a work piece to remove material to
obtain the final component geometry. During step 12, the CAM
software can include various processes and algorithms that, as will
be described below, are configured to calculate smooth machining
paths that eliminate excessive machine motion and reduce machining
time, without compromising component geometry. In one exemplary
embodiment, algorithms can describe the orientation of the cutter
in a three dimensional system, such as a spherical coordinate
system, and simultaneously minimize cutter motion in both angular
planes to find an optimal machining path. In some embodiments, the
CAM software may include a simulator that allows the manufacturer
to assess machining performance, such as machining time, machine
motion, and accuracy before machining the part. The manufacturer
may alter the optimized machining instructions based on the results
of the simulation. After the machining instructions are determined,
at step 14, the part is machined using flank milling for at least a
portion of the machining process.
[0040] FIG. 2 shows exemplary milling machine 20 that may be used
with the processes described herein to flank mill component or work
piece 22. In one embodiment, milling machine 20 is a five-axis
milling machine having work piece table 24 that can move in two
Cartesian directions and one rotary direction and head 26 that can
move in one Cartesian direction and one rotary direction. Head 26
is configured to drive rotary cutter 28 which can be used to
machine work piece 22 mounted on work piece table 24. While the
methods described herein can be used to design and manufacture any
number of different types of components, work piece 22 shown in
FIG. 2 and in greater detail in FIG. 3, is an exemplary
turbomachinery component that can be designed to be flank millable
using the processes disclosed herein and also machined using
optimized machining instructions also disclosed herein. Component
22 is an exemplary impeller, having a plurality of blades 25 that
have ruled surfaces 26 defined by guide curves 28 and 30 connected
by straight lines or rulings 32. As used herein and described in
more detail below, a ruled surface can generally be assumed to be
flank millable. A ruled surface is a surface that can be
represented by two or more guide curves, such as guide curves 28
and 30, connected by a plurality of straight lines, also called
rulings, such as rulings 32. Complex three dimensional surfaces can
be ruled, and for some shapes, such as twisted surfaces, the
straight lines or rulings may not be parallel. In addition, some
non-ruled surfaces can also be flank milled. The methods of
determining improved flank milling instructions described herein
can also be used to flank mill some types of non-ruled
surfaces.
[0041] FIG. 4 illustrates an exemplary process 40 for carrying out
step 10 of method 5 described above--designing a flank millable
component. Process 40 is an exemplary method that may be
implemented in computer software code, such as CAD software
configured to design turbomachinery components. Process 40 begins
at step 42 with a user selecting a flank millable option, which
activates various processes described herein for monitoring the
user's geometry selections. At step 44, the program monitors the
user's selections to determine if a selection has been made that
will result in a component that is not flank millable. If the user
has selected such an option, the process continues to step 46 and
notifies the user. After notifying the user, at step 48, if the
user has made additional geometry selections, the program returns
to step 44, and if not, at step 50 the process ends. In some
embodiments, process 40 also includes optional steps for providing
the user with suggestions for modifying the component geometry to
make it flank millable. More specifically, after notifying the user
at step 46, the process at step 52 may provide the user with
suggestions for making the component flank millable. At step 54,
the program determines whether the user has accepted the
suggestion, and if not, at step 50, the program ends. In
alternative embodiments, the program may provide a notification
that process 40 will end because the user has declined to select a
flank millable geometry. In yet other embodiments, the process 40
can determine whether the user has made a change other than the
change suggested at step 52 that results in a flank millable
geometry, and if so, continue to step 48 to determine whether the
user has made additional changes. Returning to step 54, if the user
accepts the suggested change to the geometry, at step 56, the
change is applied to maintain a flank millable component design.
The process then continues to step 48 to determine if the user has
made additional selections. If not, at step 50 the process ends,
and if so, the process returns to step 44 to determine whether the
additional selections will make the part no longer flank
millable.
[0042] FIGS. 5, 6, and 9 illustrate example graphical user
interfaces (GUIs) that may be used to implement process 40. FIG. 5
illustrates an example basic geometry GUI 60 that provides basic
component geometry options 62, 64, and 66, as well as flank
millable option 68 and sub-options to maintain a flank millable
geometry 70. As discussed above, a CAD program may provide a user
with a plurality of component geometry options, with some options
resulting in the component not being flank millable. Basic geometry
GUI 60 categorizes a plurality of basic geometry options as either
Type A geometries 62 that are normally flank millable, Type B
geometries 64 that can be flank millable if additional sub-options
are selected or modifications applied, and Type C geometries 66
that are assumed to be not flank millable. Flank millable option 68
is the option monitored in step 42 of process 40 and selecting
option 68 will activate the flank milling checks in process 40.
Sub-options 70 can be one or more options that allow for at least a
portion of the component to be flank millable despite the selection
of a geometry that could otherwise make the component no longer
flank millable. For example, if the user selects a Type B geometry
in category 64, the user could be prompted to select an appropriate
sub-option 70 to maintain the component as flank millable. In
addition, as discussed in more detail below, the user may select a
modification to one of the basic geometry models in categories A or
B that would result in the component no longer being flank millable
or at least the program no longer considering the component as
being flank millable. In such a case, the user may be prompted to
select an appropriate sub-option 70 to maintain a flank millable
geometry, or to relax certain design constraints so the program can
consider the geometry as flank millable.
[0043] FIG. 6 illustrates an exemplary basic geometry GUI 74 having
a plurality of basic geometry options 76 for designing a
turbomachinery component. GUI 74 also has a flank millable option
78 and sub-options 80. In the exemplary GUI 74, "Independent hub
and shroud," "Explicit shroud, radial inlet, exit rake," "NACA 65
Airfoil blades," "CETI (Patented)," "Specify shroud and lean
angle," "Use blade sections defined in Z," and "RTheta 2D Wedge
Diffuser" are basic turbomachinery blade geometry options that can
be defined by ruled surfaces, or in other words, can result in a
flank millable component and would be considered a Type A geometry
62 in example GUI 60. "Fully radial," "2-D with Bezier beta
distribution," "2-D with straight or circular arc blades," and "Use
a separate blade generating sheet" would be considered Type B
geometries 64 requiring additional checks to ensure the component
is flank millable. 2D Wedge Diffuser," "Custom," and "Specify hub
and extrusion direction" would be considered Type C geometries, or
in other words, are assumed to be not flank millable. In one
exemplary embodiment, if a user selected one of the Type C
geometries from GUI 74, flank millable option 78 would be greyed
out, or otherwise not selectable. In another embodiment, if the
user selects flank millable option 78 after selecting a Type C
geometry, the program would warn or prompt the user that a flank
millable geometry is not available for the basic geometry model
selected.
[0044] The "Fully radial," "2-D with Bezier beta distribution,"
"2-D with straight or circular arc blades," and "Use a separate
blade generating sheet" geometries are exemplary Type B geometries
because some additional modification(s) or sub-option(s) must be
made or selected to ensure the resulting component geometry is
flank millable. In this example, these geometries fall under Type B
because they have the common characteristic of being defined by a
zero-thickness mean camber sheet with a separate user-defined
thickness from the mean camber sheet. As discussed above, a surface
defined by ruled elements can be assumed to be flank millable. In
one embodiment, if a user selects one of these geometries, the
geometry will be considered flank millable if the user defines the
thickness of the blade along ruled lines. If the user defines the
thickness along another set of lines, the geometry would be
considered not flank millable. FIGS. 7 and 8 further illustrate two
exemplary options for defining the blade thickness for the "Fully
Radial" blade geometry. FIG. 7 illustrates a blade shape 82 defined
by ruled line elements, also referred to as geometry
quasi-orthogonal lines (QO) lines 84. As shown in FIG. 7, in the
illustrated embodiment, the geometry QO lines have a constant Z and
theta in a cylindrical coordinate system. By contrast, FIG. 8
illustrates the same blade shape 82 defined by flow QO lines 86. If
the user defined a thickness from the mean camber sheet along the
flow QO lines rather than the geometry QO lines, the resulting
surface may not be defined by straight or ruled lines. Thus,
additional checks are necessary for these example Type B
geometries, here, checking the thickness definition, to confirm the
blade will be flank millable. Note that other component geometries
can have geometry QO lines and flow QO lines with other
orientations.
[0045] In the example embodiment, the "Fully radial," "2-D with
Bezier beta distribution," and "2-D with straight or circular arc
blades," have the common characteristic that thickness is normally
applied along flow OQ lines, but if the thickness were applied
along the geometry QO lines, the resulting change in component
geometry is typically very small. Thus, in one embodiment, when a
user selects one of these three Type B geometries, and has selected
the flank millable option 78 (FIG. 6), the CAD program may
automatically apply the user's thickness definition along geometry
QO lines, rather than flow QO lines to ensure the component will
have a ruled surface. In an alternative embodiment, the program
could warn the user that the thickness must be applied along the
geometry QO lines and ask if the thickness definition should be
applied along the geometry QO lines. In yet another embodiment, the
program could perform an additional check to evaluate the effect of
changing the thickness from flow to geometry QO lines on the shape
of the component and only change the thickness automatically if the
difference is less than a predetermined value.
[0046] The "Use a separate blade generating sheet" option (FIG. 6)
is an example of a Type B geometry 64 (FIG. 5) because the lines
along the blade generating sheet on which the thickness definition
is applied is separately defined. Thus, additional sub-options must
be selected to ensure the geometry will be flank millable. FIG. 9
illustrates a GUI with examples of user-defined sub-options 90 for
the "Use a separate blade generating sheet" option. In this
example, two sub-options are relevant to ensuring the geometry is
flank millable. Sub-option "Linear theta from hub to shroud" 92
should not be selected because it would define a mean camber sheet
that is not ruled in (x,y,z) space, and sub-option "Thickness based
on the blade generating lines" 94 should be selected because it
will apply thickness along the geometry QO lines.
[0047] Referring again to FIG. 6, basic geometry GUI 74 has
sub-options to maintain flank millable geometry 80 that can be
selected to provide a user with increased flexibility in blade
geometry options while still maintaining a blade geometry that will
be, at least in part, flank millable. In the example GUI 74,
sub-options 80 include "Allow for point milled leading and trailing
edges" 96 and "Allow more than two sections to represent the blade
shape" 98. Sub-options 96 and 98 are examples of geometry options
that allow the program to consider more complex shapes flank
millable so that a user can modify a basic geometry, such as one of
the basic geometry options 76, while still maintaining a surface
that the program considers flank millable.
[0048] Sub-option "Allow more than two sections to represent the
blade shape" 98 may be used in situations where the user modifies
an otherwise flank millable blade geometry such that additional
sections are needed to fully describe the blade. For example, FIG.
10 shows an example turbomachinery impeller having a plurality of
blades 112 with swept leading edges 114. In this example, dotted
line 116 represents the leading edge for the original basic blade
geometry. The geometry of blades 112 were modified with an edge
cut, here an end portion of the blades being removed, resulting in
swept leading edges 114. The original basic blade geometry could be
represented by two sections--a hub guide curve or section 118 and a
shroud guide curve or section 120. Before making the edge cuts, the
program would consider blades 112 to be flank millable because the
blades could be represented by two sections--hub guide curve 118
and shroud guide curve 120, with ruled line elements 122 extending
between. The edge cuts for the swept leading edge 114, however, cut
across ruled line elements 122 such that the entire surface of
blade 112 can no longer be represented by line elements 122
extending between two sections 118 and 120. Sub-option 98, however,
allows the user to relax the constraints the CAD program uses to
determine whether blades 112 are flank millable. By selecting
sub-option 98, the program will allow for the addition of one or
more guide curves to bound ruled line elements 122 that no longer
extend from curve 118 to curve 120. Thus, if a user selects the
flank millable option 78 (FIG. 6) and adds a swept leading or
trailing edge to an otherwise flank millable geometry, such that
the entire blade can no longer be represented as a ruled surface
with two guide curves, the program can check to see if the user has
selected sub-option "Allow more than two sections to represent the
blade shape" 98 and if the sub-option is not selected, warn the
user that the edge cuts makes a two section representation
impossible. In alternative embodiments, the program could also
suggest that sub-option 98 be selected to allow the program to
maintain at least a portion of the blade as flank millable.
[0049] FIGS. 11 and 12, illustrate another example of a geometry
modification that requires the selection of additional sub-options
to allow the program to describe at least a portion of the blade
with a ruled surface. As shown in FIGS. 11 and 12, blade 126 (FIG.
11) has a sheared leading edge 127, while blade 128 (FIG. 12) has a
rounded leading edge 129. A rounded leading edge that is straight
and that can be defined by ruled line elements can be flank milled,
but if the rounded leading edge is not, for example, if a rounded
edge is added to a swept leading edge, then the rounded edge can no
longer be represented by a ruled surface. Sub-option 96 "Allow for
point milled leading and trialing edge" (FIG. 6) provides increased
flexibility so that a user can specify a non-ruled rounded leading
or trailing edge. If the user specifies a non-ruled rounded edge on
an otherwise flank millable shape and has selected sub-option 96,
the program will consider the component flank millable, allowing
for the rounded edges to be defined separately and point milled. In
an exemplary embodiment, if a user selects the flank millable
option 78 (FIG. 6) and selects an otherwise flank millable basic
geometry from the basic geometry options 76, but then specifies a
non-ruled rounded trailing or leading edge, the program can check
to see if the user has selected sub-option "Allow for point milled
leading and trialing edge" 96 and if the sub-option is not
selected, warn the user that the rounded edge will require point
milling. In an alternative embodiment, the program could also
suggest that sub-option 96 should be selected to allow the program
to maintain at least a portion of the blade as flank millable.
[0050] The foregoing discussion of specific basic blade geometries
and blade geometry modifications are merely exemplary embodiments
implementing the broader concepts disclosed herein. In alternative
embodiments, the methods and processes described herein may be
applied to a myriad of other turbomachinery component geometries,
as well as components other than turbomachinery components.
[0051] FIG. 13 illustrates exemplary method 130 for designing a
flank millable component, where a computer program, such as a
portion of a CAD program, monitors component geometry throughout a
design process and notifies a user if the component design veers
from a flank millable geometry. FIG. 13 illustrates at a high
level, method 130, which includes, inter alia, sub-routines 132.
Example embodiments of subroutines 132 are described in more detail
in connection with FIGS. 15-17. Method 130 begins at step 134 with
the user selecting a component geometry model, and at step 136,
checks to see if the user has selected a flank milling option, such
as flank millable option 78 (FIG. 6) indicating the user wants to
design a flank millable component. If the user has not selected the
flank millable option, at step 137, the process ends. If the user
has, at step 138 the program checks the geometry model chosen by
the user, and at step 140, checks any geometry modifications made
by the user. During subroutines 132, the program can provide
applicable warnings or notifications 142 related to ensuring the
blade is flank millable. At step 144 the program can check if such
warnings are generated and if so, at step 146 can display the
warnings and can also display suggested fixes. At step 148 the
program can check if the user has adopted any of the suggested
fixes and if so, at step 150 can apply the fixes and then at step
137 the program ends. In alternative embodiments, after step 150,
the program can monitor the component design for additional
changes, and if changes are made, re-perform steps 136-150.
[0052] FIGS. 14 and 16 illustrate an exemplary embodiment of the
check geometry model subroutine 138 (FIG. 13). The illustrated
example of sub-routine 138 begins with check basic geometry model
subroutine 160 which checks whether the basic geometry model
selected, for example, the basic geometry models 76 in example GUI
74 (FIG. 6), is flank millable. After checking the basic geometry
model, at step 162, the program determines whether a geometry
defined by a zero thickness mean camber sheet with a separate
thickness definition was chosen. If such a geometry was chosen, at
step 164, the thickness definition is analyzed to determine whether
a linear thickness has been defined. If such a selection was not
chosen, subroutine 138 ends and the process continues to step 140
(FIG. 13). At step 164, if the thickness definition is not linear,
the resulting blade surface will not be ruled, so at step 166, a
warning is generated notifying the user that the blade will not be
flank millable because of the non-linear thickness definition.
After checking whether the thickness is linear, at step 168, the
program checks whether the thickness is applied along ruled
elements, or geometry QO lines, as described above. If the
thickness is not defined along ruled elements, at step 170, a
warning is generated notifying the user that the blade will not be
flank millable unless the thickness is applied along ruled
elements. Subroutine 138 then ends and the process continues to
step 140 (FIG. 13). As described above in connection with the Fully
radial and 2-D geometries shown in FIG. 6, in alternative
embodiments, depending on the specific blade geometry option, at
step 168 the program may, instead of warning the user,
automatically change the thickness in a post-processing step so the
thickness is applied along ruled elements if the difference in the
resulting blade geometry is, for example, less than a predetermined
value. If such an automatic change is made, the program may notify
the user at step 170 that the change was made. For other
geometries, such as the "separate blade generating sheet" option
(FIG. 6), at step 168, the program may check whether appropriate
sub-options, such as sub-options 90 (FIG. 9) are selected in order
to determine if the thickness is applied along ruled elements. If
the appropriate sub-option is not selected, at step 170 the program
can warn the user that the sub-option must be selected to maintain
a flank millable geometry. At step 168, if the thickness is defined
along ruled elements, subroutine 138 ends and the process continues
to step 140 (FIG. 13).
[0053] FIG. 16 illustrates an exemplary check basic geometry model
subroutine 160, which checks for the selection of particular
geometry options to determine if any options have been selected
that would result in the component not being flank millable. The
specific geometry options discussed herein are merely for
illustrative purposes, and subroutine 160 may vary according to the
component type being designed and the particular geometry options
available. In the illustrated embodiment, subroutine 160 checks at
step 174 whether an unknown geometry model has been selected and if
so, at step 176 warns the user that the blade is assumed to be not
flank millable because the geometry is not recognized. If an
unknown geometry model is not selected, at step 178 sub-routine 160
checks if the geometry has more than two user controlled sections,
and if so, at step 180 warns the user that the program will assume
the blade will not be flank millable. If there are not more than
two user-controlled sections, at step 182, sub-routine 160 checks
if the geometry is ruled in non-Cartesian coordinates and if so, at
step 184 warns the user that the blade surface will not be ruled in
(x,y,z) space. If the model is ruled in Cartesian coordinates, at
step 186, sub-routine 160 checks if the blade edges are aligned
with the ruled element direction. If they are so aligned,
subroutine 160 ends and the process continues to step 162 (FIG.
14). If not, at step 188, subroutine 160 checks if the appropriate
sub-option allowing the blade to be represented by more than two
sections, for example sub-option 98 (FIG. 6) is selected. If not,
at step 190, the program warns the user that the blade edges make a
two-section representation impossible. In an alternative
embodiment, the program could suggest that an appropriate
sub-option, for example, sub-option 98 (FIG. 6), must be selected.
At step 192, the program checks whether the user has specified that
the edges not aligned with a ruled element direction are rounded,
and if not, subroutine 160 ends and the process continues to step
162 (FIG. 14). If rounded edges are specified, at step 194 the
subroutine checks whether the user has selected a sub-option
allowing for point milling a leading or trailing edge, such as
sub-option 96 (FIG. 6). If the point milling leading and/or
trailing edges sub-option is not selected, at step 196, the program
warns the user that the edges will require point milling. In an
alternative embodiment, the program mat also suggest the sub-option
be selected to allow the program to consider the blade as otherwise
flank millable. If the sub-option is selected, subroutine 160 ends
and the process continues to step 162 (FIG. 14). As mentioned
above, FIGS. 14 and 16 illustrate an exemplary check geometry model
subroutine 138 (FIG. 13), which illustrates how basic geometry
selections for a particular set of geometries for a particular type
of component (turbomachinery blade) would be performed. In
alternative embodiments, the check geometry model subroutine may
vary depending on the type of component being designed and the
geometry options available in the particular CAD program.
[0054] Returning to FIG. 13, check modifications to geometry model
sub-routine 140 may include a variety of different implementations
depending, in part, on the geometry modification options provided
by the CAD program. One example of check modifications to geometry
model sub-routine 140 is illustrated in FIGS. 15 and 16. As
described above, the geometry or shape of a component may be
modified in a way that additional sub-options must be selected to
maintain the component as, at least partially, flank millable, or
to allow the program to consider more complex shapes as flank
millable. As shown in FIG. 15, example sub-routine 140 begins at
step 200, determining whether a basic geometry model has been
modified. If not, subroutine 140 ends and the process continues to
step 142 (FIG. 13). If a basic geometry model has been modified, in
subroutine 202, the program checks whether the component can be
considered flank millable despite the modification, including if
one or more required sub-options are selected that, for example,
relax the constraints the program uses to determine if the
component is flank millable. If, at step 204, it is determined the
modification will result in a component that is not considered
flank millable, at step 206, the program generates a warning,
subroutine 140 ends, and the process continues to step 142 (FIG.
13). If at step 204 it is determined the geometry can still be
considered flank millable if certain sub-options are selected, then
at step 208, the program determines whether those sub-options have
been selected. If such sub-options have been selected, sub-routine
140 ends, and if not, at step 210 the subroutine generates the
appropriate warning and then the subroutine ends and the process
continues to step 142 (FIG. 13).
[0055] FIG. 17 illustrates an exemplary embodiment of "check if
flank millable if sub-option(s) selected" subroutine 202 (FIG. 15)
applied to a turbomachinery component CAD program. Sub-routine 202
begins at step 220, checking if a blade bowing option has been
selected. If so, sub-routine 202 assumes the blade surface is no
longer ruled and at step 224 warns the user that selecting the
bowing option will result in a component that is not flank
millable. Whether or not blade bowing is selected, subroutine 202
continues to step 226, to check whether a blade twisting option has
been selected. If so, sub-routine 202 assumes the blade surface is
no longer ruled and at step 228 warns the user that selecting the
twisting option will result in a component that is not flank
millable. Whether or not the blade twisting option was selected,
subroutine 202 continues to step 230 to check whether a fillet
option has been selected, which, for example, adds a fillet or
curved surface to the region where a blade meets the hub of an
impeller. If the fillet option is selected, sub-routine 202 assumes
the blade surface is no longer ruled and at step 232 warns the user
that selecting the twisting option will result in a component that
is not flank millable. Whether or not a fillet option was selected,
subroutine 202 continues to step 234 to check whether a blade
surface smoothing option has been selected. If so, at step 236 the
program checks whether smoothing has been applied to make a rounded
leading or trailing edge, and if so, at step 238 determines whether
the rounded edge has been cut from the blade or added to the basic
blade shape. If the rounded edge was cut from the blade,
sub-routine 202 assumes the rounding results in a blade surface
that is no longer ruled and at step 240 warns the user that
selecting the smoothing option will result in a component that is
not flank millable. After performing the smoothing and rounded edge
checks in steps 234-238, subroutine 202 continues to step 242 to
check whether any edge cuts have been applied, such as the example
edge cuts discussed above in connection with FIG. 12. If so, at
step 244 the program checks whether the edge cut results in a swept
edge or diameter trim that modifies a leading or trailing edge, and
if so, at step 246 the program determines whether a sub-option
allowing for the blade to be represented by more than two sections,
such as, for example sub-option 98 (FIG. 6) has been selected. If
such a sub-option has not been selected, at step 248, a warning is
generated that the swept edge or diameter trim makes a two section
representation impossible. In an alternative embodiment, the
program could also suggest that a sub-option be selected to allow
the blade to be represented by more than two sections. At step 244,
if the program determines the edge cut results in a swept edge or
diameter trim that modifies a leading or trailing edge, the program
also checks whether the modified leading or trailing edge is
rounded, and if so, at step 252 checks whether a sub-option
allowing for point milling, such as example sub-option 96 (FIG. 6)
has been selected. If not, at step 254, a warning is generated that
the rounded edge cut will require point milling. In alternative
embodiments, the program could also suggest that a sub-option
allowing for point milling a portion of the blade be selected to
allow the program to consider the remainder of the blade as flank
millable. After performing the edge rounding checks of steps 250
and 252, the subroutine ends and the process continues to step 204
(FIG. 15).
[0056] In the example sub-routine 202 shown in FIG. 17, for many
potential blade modification options, such as bowing, twisting,
fillets, and surface smoothing, the example sub-routine assumes the
blade is not flank millable if the particular options are selected.
In alternative embodiments, the program could perform additional
checks and provide additional sub-options that would allow the
blade to be, at least in part, flank millable despite the
modification. For example, if a fillet is applied, instead of
assuming the fillet results in a blade that is not flank millable,
the sub-routine could allow the fillet portion of the blade to be
represented by separate sections and, for example, point milled.
Similar additions could be made for other geometry options to allow
for more complex surfaces to be represented separately and maintain
a portion of the blade as flank millable.
[0057] Returning to FIG. 1, after step 10, where a flank millable
component is designed, at step 12, milling machine instructions are
calculated for milling the part. FIG. 18 illustrates step 12 in
further detail. As shown in FIG. 18, step 12 involves a first step
260, where a data set representing the shape of a flank millable
component is received. At step 262, the data set is converted into
a series of cutter positions, such as positions of cutter 28 of
5-axis milling machine 20 (FIG. 2).
[0058] Referring again to FIG. 2, as described above, component 22
is an exemplary impeller, having a plurality of blades 25 that have
ruled surfaces 26 defined by guide curves 28 and 30 connected by
straight lines or rulings 32. FIG. 19 illustrates the initial
position of cutter 28 (also shown in FIG. 2) determined in step 262
(FIG. 18). The position shown in FIG. 20 is the "pure" geometric
solution for flank milling of ruled surfaces, where cutter 28 is
located tangent to ruled surface guide curves 28, 30 at the
junctions of the rulings 32. The tangency between cutter 28 and the
ruled surface is shown by line 280 (FIG. 19), which is coincident
with a ruling 32. As discussed below, this orientation can be
referred to as an isoparametric-tangency orientation. The
isoparametric-tangency orientation, however, can result in
inaccurate machining results when the surface of the component
being machined is curved or twisted. As shown in FIG. 20, when
machining certain non-planar surfaces, cutter 28 can remove too
much material, resulting in an undercut 282 represented by the
difference between the desired surface at ruling 32 and the actual
path of the cutter, represented by line 284. Undercut 282 can,
however, be minimized by re-orienting the cutter from an
isoparametric-tangency orientation to a non-isoparametric tangency
orientation. An exemplary non-isoparametric tangency orientation is
shown in FIG. 21, where bottom portion 286 of cutter 28 is kept at
the location where a ruling 32 intersects guide curve 28, and top
portion 288 of the cutter is moved along guide curve 30 until the
contact point of cutter 28, represented by line 284 most closely
matches ruled surface 26 and undercut 282 (FIG. 20) is minimized.
In alternative embodiments, top portion 288 could remain fixed and
bottom portion 286 could be moved along guide curve 28, or both
ends of cutter 28 could be adjusted. Also, a reference point other
than the guide curves could be used for the adjustment.
[0059] Thus, an undercut-minimized cutter orientation can be
calculated for every point along a surface by finding a deviation
from the isoparametric-tangency orientation at each location. An
undercut-minimized solution, however, is often not desirable
because it can result in unacceptable milling machine motion. For
example, the rotary motion of milling machine head 26 (FIG. 2) can
be unsmooth, and there can be wild swings in work piece table 24
rotary motion, approaching 180.degree. from one instruction to the
next, even when there is only a slight change in cutter
orientation. Thus, a more optimized machining instruction is needed
that results in a within-tolerance undercut while also providing
smooth milling machine motion. Such an optimized set of
instructions is determined at step 264 (FIG. 18).
[0060] FIG. 22 illustrates an exemplary process for calculating
machine instructions for flank milling a work piece that results in
within tolerance undercut while also minimizing machine motion,
resulting in smooth machine motion and reduced machining time. At
step 289, a dataset representing a machined surface is received and
an initial cutter orientation is calculated. FIG. 23 illustrates an
exemplary coordinate system utilized by the present invention to
calculate an optimized machine path. At step 289 a two parameter
data set S(u,v) representing a machined surface 290 (FIG. 23) of a
component, is received. As shown in FIG. 23, surface 290 can be
represented by isoparametric guide curves 292 and 294, defined as a
u-curves with a constant v value. The orientation of cutter 28 can
be defined by the (x,y,z) location of cutter tip center 294, which
is offset from point (u,v) by the cutter tip radius, and cutter
orientation vector 296 defined in (.PHI.,.theta.) spherical
coordinates, with the cutter orientation vector being directly
related to the rotational axes of milling machine 20. FIG. 23
illustrates cutter 28 in an isoparametric tangency orientation with
the cutter orientation vector 296 aligned with an isoparametric
ruling along a constant u curve, indicated by cutter contact point
298 at (u,0). To determine the initial cutter orientation at step
289 (FIG. 22), the program calculating the machining instructions
also receives information on the size and shape of the cutter 28.
FIG. 24 illustrates exemplary cutter shapes that may be used with a
milling machine such as milling machine 20, with possible cutter
shapes including cylindrical with a ball end 300, conical with a
ball end 302, cylindrical with a flat end 304, and conical with a
flat end 306. The shape and radius of the cutter is used to
calculate the offset of cutter tip center 294 from point (u,v)
(FIG. 23), and cutter orientation vector 296.
[0061] With an initial cutter orientation determined, at step 308,
a subset of points along surface 290 are selected as fixed points
and an undercut-minimized cutter orientation is calculated at each
of those points. FIGS. 25 and 26 provide a conceptual illustration
of this step, where lines 310 (FIG. 25) represent all of the
machining positions for surface 290 and lines 312 (FIG. 26) are a
subset of fixed points, representing a subset of positions 310,
where an undercut-minimized cutter orientation is determined. As
described above, an undercut-minimized orientation can be
determined by altering the angle of the cutter 28 with respect to
the surface 290 (FIG. 23). In the illustrated embodiment, the
undercut-minimized orientation is determined by maintaining cutter
tip 294 at point (u,v), and varying the contact point of cutter 28
along isoparametric guide curve 294 from point 298 at (u,0) to a
point (u+/-.DELTA.u, 0) 302 (FIG. 23). At step 314, an initial
cutter orientation is calculated for the remaining points, or
unfixed points by linearly interpolating from the fixed points 312
undercut-minimized orientations. At step 316 a machine motion ratio
is checked for each of fixed points 312 to determine whether any of
the undercut-minimized orientations will result in excessive
machine motion. It has been determined, for example, that
near-vertical cutter orientations can result in large machine
motion. In an example embodiment, the machine motion ratio is
defined by the following equation:
Machine Motion Ratio = distance the tool tip travels relative to
the machine distance the tool travels relative to the workpiece Eq
. ( 1 ) ##EQU00001##
[0062] At step 318, if the machine motion ratio for any of the
fixed point undercut-minimized orientations is greater than a
predetermined value, then that point is unfixed and assigned an
initial linearly-interpolated orientation at step 314. The
predetermined value can be any number, and can be a user defined
parameter. In an example embodiment, the predetermined value can be
set to 2 such that if the machine motion ratio for any fixed point
is greater than 2, that point will be removed from the subset of
fixed points.
[0063] At step 320, an optimized cutter orientation is determined
for each of the unfixed points. U.S. Pat. No. 5,391,024 entitled
"Method for Multi-Criteria Flank Milling of Ruled Surfaces," which
is incorporated by reference herein in its entirety, describes
earlier approaches to determining a machining path that sought to
calculate machining instructions resulting in within-tolerance
undercut while minimizing machine motion. Approaches described in
U.S. Pat. No. 5,391,024 include separately interpolating cutter
orientation vector .PHI. values and e values, and then using a
empirically based scoring system to select one of the two
solutions. While those earlier approaches resulted in improved
machining instructions relative to calculating an
undercut-minimized machine path, they still resulted in unsmooth
machine motion for certain shapes. At step 320, an improved
calculation is utilized that determines an optimized machining path
by simultaneously minimizing machine motion in both the .PHI. and
.theta. directions. In an example embodiment, the optimization
calculation is defined by the following objective function:
S = i = 3 n ( .DELTA. 2 .PHI. i ) 2 + ( .DELTA. 2 .theta. i ) 2
where Eq . ( 2 ) .DELTA. 2 .PHI. i = .DELTA..PHI. i - .DELTA. .PHI.
i - 1 Eq . ( 3 ) .DELTA. .PHI. i = .PHI. i - .PHI. i - 1 d i - d i
- 1 Eq . ( 4 ) .DELTA. 2 .theta. i = .DELTA. .theta. i -
.DELTA..theta. i - 1 Eq . ( 5 ) .DELTA..theta. i = .theta. i -
.theta. i - 1 d i - d i - 1 Eq . ( 6 ) .PHI. i ( .DELTA. u i ) =
.PHI. io + .PHI. i u .DELTA. u i Eq . ( 7 ) .theta. i ( .DELTA. u i
) = .theta. io + .theta. i u .DELTA. u i Eq . ( 8 ) ##EQU00002##
[0064] .DELTA..phi..sub.i=first finite difference [0065]
.DELTA..sup.2.phi..sub.i=second finite difference [0066]
.phi..sub.i=machine axis value .phi. at point i [0067]
.theta..sub.i=machine axis value .theta. at point i [0068]
d.sub.i=distance along machining path at point i As shown in
equation (2), the objective function S is defined as the sum of the
squares of the second finite differences of the phi and theta
machining axes with .DELTA.u.sub.i as the independent variable. The
objective function is minimized using standard mathematical
techniques to find values of .DELTA.u. This is done by expanding
the terms of the objective function, setting
.differential.S/.differential..DELTA.u.sub.i=0, and solving the
resulting system of 5-banded linear equations. New values of phi
and theta are then calculated. The optimizer is called iteratively
due to the linear approximation of .phi..sub.i(.DELTA.u.sub.i) and
.theta..sub.i(.DELTA.u.sub.i), and stops when the change in the
value of the objective function between subsequent calculations is
less than a predetermined value. As shown in equations 5 and 6, a
backward differencing scheme is utilized in the present embodiment.
In alternative formulations, a central or forward differencing
scheme could also be utilized.
[0069] The result of the machine-motion minimized calculation at
step 320, where an objective function, such as objective function S
(Eq. 2) is minimized, is an optimized cutter path where machine
motion in both the .PHI. and .theta. directions is simultaneously
minimized. The optimized cutter path is reflected in new cutter
orientation .DELTA.u values (FIG. 23) for each of the unfixed
points. Because the objective function S (Eq. 2) does not consider
undercut, at step 322, the undercut is checked at each of the
unfixed points. At step 324, if the undercut at any of the unfixed
points is greater than a predetermined value, then those points are
added to the subset of fixed points (step 308) where an
undercut-minimized orientation is assigned. The process is then
repeated for the remaining unfixed points to determine
machine-motion minimized orientations. The predetermined value used
at step 324 can be a user defined parameter and can vary depending
on the acceptable tolerances for the component being machined, with
a lower predetermined value being set for parts having tighter
tolerances.
[0070] In some embodiments, at step 326, additional machine motion
control can be added to one or more locations. For example, for
some surfaces, the .phi. and/or .theta. curves calculated by the
minimized objective function can have a high rate of change in
certain areas, such as endpoints of the cutter path. For those
cases, the first finite differences of .phi. and .theta. can be
added to the objective function S in regions of high motion which
will result in a flatter optimized .DELTA.u graph in those regions.
In addition, in some exemplary embodiments, a user may specify the
.DELTA.u values for one or more locations to manually set the
orientation to either minimize machine motion or undercut, or both.
At step 328, an optimized set of machining instructions is
generated.
[0071] FIG. 27 illustrates a design process for designing a flank
millable component with improved manufacturability. At step 330, a
designer utilizing a CAD program may select a flank millable
option, such as the flank millable options disclosed herein, to
ensure the final component design is flank millable. At step 332,
an initial flank millable geometry is determined. At step 334, the
CAD program includes functionality to translate the geometry into
optimized machine instructions, using for example, the methods
disclosed herein for determining machine instructions that result
in within-tolerance undercut while minimizing machine motion. At
step 336, the CAD program can perform a machining simulation to
assess the machinability of the component and determine, for
example, locations of the component that will be difficult to
machine or result in excessive machining time. At step 338, armed
with this information, the designer may alter the component
geometry and then re-perform steps 334 and 336 until an optimized
component geometry is determined.
[0072] It is to be noted that any one or more of the aspects and
embodiments described herein may be conveniently implemented using
one or more machines (e.g., one or more computing devices that are
utilized as a user computing device for an electronic document, one
or more server devices, such as a document server) programmed
according to the teachings of the present specification and
appropriate software coding can readily be prepared by skilled
programmers based on the teachings of the present disclosure.
Aspects and implementations discussed above employing software
and/or software modules may also include appropriate hardware for
assisting in the implementation of the machine executable
instructions of the software and/or software module.
[0073] Such software may be a computer program product that employs
a machine-readable storage medium. A machine-readable storage
medium may be any medium that is capable of storing and/or encoding
a sequence of instructions for execution by a machine (e.g., a
computing device) and that causes the machine to perform any one of
the methodologies and/or embodiments described herein. Examples of
a machine-readable storage medium include, but are not limited to,
a magnetic disk (e.g., a conventional floppy disk, a hard drive
disk), an optical disk (e.g., a compact disk "CD", such as a
readable, writeable, and/or re-writable CD; a digital video disk
"DVD", such as a readable, writeable, and/or rewritable DVD), a
magneto-optical disk, a read-only memory "ROM" device, a random
access memory "RAM" device, a magnetic card, an optical card, a
solid-state memory device (e.g., a flash memory), an EPROM, an
EEPROM, and any combinations thereof. A machine-readable medium, as
used herein, is intended to include a single medium as well as a
collection of physically separate media, such as, for example, a
collection of compact disks or one or more hard disk drives in
combination with a computer memory. As used herein, a
machine-readable storage medium does not include a signal.
[0074] Such software may also include information (e.g., data)
carried as a data signal on a data carrier, such as a carrier wave.
For example, machine-executable information may be included as a
data-carrying signal embodied in a data carrier in which the signal
encodes a sequence of instruction, or portion thereof, for
execution by a machine (e.g., a computing device) and any related
information (e.g., data structures and data) that causes the
machine to perform any one of the methodologies and/or embodiments
described herein.
[0075] Examples of a computing device include, but are not limited
to, an electronic book reading device, a computer workstation, a
terminal computer, a server computer, a handheld device (e.g., a
tablet computer, a personal digital assistant "PDA", a mobile
telephone, a smartphone, etc.), a web appliance, a network router,
a network switch, a network bridge, any machine capable of
executing a sequence of instructions that specify an action to be
taken by that machine, and any combinations thereof. In one
example, a computing device may include and/or be included in a
kiosk.
[0076] FIG. 28 shows a diagrammatic representation of one
embodiment of a computing device in the exemplary form of a
computer system 400 within which a set of instructions for
performing the methods disclosed herein. It is also contemplated
that multiple computing devices may be utilized to implement a
specially configured set of instructions for causing the device to
perform any one or more of the aspects and/or methodologies of the
present disclosure. Computer system 400 includes a processor 404
and a memory 408 that communicate with each other, and with other
components, via a bus 412. Bus 412 may include any of several types
of bus structures including, but not limited to, a memory bus, a
memory controller, a peripheral bus, a local bus, and any
combinations thereof, using any of a variety of bus
architectures.
[0077] Memory 408 may include various components (e.g., machine
readable media) including, but not limited to, a random access
memory component (e.g, a static RAM "SRAM", a dynamic RAM "DRAM",
etc.), a read only component, and any combinations thereof. In one
example, a basic input/output system 416 (BIOS), including basic
routines that help to transfer information between elements within
computer system 400, such as during start-up, may be stored in
memory 408. Memory 408 may also include (e.g., stored on one or
more machine-readable media) instructions (e.g., software) 420
embodying any one or more of the aspects and/or methodologies of
the present disclosure. In another example, memory 408 may further
include any number of program modules including, but not limited
to, an operating system, one or more application programs, other
program modules, program data, and any combinations thereof.
[0078] Computer system 400 may also include a storage device 424.
Examples of a storage device (e.g., storage device 424) include,
but are not limited to, a hard disk drive for reading from and/or
writing to a hard disk, a magnetic disk drive for reading from
and/or writing to a removable magnetic disk, an optical disk drive
for reading from and/or writing to an optical medium (e.g., a CD, a
DVD, etc.), a solid-state memory device, and any combinations
thereof. Storage device 424 may be connected to bus 412 by an
appropriate interface (not shown). Example interfaces include, but
are not limited to, SCSI, advanced technology attachment (ATA),
serial ATA, universal serial bus (USB), IEEE 1294 (FIREWIRE), and
any combinations thereof. In one example, storage device 424 (or
one or more components thereof) may be removably interfaced with
computer system 400 (e.g., via an external port connector (not
shown)). Particularly, storage device 424 and an associated
machine-readable medium 428 may provide nonvolatile and/or volatile
storage of machine-readable instructions, data structures, program
modules, and/or other data for computer system 400. In one example,
software 420 may reside, completely or partially, within
machine-readable medium 428. In another example, software 420 may
reside, completely or partially, within processor 404.
[0079] Computer system 400 may also include an input device 432. In
one example, a user of computer system 400 may enter commands
and/or other information into computer system 400 via input device
432. Examples of an input device 432 include, but are not limited
to, an alpha-numeric input device (e.g., a keyboard), a pointing
device, a joystick, a gamepad, an audio input device (e.g., a
microphone, a voice response system, etc.), a cursor control device
(e.g., a mouse), a touchpad, an optical scanner, a video capture
device (e.g., a still camera, a video camera), touchscreen, and any
combinations thereof. Input device 432 may be interfaced to bus 412
via any of a variety of interfaces (not shown) including, but not
limited to, a serial interface, a parallel interface, a game port,
a USB interface, a FIREWIRE interface, a direct interface to bus
412, and any combinations thereof. Input device 432 may include a
touch screen interface that may be a part of or separate from
display 436, discussed further below. Input device 432 may be
utilized as a user selection device for selecting one or more
graphical representations in a graphical interface as described
above.
[0080] A user may also input commands and/or other information to
computer system 400 via storage device 424 (e.g., a removable disk
drive, a flash drive, etc.) and/or network interface device 440. A
network interface device, such as network interface device 440 may
be utilized for connecting computer system 400 to one or more of a
variety of networks, such as network 444, and one or more remote
devices 448 connected thereto. Examples of a network interface
device include, but are not limited to, a network interface card
(e.g., a mobile network interface card, a LAN card), a modem, and
any combination thereof. Examples of a network include, but are not
limited to, a wide area network (e.g., the Internet, an enterprise
network), a local area network (e.g., a network associated with an
office, a building, a campus or other relatively small geographic
space), a telephone network, a data network associated with a
telephone/voice provider (e.g., a mobile communications provider
data and/or voice network), a direct connection between two
computing devices, and any combinations thereof. A network, such as
network 444, may employ a wired and/or a wireless mode of
communication. In general, any network topology may be used.
Information (e.g., data, software 420, etc.) may be communicated to
and/or from computer system 400 via network interface device
440.
[0081] Computer system 400 may further include a video display
adapter 452 for communicating a displayable image to a display
device, such as display device 436. Examples of a display device
include, but are not limited to, a liquid crystal display (LCD), a
cathode ray tube (CRT), a plasma display, a light emitting diode
(LED) display, and any combinations thereof. Display adapter 452
and display device 436 may be utilized in combination with
processor 404 to provide a graphical representation. In addition to
a display device, a computer system 400 may include one or more
other peripheral output devices including, but not limited to, an
audio speaker, a printer, and any combinations thereof. Such
peripheral output devices may be connected to bus 412 via a
peripheral interface 456. Examples of a peripheral interface
include, but are not limited to, a serial port, a USB connection, a
FIREWIRE connection, a parallel connection, and any combinations
thereof.
[0082] Exemplary embodiments have been disclosed above and
illustrated in the accompanying drawings. It will be understood by
those skilled in the art that various changes, omissions and
additions may be made to that which is specifically disclosed
herein without departing from the spirit and scope of the present
invention.
* * * * *