[go: up one dir, main page]

AU5257899A - Excimer laser system for correction of vision - Google Patents

Excimer laser system for correction of vision Download PDF

Info

Publication number
AU5257899A
AU5257899A AU52578/99A AU5257899A AU5257899A AU 5257899 A AU5257899 A AU 5257899A AU 52578/99 A AU52578/99 A AU 52578/99A AU 5257899 A AU5257899 A AU 5257899A AU 5257899 A AU5257899 A AU 5257899A
Authority
AU
Australia
Prior art keywords
shots
loop
ablation
shot
begin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
AU52578/99A
Other versions
AU735732B2 (en
Inventor
Kristian Hohla
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technolas GmbH
Original Assignee
Technolas GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technolas GmbH filed Critical Technolas GmbH
Priority to AU52578/99A priority Critical patent/AU735732B2/en
Publication of AU5257899A publication Critical patent/AU5257899A/en
Application granted granted Critical
Publication of AU735732B2 publication Critical patent/AU735732B2/en
Assigned to HOHLA, KRISTIAN, TECHNOLAS GMBH OPHTHALMOLOGISCHE SYSTEME reassignment HOHLA, KRISTIAN Amend patent request/document other than specification (104) Assignors: CHIRON/TECHNOLAS GMBH OPHTHALMOLOGISCHE SYSTEME, HOHLA, KRISTIAN
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Laser Surgery Devices (AREA)

Description

4* 4*
V
V
V.
V
*4V~ V .4 C
AUSTRALIA
Patents Act 1990, Chiron/Technolas GmbH Ophthalmologische Systeme, Kristian Hohia
ORIGINAL
COMPLETE SPECIFICATION STANDARD PATENT
V
V.
V V
V
Invention Title: Exeiner laser system for correction of vision The following statement is a full description of this invention including the best method of performing it known to us:- 1A APPLICATION FOR PATENT TITLE: EXCIMER LASER SYSTEM FOR CORRECTION OF VISION WITH REDUCED THERMAL EFFECTS This application claims priority to United States patent application Serial No. 08/324,782, filed October 14, 1994.
BACKGROUND OF THE INVENTION 1. Field of the Invention The invention relates to an apparatus for surgically modifying the curvatur.e of the eye cornea and a method of controlling the apparatus, and more particularly to an apparatus for smoothly correcting a variety of corneal defects using a large, fixed spot size in an overlapping pattern that reduces thermal effects.
2. Description of the Related Art Since the initial development of corrective lenses, 15 new and better ways of correcting defective eyesight have been developed. From the bifocal lens and extended wear soft contact lens to corneal incisions and shaping, the S'.field of ophthalmology has seen great advances in convenience, safety, and accuracy in correcting a variety of sight defects, including myopia, hyperopia, and astigmatism.
While corrective lenses still find wide general application, ophthalmologists are focussing on surgery to correct such defects. One of the most popular surgical techniques is radial keratotomy, in which a surgeon forms radial slits in the outer surface of the cornea, allowing the cornea to re-shape and resulting in a modified cornea to correct the deficiencies of the patient's sight. This technique has continued to develop, but the advent of the laser and its introduction into the field of medicine have given rise to a new and potentially revolutionary method of eye surgery. Specifically, the development of the excimer laser and its application to eye surgery has opened a new approach to ophthalmological surgery.
The excimer laser produces coherent light of a very short wavelength of around 193 nm. At these wavelengths and the resulting high energies, the excimer laser removes, or ablates, tissue at the molecular level without significant heating of adjacent tissue. Thus, rather than "burning" away tissue, the excimer laser literally breaks 20 the molecular bonds, and the ablated tissue is ejected from the ablated surface leaving a relatively unmarred surface to heal virtually scar-free. This aspect of the excimer laser is now well known and is further described, for example, in U.S. patent 4,784,135 entitled "Far Ultraviolet 25 Surgical and Dental Procedures," issued November 15, 1988.
The word "excimer" in excimer laser was initially drawn from its molecular principal of operation. The excimer laser was initially based on the lasing action of excited dimers, such as xenon, krypton, or fluorine in the 30 form of Xe 2 Kr 2 or F 2 The word "excimer" as applied to lasers is now a misnomer, as the most popular excimer laser 1 3 used in eye surgery does not even use dimers--it uses argon fluoride. The excimer laser is also a pumped laser, in the sense that another laser is used to stimulate the lasing action of the argon fluoride mixture in the laser cavity.
"Excimer laser" has now come to be applied to an entire group of lasers with ultraviolet wavelengths below 400 nm.
When used in ophthalmological surgery, the excimer laser is preferably pulsed, as that allows for application of high energies without thermal heating. These pulses are very short bursts of high energy laser light applied to the cornea. For example, such a laser is typically pulsed at between 1 to 50 Hz with a 10 to 20 ns pulse duration.
A
drawback of the excimer laser, however, is the energy density over the beam tends to have both large and small scale inhomogeneities. The application of the excimer laser for surgical procedures is described in U.S. patent 4,784,135, entitled "Far Ultraviolet Surgical and Dental Procedures," issued November 15, 1988. For a historical .background of the development and application of the 20 excimer laser to ophthalmic surgery, see Chapter 1 of the Color Atlas/Text of Excimer Laser Surgery, 1993 Igaku- Shoin Medical Publishers, Inc.
As early as 1983, researchers recognized the potential application of excimer laser light in reshaping the cornea.
25 Since that time, a number of systems have been developed to reshape the cornea, using a variety of techniques such as variable sized circular apertures to correct for myopia, variable sized ring shaped apertures to correct for hyperopia, and variable sized slit shaped apertures to correct for astigmatism. These techniques collectively came to be known as photorefractive keratectomy. It has 4 been recognized that using such apertures to correct for myopia, for example, a series of excimer laser shots using progressively smaller spot sizes could ablate away a portion of the cornea to effectively build a "corrective lens" into the cornea. These techniques are discussed, for example, in U.S. patent 4,973,330, entitled "Surgical Apparatus for Modifying the Curvature of the Eye Cornea," issued November 27, 1990, and in U.S. patent 4,729,372, entitled "Apparatus for Performing Ophthalmic Laser Surgery," issued March 8, 1988. Those skilled in the art of laser ophthalmological surgery have extensively developed the required exposure patterns using these variable size apertures to provide an appropriate amount of correction to various degrees of myopia, hyperopia, and astigmatism, and a combination of these conditions.
These multiple aperture systems, however, suffer a number of drawbacks. They tend to be complicated and inflexible, requiring a number of aperture wheels or masks and only providing standard forms of correction for myopia 20 and hyperopia with circular symmetry and astigmatism with cylindrical symmetry. The human eye, however, tends to have more subtle defects. A system that could accommodate .these defects and provide more adaptable solutions, as well as a physically simpler components, would thus be advantageous.
An apparatus for ablating tissue from the eye is shown ~in U.S. patent 4,973,330, referenced above. This apparatus includes an excimer laser, the laser beam of which impinges on the cornea, with the axis of the laser beam coinciding 30 with the optical axis of the eye. Furthermore, a field *stop limits the area of the laser spot on the cornea illuminated by the laser beam, and the size of this field stop is set in a temporarily variable manner according to the profile of the area to be removed so that the thickness of the area to be removed is a function of the distance from the optical axis of the eye.
The system described in U.S. patent 4,973,330 permits in this way setting the "laser energy deposited" on the cornea as the function of the distance from the optical axis of the eye, but only under the condition that the distribution of energy the power of the laser beam spot) is homogeneous, or at least axially symmetrical.
This, however, is a condition that excimer lasers in particular do not always fulfill. Inhomogeneous power distribution results in non-axially symmetrical removal.
Moreover, the system described in U.S. patent 4,973,330 only permits the correction of spherical aberrations, not astigmatism.
An apparatus based on the same fundamental idea is known from U.S. patent 4,994,058, entitled "Surface Shaping Using Lasers", issued February 19, 1991. That apparatus employs a "destructible field stop mask" instead of a field stop having a temporarily variable aperture.
Another class of apparatus for shaping the cornea by means of removing tissue is known from the various L'Esperance patents. These include U.S. patent 4,665,913, entitled "Method for Ophthalmological Surgery," issued May 19, 1987; U.S. patent 4,669,466, entitled "Method and Apparatus for Analysis and Correction of Abnormal Refractive Errors of the Eye," issued June 2, 1987; U.S.
30 patent 4,718,418, entitled "Apparatus for Ophthalmological Surgery," issued January 12, 1988; U.S. patent 4,721,379,
II_
entitled "Apparatus for Analysis and Correction of Abnormal Refractive Errors of the Eye," issued January 26, 1988; U.S. patent 4,729,372, entitled "Apparatus for Performing Ophthalmic Laser Surgery," issued March 8, 1988; U.S.
S patent 4,732,148, entitled "Method for Performing Ophthalmic Laser Surgery," issued March 22, 1988; U.S.
patent 4,770,172, entitled "Method of Laser-Sculpture of the Optically used Portion of the Cornea," issued September 13, 1988; U.S. patent 4,773,414, entitled "Method of Laser-Sculpture of the Optically used Portion of the Cornea," issued September 27, 1988; and U.S. patent 4,798,204, entitled "Method of Laser-Sculpture of the Optically used Portion of the Cornea," issued January 17, 1989. In that apparatus, a laser beam with a small focus spot is moved by a two-dimensional scanning system over the area to be removed. This apparatus, which operates as a "scanner," has the advantage that it can generate any twodimensional profile of deposited energy "over the area to be removed." Because of the small size of the beam spot, the period of treatment, however, is very great, as power per area unit cannot be raised above a specific "critical" go value.
Thus, current techniques do not adequately address the non-linear energy distribution of an excimer laser. The S. 25 excimer laser includes both large scale and small scale o
Q
o S" non-linearities in its energy distribution. This can cause over-ablation and under-ablation of certain areas of the eye under treatment. Thus it would be desirable to provide a system that further homogenizes the effective energy a. 30 deposited on the eye.
a. .o a.
Systems that use apertures to create a series of progressively smaller shot sizes also suffer from the disadvantage of creating sharp ridges in the treatment zone of the cornea. Especially near the periphery of the treatment zone, a number of shots are typically required to create the necessary ablation depth at each particular spot size. The typical ablation depth for each shot is .2 m.
When multiple shots are required at a single aperture size, the ridge depth reinforces, creating an effective ridge of some multiple of .2 im. For example, five shots would result in a ridge height of 1.0 pm. These sharp ridges in the treatment zone can lead to unwanted epithelial regrowth, especially when correcting high diopter defects.
A system that minimizes such ridges would promote smoother epithelial healing, preventing excessive regrowth and allowing the corrected eye to retain its correction for a longer period of time and with more stability.
Before ablating, most current excimer techniques also require physically scraping away the epithelial layer from the eye. This can be a traumatic procedure for the patient, and requires a high degree of precision by the S. surgeon. Alternative, less invasive methods of removal of the epithelium before ablation of the cornea are thus desirable.
25 Another problem with current techniques involves ee* "central islands" created during the ablation process. A central island is an area of an ablation profile which is oe •not ablated to a depth proportional to the number of excimer laser shots fired on that particular area. For 30 example, in typical myopia patterns, the greatest depth of ablation is at the center of the pattern. In ablating such patterns, a recurring problem is that the central area is not ablated to as great a depth as is needed to create the proper ablation profile. The causes of this problem are not clear. However, techniques which reduce or eliminate this problem are highly desirable.
Further, present systems typically use e either a relatively small spot size of less than .50mm, or variable spot sizes that require the spot size to be adjusted throughout the treatment. A relatively small spot size has serious disadvantages, because it greatly increases the number of shots required to complete a treatment. A variable spot size also has disadvantages, in that it requires complex masking instrumentation to allow the spot size to be adjusted.
Reducing or eliminating either of these problems would be greatly desirable.
Another problem that has become apparent is thermal heating. Although an excimer laser is a "cold" laser, which functions by breaking molecular bonds rather than by burning, repeated shots at a particular location will cause the tissue to heat. This limits the maximum shot rate allowed at a particular location. This in turn has historically caused treatments to take at least a certain amount of time, because the maximum shot rate could not be exceeded.
Eliminating this limitation would similarly be desirable.
20 SUMMARY OF THE INVENTION The present invention provides a method of controlling a laser system, the laser system including a laser that emits a laser beam having a suitable wavelength and the laser system including an optical system that images the laser beam onto the cornea that has an area to be subject to ablation to a desired :25 treatment pattern for correcting vision, the area having a central point, the method including the steps of: •calculating a shot sequence to ablate the cornea to the desired treatment profile; sorting said calculated shot sequence; and directing the laser system to fire the laser beam in a series of shots, said series of shots corresponding to and fired in order of said sorted calculated shot *sequence.
The present invention also provides an apparatus for shaping the cornea by removing tissue from a region of the cornea that has an area to be subject to ablation to a desired treatment pattern for correcting vision, the area having a central point, the apparatus including: 1I1--IXI--l- a laser that emits a laser beam having a suitable wavelength; an optical system that images said laser beam onto the cornea; means for calculating a shot sequence to ablate the cornea to the desired treatment profile; means for sorting said calculated shot sequence; and means for directing the laser and optical system to fire the laser beam in a series of shots, said series of shots corresponding to and fired in order of said sorted calculated shot sequence.
The method and apparatus according to the invention provides corneal correction using laser "polishing" or "dithering" in which subsequent shots used to ablate the eye are randomly or otherwise moved from a center axis of treatment to prevent the formation of large ridges in the treatment zone.
In the context of the present invention, instead of using various aperture shapes, a relatively large beam is moved along the line of hyperopic or astigmatic correction desired, creating a line of overlapping shots. If further correction is necessary, overlapping lines are then created using various beam sizes, thus forming the desired correction curve in the cornea.
The present invention allows various non-symmetrical optical defects to be corrected, such as a "curved" astigmatism, by modifying the line of travel of the overlapping shots or by otherwise generating a sequence of shots to appropriately ablate a non-symmetrical defect.
It will be appreciated that the method of the present invention also enables removal of the epithelium using laser ablation. The epithelium may be first dyed with an infrared fluorescent dye, and then may be continually ablated 25 using a beam covering the area of epithelium to be removed until an infrared scanning device recognizes that some portion of the epithelium is gone, as indicated by a lack of fluorescence. Then, either manually or under computer control, the spot size may be reduced and areas that still fluoresce are ablated until they no longer fluoresce. This may be repeated until the epithelium has 30 been removed from the entire treatment area. This technique can also map the ~initial thickness of the epithelium before removal.
Further in the system and method according to the invention, myopia may be treated by creating lens formed by two astigmatism correcting ablation patterns at an angle to one another. Preferably, this pattern is developed by creating two astigmatism ablation patterns at right angles to each other. Further, according to the invention, each of these astigmatism ablation patterns is preferably created with a series of overlapping lines of shots.
The system and method according to the invention further provides a technique for using relatively small overlapping spots of a fixed size to accomplish a desired treatment pattern. In a preferred embodiment of the invention, a series of rings are calculated, in which each ring has a series of shots fired along the radius of the ring. Using an empirical algorithm, the number of shots, the distance of each ring from the center of the desired treatment area, and the optimal fixed shot size may be determined. According to another embodiment, a shot dithering pattern is used to distribute the large, overlapping shots throughout the treatment area. These techniques have a number of advantages, including allowing large overlapping shots, thus reducing treatment time, and reducing the formation of large ridges that would be encountered in a treatment pattern in which the shots were centered on the treatment area. This ridging effect is even further reduced by placing these shots in a spiral pattern.
Another advantage of the invention is that thermal heating may be reduced. This may be achieved by optimally adjusting the order in which the needed shots are fired. Typically, a single tissue location can only absorb a certain number of shots per second. According to one embodiment of the invention, however, subsequent shots in the treatment pattern are fired at different locations that are not overlapping. Then, the desired partially overlapping shot may be later fired overlapping the firs location. For example, a first shot is fired on one side of the treatment area, a second, nonoverlapping shot is fired on the other side of the treatment area, and then a third shot is fired partially overlapping the first shot. In another embodiment, the shot treatment array is sorted to maximize the distance between sequential shots. Alternatively, the array is randomly reordered, thus statistically reducing the number of verlapping sequential shots. It will be appreciated that the effective shot rate 30 can be doubled, because a particular point of tissue is only being ablated on ce..
every other shot. By displacing the shots from each other, even higher shot rates can be realized.
Calculating the shot patterns needed using a fixed large spot size is nontrivial, generally not easily derived. Therefore, further according to the method and apparatus of the invention, the shot patterns may be determined _11)~ 11 through an empirical search algorithm, which searches for appropriate rings of shots to ablate the desired pattern.
Further, according to the invention, shots are preferably fixed at a size between 2.0 and 3.5mm. This minimizes the number of required shots, while providing the resolution necessary to ablate virtually any desired pattern.
BRIEF DESCRIPTION OF THE DRAWINGS A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which: oo St r Figure 1A is a simplified diagram illustrating a typical excimer laser eye surgery system in which can be implemented the apparatus and method according to the invention; Figure 1B is a more detailed diagram illustrating the system of Figure 1A; Figures 1C and LD are a side view and an end view, respectively, of an alternative mirror arrangement to that shown in Figures 1A and 1B; Figure 2A is a view along the center axis of the treatment zone illustrating a typical large beam ablation pattern to correct for myopia; Figure 2B is a side profile of Figure 2A, further illustrating the use of transition zones; Figure 3A is a view along the center axis of the treatment zone illustrating random dithering according to the invention; Figure 3B is a view along the center axis of the treatment zone illustrating circular dithering according to 20 the invention; Figures 4A and 4B are illustrations showing a shot pattern for astigmatic correction according to the invention; Figure 5 is an illustration of a treatment zone illustrating a shot treatment pattern for a curved astigmatism according to the invention; Figure 6A and 6B are illustrations showing a shot pattern for treatment of hyperopia according to the invention; :invention; Figures 7A and 7B are side profiles of the cornea illustrating initial and ending radii of curvature over a treatment zone for correction of myopia and hyperopia; Figure 8 is an illustration of shot patterns used to correct for general non-symmetrical aberrations of the eye according to the invention; Figure 9 is a flowchart illustrating a calculation routine used to perform correction for astigmatism, hyperopia, and myopia using the random or circular dithering and large beam scanning according to the invention; Figures 10A, 10B, and 11 are flowcharts illustrating an astigmatism routine used by the calculation routine of Figure 9; Figure 12 is a flowchart illustrating a hyperopia routine used by the calculation routine of Figure 9; Figure 13 is a flowchart of a random dithering routine used by the calculation routine of Figure 9; ooe o Figure 14 is a flowchart of a circular dithering 20 routine used by the calculation routine of Figure 9; Figures 15 and 16 are views along the axis of treatment of the eye illustrating ablation of the epithelium according tb the invention; Figure 17 is a perspective view of a lens ablation pattern according to the invention created by ablating two orthogonal astigmatism correcting ablation patterns; Figure 18A is a top view of the ablation pattern of Figure 17; Figures 18B and 18C are side views of a portion of the ablation pattern of Figure 18A; 14 Figure 19 is an illustration of a shot pattern according to the invention using a constant spot size of mm to correct -5 diopters using a spiral shot dithering pattern according to the invention; Figure 20 is an illustration of a shot pattern according to the invention using a constant spot size of mm to correct -5 diopters using a slightly different form of spiral shot dithering pattern according to the invention; Figure 21 is an illustration of a shot pattern according to the invention using a constant spot size of 4.25 mm to correct -5 diopters using the search algorithm according to the invention; Figure 22 is an illustration of a shot pattern according to the invention using a constant spot size of numm to correct -7 diopters using the search algorithm according to the invention; *...Figure 23 is an illustration of a shot pattern according to the invention using a constant spot size of 20 2.0 mm to correct +5 diopters using the search algorithm according to the invention; Figures 24A and 24B are enumerations of each shot used to create the pattern of Figure 21 sorted by X position *e 9*order, the X position and Y position being given in microns; Figure 25 is a diagram illustrating how concentric rings of overlapping spots are calculated according to the *invention; 9*99 Figure 26 is a diagram illustrating how concentric rings of overlapping spots are created with each sequential shot not overlapping with the immediately previous shot; Figure 27 is a flow chart illustration of a search routine used to generate shot patterns according to the invention; and Figure 28 is a flow chart illustration of a shot dithering routine used to generate shot patterns according to the invention.
DETAILED DESCRIPTION OF THE PREFERRED
EMBODIMENT
Figure 1A, according to the invention, shows an excimer laser 20 providing a beam to a beam homogenizer 24 that also includes focusing components. The beam homogenizer 24 then provides a relatively homogeneous beam 22 to a field stop in the form of a diaphragm 36, which is regulated by a control unit 64 in such a manner that it limits the laser spot on an eye 44 to an area the maximum size of which is between approximately 10% and approximately 90% of the area of the region in which the tissue is to be removed when ablation is performed to correct for astigmatism or hyperopia. This preferred 20 maximum size is more dependent on the shape and size of the area to be ablated rather than any fixed percentage, and could be, for example, between 20% and 80%. The larger the .size of the spot that can be used the better, as that reduces treatment time.
25 Moreover, a beam manipulator unit in the form of a scanning mirror 42 is provided that also is regulated by the control unit 64. The scanning mirror 42 moves the axis .of the beam 22 over at least a part of the region on the eye 44 in which the tissue is to be removed.
The invention thus provides an eye surgery system for shaping the cornea by removing tissue with which 1III^XIIII -1^_111I~I-IIII1~I~ removal of non-axially symmetrical profiles can be realized in a relatively shorter time. Further, the eye surgery system 10 compensates for any inhomogeneous distribution of energy over the beam spot.
By this means, not only can a very small spot be illuminated, as in the case of a scanning unit, but also a relatively large region can be illuminated so that the treatment can occur relatively quickly. To shorten treatment time, it is preferred to maintain the size of the laser spot on the eye 44 as large as possible for as long as possible, for example to at least 50% of the size of the region to be treated.
The scanning mirror 42 can, by way of illustration, tilt about or around at least one axis. Mirror elements that can be used, and in particular that can be tilted about two axes, are described in U.S. patent 4,175,832, for example.
Further, the control unit 64 can regulate the size of the laser spot on the eye 44 in correlation to the movement S.i 20 of the beam axis (through use of the scanning mirror 42) on the eye 44, thus precisely regulating the energy deposited on a specific area of the eye 44. Thus, non-axially symmetrical profiles can be generated on the corneal surface of the eye 44. Different types of diaphragms 36 25 can be used, for example ovals or circles with blocked centers.
Moreover, the scanning mirror 42 can be placed in the beam 22 not only after the diaphragm 36, but also before a.
.the diaphragm 36. It would then be preferable to move the diaphragm 36 synchronously with the scanning mirror 42.
In correcting spherical aberrations, the control unit 64 preferably moves the scanning mirror 42 such that the beam 22 oscillates from shot to shot in at least one direction, such as is illustrated by an arrow 12. Such oscillation compensates for inhomogeneity of the energy distribution over the beam 22. This oscillation finds application regardless of the maximum beam size.
To correct astigmatism, the scanning mirror 42 moves the axis of the beam 22 between at least two directions, neither of which are collinear with the axis of treatment of the eye 44. This permits treating an astigmatic eye, which, without being limited by theory, the latest research states has not one apex, but two. That is, it has the shape of camel humps. Also, the control unit 64 regulates the scanning mirror 42 such that the axis of the beam 22 oscillates at least one-dimensionally about each direction, thus compensating for homogeneity of the beam 22.
To correct for hyperopia, the axis of the beam 22 is preferably moved on a conic-shaped shell surface, it also 20 being possible to superimpose an at least one-dimensional ":oscillation to compensate for inhomogeneity of the beam 22.
By moving on a conic-shaped shell surface, a circular pattern of overlapping shots are projected onto the eye 44.
*In adapting the diaphragm 36 to the typical shape of the cross-section of excimer laser beams, the diaphragm 36 may also have a non-axially symmetrical shape, with the otto diaphragm 36 being turned in order to homogenize the deposited energy during the movement of the axis of the achi beam 22 on the conic shell. The homogenization is enhanced 18 if the turning of the diaphragm 36 occurs asynchronously to the rotation of the axis of the beam 22 on the conic shell.
Figure lB shows additional details of the typical eye surgery system 10 in which the method and apparatus according to the invention would be implemented. An excimer laser 20 provides a pulsed beam 22 to a beam homogenizer 24 after reflection from optics 26. A shutter 28 is also provided to block transmission of the pulsed beam 22 to the beam homogenizer 24. The excimer laser is a typical excimer laser as is well known in the art.
It preferably provides a 193 nm wavelength beam with a maximum pulse energy of 400 mJ/pulse. The excimer laser preferably provides maximum power at the treatment site of 1 W, with a pulse frequency of 10 Hz and a pulse length of 18 ns. Of course a variety of other excimer lasers could be used, and the apparatus and method according to the invention further have application where a laser other than an excimer laser is used. By way of example, the wavelength of the light from the laser is preferably less 9..i 20 than 400 nm, as that provides the desired ablating action with reduced thermal heating. Further, other pulse energies can be provided, such as all the way down to 200 mJ/pulse, with typical repetition rates of 60 to 100 pulses per second with a typical pulse length of 10 to 30 ns.
Again, all of these are merely typical values, and deviation from them can be made without changing the spirit 9 of the apparatus and method according to the invention.
Further examples of such laser systems can be found in U.S.
patent 4,665,913, entitled "Method for Ophthalmological Surgery," issued May 19, 1987, and U.S. patent 4,729,372, entitled "Apparatus for Performing Ophthalmic Laser Surgery," issued March 8, 1988.
The beam homogenizer 24 preferably includes standard homogenization and focusing hardware, which can be based both on optical mixing of the beam and on rotation of the beam. For an example of typical beam homogenization hardware, see U.S. patent 4,911,711 entitled, "Sculpture Apparatus For Correcting Curvature Of The Cornea," issued March 27, 1990. Note that by providing the "dithering" according to the invention as discussed below, the beam homogenizer 24 can be simpler than the beam homogenization hardware shown in that reference. From the beam homogenizer 24, the pulsed beam 22 is then reflected off of optics 30, which also passes a red pilot laser beam from a pilot laser 32. This pilot laser 32 is preferably a 633 nm helium neon laser of less than 1 mW of power. The red pilot beam from the pilot laser 32 can also be blocked by a shutter 34. The pilot laser 32 is aligned so that its 20 optical pathway coincides with the pulsed beam 22. The pilot laser 32 provides the functions of centering the beam 22 on the axis of treatment of the eye 44, and also provides for focusing on the eye 44, as is discussed below.
*':Further, it can provide an optical fixation point for the patient, although a different laser or light source could also be provided for that purpose.
From the optics 30, the pulsed beam 20 (now also coaligned with the beam from the pilot laser 32) then passes through an adjustable diaphragm 36, which allows the beam size to be adjusted before it enters the final optics.
After the diaphragm 36, a spot mode lens 38, when in place, provides further concentration of the beam 22, allowing spot ablation of certain defects in the eye by a physician performing therapeutic rather than refractive surgery. The spot mode lens 38 is thus moved into and out of place depending on whether therapeutic or refractive treatment is desired.
Following the spot mode lens 38, a focusing lens directs the beam 22 onto the scanning mirror 42, which then reflects the beam 22 onto a patient's eye 44. Note that the portion of the beam 22 from the pilot laser 32 is used for both adjusting the distance of the eye 44 from the entire eye surgery system 10 and for providing centering, as will be discussed below. The focusing lens 40 focuses light such that when the eye 44 is at the optimal distance, the beam 22 is properly focused onto the eye 44.
These various lenses and mirrors thus combine to form an optical system providing an excimer beam to the cornea.
20 The optical system creates a laser spot on the cornea, and the spot size is adjustable, along with its location. It will be readily appreciated that a wide variety of different systems could be used to optically provide such 4* 4t a beam. For example, a lens could be used to adjust the 25 spot size rather than an aperture, and instead of a ~scanning mirror, the patient or the patient's eye 44 could be physically moved to provide for shots at different .locations on the eye 44.
4444 44 44 4 4 4e 4 Also provided in the system according to the invention is a focusing laser 46, whose beam can also be blocked by a shutter 48. The focusing laser 46 is preferably a green helium neon laser providing a beam of a wavelength of 535 nm and less than 1 mW of power. The beam from the focusing laser 46 travels through optics 50 and impinges on the eye 44 at an angle. The distance of the eye 44 from the eye surgery system 10 is adjusted such that both the beam from the pilot laser 32 and the beam from the focusing laser 46 impinge on the surface of the eye 44 at the same point.
Further provided is an optional fixation mask 52, which is well known in the art and is used to stabilize the eye 44 during surgery. It can include debris removal components, and is typically attached to the eye 44 through either a vacuum suction: ring or through hooks. A clean gas purge unit 54 ensures that the optics and the beams in the *system are free from any floating debris.
A microscope 56 is provided for the physician to observe progress during ablation of the surface of the eye 20 44. The microscope 56 is preferably a ZEISS OPMI "PLUS" part No. 3033119910, with magnifications of 3.4, 5.6 and times. Field illumination is provided by a cold light source not shown, which is preferably the Schott KL1500 Electronic, ZEISS part number 417075. This microscope 56 focuses through the scanning mirror 42 and also focuses "through a splitting mirror 58. The splitting mirror 0**0 further provides a view of the eye 44 to an infrared video unit 60, which is used for the epithelial ablation discussed below. The infrared video unit 60 preferably discussed below. The~ infrared video unit 60 preferably 22 provides an image output to a capturing video screen 62 and to a control unit 64. The infrared video unit 60 is preferably sensitive to both infrared light and visible light.
The control unit 64, which is typically a high performance computer compatible with an IBM PC by International Business Machines Corp., further preferably controls all components of the eye surgery system including the shutters 28, 34, and 48, the diaphragm 36, the spot mode lens 38, and the scanning mirror 42.
Figures IC and ID illustrate an alternative mirror arrangement to that of the mirror 42 of Figures 1A and lB.
Instead of using the single mirror 42, two mirrors 80 and 82 are used in the path of the beam 22 to ablate the eye 44.
The first mirror 80 is mounted on an axis 84 that provides for adjustment of the beam in one direction, while e.
the second mirror 82 is mounted on an axis 86 that allows adjustment of the beam in a second direction. When the 20 first mirror 80 is adjusted, for example, the beam 22 adopts an alternative beam path 88, which strikes the second mirror 82 at a different position, subsequently adjusting the position of the beam 88 onto the eye 44.
This is seen in Figure 1C. The other axis of adjustment is 25 provided by the second mirror 82. Referring to Figure 1D *it is seen that when the second mirror 82 is adjusted, the beam 22 takes an alternate beam path 90, thus allowing the beam to be moved in the second axis.
a. These two mirrors thus combine to allow the beam to be aimed anywhere on the eye 44. This combination of mirrors allows for mounting with a single axis of rotation, rather than the double axis of adjustment required by the mirror 42. This can simplify implementation of the optics of the excimer laser system 10. The mirrors are adjusted using servo motors coupled to the axis 84 and 86, with those servo motors not being shown.
Figure 2A shows a simplified top view of the cornea of a typical eye 44 on- which myopic correction has been performed. A treatment zone 100 of a width S is centered on an axis of treatment 102, which does not necessarily correspond to the optical axis of the eye 44. The treatment zone 100 is bounded by a first outer ablation ring 104, with subsequent ablation rings 106 to 114 shown spaced more widely towards the center of the axis of treatment 102 (note that preferably the smaller shots are performed first).
This wider spacing is topographical in effect, as in ."20 a typical system, the change in spot radius between shots may actually be constant, but with a greater number of shots performed toward the periphery of the treatment zone 100. Although only six ablation zones are shown, in a typical ablation pattern a greater number of spot sizes are 25 used, and a greater number of shots are also performed.
*o 9 The ablation function for calculating the necessary depth of ablation for myopia is discussed below in conjunction wh g 7 with Figure 7A.
99 o° O9 oooo oo 9 .9oo *.o°9 1 In performing high dioptric correction for myopia, using the standard ablation function discussed below may result in an excessive depth of ablation along the axis of treatment 102. As illustrated in Figure 2B, the standard equation for myopic ablation would result, for example, in a curve 120 which would lead to a high depth of ablation along the axis of treatment 102, and would also result in sharp edges 122 at the corner of the treatment zone 100.
For simplicity, Figure 2B shows the effect of treatment on a flat surface rather than the surface of the cornea. For such a high degree of correction, the use of transition zones can significantly reduce the edge effects in healing and can also reduce -the center depth of ablation along the axis of treatment 102. These transition zones 124 and 126 effectively create a multi-focal lens. In Figure 2B, two transition zones 124 and 126 are shown resulting in a shallower ablation curve 128. The first of these transition zones 124 is created by performing a myopic ablation over the full width S of the treatment zone 100 20 using a lesser degree of correction than the ultimate ~correction desired. Only those shots of a radius falling 9* into the radius of the transition zone 124 are performed, however, thus leaving a uniformly ablated surface inside transition zone 124 for further treatment. This results in an initial curve 130.
Then, another series of myopic ablation shots using the myopic ablation function discussed below is performed using a somewhat greater degree of correction but using a smaller "treatment zone" (in actual practice, the smaller o° shots are preferably performed first). This resulting curve and uniformly ablated area 132 creates the second transition zone 126. Finally, a series of shots are performed for the full desired correction but using an again narrower zone of treatment, resulting in the final curve 134. The use of transition zones is known to the art of photorefractive keratectomy, and is described, for example, in Chapter 6 of the Color Atlas/Text of Excimer Laser Surgery, 1993 Igaku-Shoin Medical Publishers, Inc.
These transition zones 124 and 126 reduce any sharp edges 122 from being created, which could otherwise result in undesirable patterns of epithelia regrowth, and also reduce ultimate depth of ablation along the axis of treatment 102.
The following are two typical tables showing transition zones. For treatment to correct -9.00 diopters of myopia over a 5 mm treatment zone 100, the following transition zones could be used: No. Min. Max. Correction 20 [mm] [mm] [diopters] o "1 0.50 4.00 -9.00 2 4.00 4.20 -7.50 3 4.20 4.40 -6.00 4 4.40 4.60 -4.50 25 5 4.60 4.80 -3.00 6 4.80 5.00 -1.50 Using this table, first a standard myopic correction using the equation discussed below would be performed for the I___II__III_ desired -9.00 diopters of correction, but instead over a treatment zone 4.00 mm wide. This provides full correction in the middle 4.00 mm zone. Then, a transition is created by ablating from 4.00 to 4.20 mm using the lesser correction of -7.50 diopters. This is repeated for the subsequent entries in the table, thus forming transition zones of a greater radius of curvature.
Without the transition zones, 88 pm would be ablated at the axis of treatment 102; with the transition zones, only 71 pm is ablated--20% less. This is good for the stability of the cornea.
An example of treatment for -12.00 diopters over a full 7 mm treatment zone 100 is illustrated below: No. Min, Max, Correction [mm] [mm] [diopters] 1 0.50 2.00 -12.00 2 2.00 2.20 -11.54 3 2.20 2.40 -11.08 20 4 2.40 2.60 -10.62 5 2.60 2.80 -10.15 6 2.80 3.00 -9.69 7 3.00 3.20 -9.23 8 3.20 3.40 -8.77 25 9 3.40 3.60 -8.31 10 3.60 3.80 -7.85 11 3.80 4.00 -7.38 12 4.00 4.20 -6.92 13 4.20 4.40 -6.46 ole iiiii~ 14 4.40 4.60 -6.00 4.60 4.80 -5.54 16 4.80 5.00 -5.08 17 5.00 5.20 -4.62 18 5.20 5.40 -4.15 19 5.40 5.60 -3.69 5.60 5.80 -3.23 21 5.80 6.00 -2.77 22 6.00 6.20 -2.31 23 6.20 6.40 -1.85 24 6.40 6.60 -1.38 6.60 6.80 -0.92 26 6.80 7.00 -0.46 Figures 3A and 3B show an ablation pattern corresponding to one of the ablation rings 104 to 114 of Figure 2A, but using the laser "dithering," or "polishing," according to the invention. The term "dithering" is used in the sense that small random or pseudo random 20 fluctuations are added to the beam 22 to "smooth" particular errors that would otherwise build up. Assuming one of the ablation rings 104 to 114 of Figure 2A includes .five shots at a particular spot size, Figures 3A and 3B show the effect achieved according to the method and 25 apparatus of the invention. In Figure 3A, the axis of treatment 102 is shown, upon which shots in past systems have been centered, as shown in Figure 2A.
According to the invention, however, the centers of the five shots are randomly distributed in a dithering zone *9
I
140 with the center axis of each shot being away from the axis of treatment 102. Five shots using randomly distributed centers 142 through 150 result in five individual excimer laser ablation shots 152 through 160.
The radius of the dithering zone 140 is preferably somewhat less than the radius of the shots themselves. As can be seen, any reinforcement--i.e., ridge height greater than a single shot ridge height--occurs only incidentally, and generally the ridges are distributed over a dithering band 162. This provides a "smoothing" effect, reducing average ridge height.
Figure 3B shows an alternative manner of performing this polishing, in which the shot centers 142 through 150 are evenly distributed around the periphery of the dithering zone 140. This case insures that none of the ablation shots 152 through 160, even though of the same radius, form reinforcing ridges.
In this manner, a smoother surface of the eye 44 is achieved during ablation to correct for myopia. This 20 polishing, or dithering, could also be described as an "oscillation" of the laser spot upon the cornea. This dithering could also be one dimensional rather than two, 0*e* and could also be created by vibrating the patient's eye 44, such as by vibrating the mask 52 or the patient himself. For example, a small mechanical vibrator could be placed in a patient table or in the mask 52. This could then provide the oscillation necessary. As can be readily *ooeSappreciated, such a dithering technique can be applied to
S
other forms of correction, such as using ring apertures and slit apertures to correct for hyperopia and astigmatism, as IX~YIIFn-- are known in the art. Further, the dithering could be applied to any other shot patterns such as for hyperopia and astigmatism, thus reducing the effects of both ridge height and beam 22 inhomogeneity.
Figures 4A and 4B illustrate a large beam scanning pattern used to correct for astigmatism according to the system and method of the invention. In the prior art, variable size slits were generally used to perform this correction, requiring further hardware and generally inflexible patterns of correction.
The method and apparatus according to the invention, however, correct astigmatism within the treatment zone 100, here with width S and length L, through a series of lines 170 and 172 created by a series of overlapping shots in the area to corrected for astigmatism. In the diagram, only the first line 170 and the second line 172 are shown, with the first line created using smaller spot sizes than the second line 172. According to the method of the invention, a lesser or greater number of lines are used to provide the 20 desired degree of correction for astigmatism. This results in the ablation profile as shown in Figure 4B. This profile generally corresponds to the curvature needed for .i a myopia ablation, whose formula is discussed below in conjunction with Figure 7A.
o* c go• A typical pattern used for ablating to correct for astigmatism for a -2.00 diopter correction would involve shots of: NSL, Spot Size Shots 1 1.067 11 2 1.679 8 3 2.141 7 4 2.484 7 5 2.726 6 6 2.885 6 7 2.977 6 8 3.019 6 9 3.022 6 10 3.000 6 At each spot size, a line is created corresponding to the lines 102 and 104, and preferably the spots overlap by approximately 88%. This would create an appropriate modified curvature corresponding to a -2.00 diopter correction for astigmatism. These would be spread over a 3 mm width S of the treatment zone 100.
Figure 5 is an illustration of shot patterns used to correct for non-symmetrical astigmatism. In this case, only a single treatment line 174 is shown; typically, a greater number of lines would be used, but for clarity, the single line 174 illustrates the treatment of a curved astigmatism that does not extend linearly across an axis of treatment 102 of the eye 44. In this way, a greater variety of types of astigmatism are correctable.
Figure 6A illustrates the large beam scanning according to the invention used to correct for hyperopia without using ring apertures. Instead, only the single diaphragm 36 is used to adjust the spot size, and a circular ablation ring 180 over the treatment zone 100, as is well known to those skilled in performing hyperopic ablation, is created using multiple rings of different spot sizes and various overlaps. The approximate ablation profile is shown in Figure 6B. The formula for the curvature for hyperopic ablation is discussed below in conjunction with Figure 7B.
It will be noted that the shots for hyperopic ablation extend beyond the zone of treatment 100 of width S. The shots outside of this area do not provide for optical correction, but instead provide a smooth transition at the edge of hyperopic ablation. Further, although the circular ablation ring 180 is not shown extending all the way to the center of the axis of treatment 102, the final series of shots at the largest shot size preferably extend very close to that axis, to provide a smooth profile from the center of the axis of treatment 102 to the edge of the treatment zone 100.
20 A typical shot pattern for hyperopic correction of 5.00 diopters would involve shots of: "No. Spot Size Shots Overlap 1 2.000 1052 99.25[%] 2 2.469 128 3 3.060 104 4 3.966 80 5 4.600 27 87 a In this pattern, each series of shots is used to create a ring with centers at a radius of 2.5 mm from the axis of treatment 102 of the eye 44. In this case, the preferred overlap is variable per treatment ring, and is illustrated in the table.
As can further be appreciated, although the illustrated shot patterns use circular apertures, another aperture shape could be used to create the hyperopic correction pattern and the astigmatism correction pattern according to the invention. For example, an oval shot shape could be used, and that oval could be rotated during the hyperopic correction, such that one axis of the oval pointed to the axis of treatment 102 of the eye 44.
Alternatively, the oval could be rotated asynchronously with the rotation about the axis of treatment 102, thus further reducing the effects of inhomogeneity of the beam 22.
Figures 7A and 7B illustrate various mathematical attributes of the ablation profiles of the preceding 20 ablation patterns. Figure 7A shows a typical ablation profile for myopic ablation and Figure 7B illustrates a typical ablation profile for hyperopic ablation. In both, the initial radius of the cornea of the eye 44 is given by RoLD and the new, desired radius of the cornea of the eye 44 is given by RNEW. The absolute zone of treatment 100 is designated of a width S, which corresponds to the effective area that performs the corrective function. It is typically between 2 and 8 mm, but can be larger or smaller.
The depth of ablation at any point within the treatment ea I_ 33 zone 100 of width S is given by a variable A, which stands for ablation depth. The distance from the axis of treatment 102 is given by a variable p.
To calculate the new radius RuN, the old radius RoL and a desired dioptric correction DcoR is used in the following equation: NEW RADIUS (Ro,D o) now n-1 R COxR ow NEW_RADIUS returns a parameter indicating the new radius of correction needed, RNEW, to given RoL and DcoR.
Both ROLD and RNEW are measured in meters, and are typically between 5 and 15 mm.
The formula for calculating the necessary depth of ablation to correct for myopia as illustrated in Figure 7A is given below: MYO_ABLATE RL, S, Dco) R 0 L 2 D -P2 n-l -OLD D CO 2 Ro o (n- 1 2 2 4 n-1RO D 4 The myopic ablation function MYO ABLATE returns a needed depth of ablation at a particular distance p from the axis of treatment 102, given the uncorrected radius of curvature *s ~_IOIIX~I~LII~J--- of the eye 44 RoL,, a desired zone of correction S, and a desired degree of correction DecR. The function MYO ABLATE also provides the appropriate degree of correction across the width S of a trench used to correct for astigmatism, as illustrated in Figures 4A and 4B.
Turning to Figure 7B, the formula for hyperopic ablation is given below: HYPABLATE (p,R ;D S Ro-w 2 Row (n- 1 O n-1. RoLDcoR n-l.RowDcon o- R The hyperopia ablate function HYP ABLATE only uses three parameters, as it does not need optical zone of correction S.
These specific algorithms for creating appropriate curvatures are well known in the art and can be found in MUNNERLYN, C. AND KOONS, PHOTOREFRACTIVE KERATECTOMY: A TECHNIQUE 15 FOR LASER REFRACTIVE SURGERY, Cataract Refract Surg., Vol. 14, (Jan. 1988).
Further, in the- routines for performing ablation i. discussed below in conjunction with Figures 9-14, the inverse of these equations are needed. While the above 20 equations return a depth of ablation needed at a particular value of p for a given degree of correction, the inverse equations do the exact opposite. They return the particular value of p at which a particular depth of C ablation is needed given a particular degree of correction.
These equations are given below: INV MYOABLATE (R OLD'S; A, DCOAR) 2 (R 2 .R 2
(C-A)
2
R'
OLD AFEW c-A) where C. VIR 2 1R2 -s12) 2 and Rw NEW RADIUS (R 0 LD,Dcom) INV/HYP ABLATE (ROLD IA, Dcom)
R
2 2 2 (R 02LD 1R1) C-A 2
OL
where C -R MEWR OLD a nd R1W NEWRADIUS (R 0 D, Dcon) The inverse myopic ablation function INVMYOABLATE returns a parameter indicating the distance corresponding to p from the center of ablation in meters given a depth of ablation A, also in meters. It also uses the parameters ROLD, St and DcRR 10 The inverse hyperopic ablation function INV HYPABLATE Ot~aalso returns a radius from the center of ablation in meters corresponding to p, given a depth of ablation A at a certain correction DcoR It returns p indicating how far away from the center of ablation a certain depth of ablation will be found.
Figure 8 illustrates how the system using aiming of the axis of ablation and variable spot sizes can correct for any topography of the eye 44 that is abnormal, including non-symmetric topographies. In Figure 8, one line of a desired treatment topography 190 is illustrated.
This could be retrieved, for example, from a computerized eye topography system which indicates various abnormalities in the surface of the eye 44. Using such a topography system, the eye surgery system 10, using the control unit 64, then performs a series of shots, which, for simplicity, are illustrated as eight shots 192 through 206. In actual practice, a far greater number of shots would likely be used. As the system knows the needed ablation at each point, it creates a map of the topography desired and performs ablation using various shot sizes aimed at various 20 points to perform the necessary correction. In this way, a wide variety of non-symmetrical defects of the cornea can be corrected, such as apple and banana shapes, as well as any other abnormal shape.
Figure 9 is a flowchart illustrating a CALCULATE routine 700 that would execute preferably on the control unit 64. The CALCULATE routine 700 calculates a series of shot patterns necessary to perform the desired ablation of the eye 44 to correct for a variety of conditions. In the ".described embodiment, shot patterns are created to correct 9. 9.
9 9 for astigmatism, hyperopia, and myopia as described in conjunction with preceding Figures 2A to 7. Further, the dithering as illustrated in Figures 3 and 4 is applied to myopic correction shot patterns.
Preferably, the CALCULATE routine 700 runs in the control unit 64, which performs the necessary shot calculations before beginning an ablation sequence. By having all the points precalculated, there is no delay in calculation, so each successive shot can be fired in rapid sequence, as soon as the excimer laser 20 is ready. This provides for quicker treatment times and less difficulty in having the patient center on an optical fixation point.
Beginning at step 702, the CALCULATE routine 700 sets a variable START DITHER to i. This variable indicates the first ablation shot at which dithering is to begin, and is further discussed below. Note that all of the ablation shots are preferably stored in an array, and START DITHER indicates a location within that array. Control proceeds from step 702 to step 704, where the routine 700 determines whether astigmatism correction is desired. This is preentered by the physician, including both angle of and degree of astigmatic correction, along with the maximum treatment area. As is readily apparent, the routine 700 could also request a degree of curvature for the line of astigmatic correction in the case of non-symmetric astigmatism, and even provide for greater correction o 5 towards one or the other ends of the astigmatic region.
If astigmatic correction is desired, control proceeds from step 704 to step 706, where an ASTIGMATISM routine 750 Oboe o ~7i[ 7 1 111 F~~~]1f1K is performed (discussed below in conjunction with Figures and 10B), creating the appropriate shot patterns for the desired astigmatic correction. These shot patterns, for example, correspond to those discussed in conjunction with Figures 4A and 4B.
Once the shot pattern for astigmatic correction is calculated at step 706, control proceeds to step 708, where STARTDITHER is set to a variable LAST VECTOR. LAST VECTOR points to the last calculated shot in the array for an ablation run. In this case, it points to the last vector calculated by the ASTIGMATISM routine 750. Because astigmatism involves overlapping shots rather than potentially reinforcing shots, dithering is preferably not performed during astigmatism correction in the disclosed embodiment, although it could be.
From step 704, if no correction for astigmatism was desired, and from step 708 in any case, control then proceeds to step 710, where the CALCULATE routine 700 determines whether correction for myopia is desired. If 20 not, correction for hyperopia is desired, so control proceeds to step 712 where a HYPEROPIA routine 850 is performed, to be discussed below in conjunction with Figure S-12. As correction for hyperopia is similar to correction ~for astigmatism, but with the shots in a circle rather than 25 a line, dithering is preferably not performed (although it .9 9° could be) in the disclosed embodiment, so control then proceeds to step 714, where the routine 700 returns to a master routine, which then allows the physician to begin 9 9 9999 ooo• 99 99 99 9 9 9•
I~
execution of the shot sequence calculated by the CALCULATE routine 700.
If at step 710 it was determined that correction for myopia is desired, the CALCULATE routine 700 then proceeds to step 716, where it determines whether transition zones are requested. If so, multiple myopic shot series must be formed with the initial "transition zone" series being created by performing a myopia correction. This was discussed above in conjunction with Figure 2B. So, control proceeds to step 718 where a MYOPIA routine is performed to create a transition zone. This creates a standard myopia correction shot sequence for the transition zone.
Proceeding again to step 716, it is again determined whether more transition zones are required. If the last transition zone shot sequence has been calculated, or if none is needed, control then proceeds to step 720, where the MYOPIA routine is again executed, this time to provide the final correction for myopia.
The creation of series of shot sequences to correct 20 for myopia is well known in the art. Given the necessary depth of ablation as determined by the MYOABLATE function described above, a shot pattern is created using appropriate shot sizes to conform to the necessary depth of :ablation at each point radiating away from the axis of 25 treatment 102.
°:6 Control then proceeds to step 722, where a DITHER routine 940 or 970 is executed as described below in conjunction with Figures 13 and 14, performing dithering, or randomizing, on all shots from START_DITHER as set in 9o6* 6eg .9 9.
909 either step 702 or step 708 to LASTVECTOR, which was described above in conjunction with step 708. At this point, calculation of the ablation shot sequence is complete, so control proceeds to step 714 where the CALCULATE routine 700 returns to the main program so that the physician can execute the ablation run as is now stored in the array.
Figures 10A and 10B are a flowchart of the ASTIGMATISM routine 750 that is used to calculate the shot vectors necessary to create "trenches" of overlapping lines to correct for a desired dioptric degree of astigmatism along a particular axis. An appropriate number of trenches are created, with each trench preferably using progressively larger spot sizes. Beginning at step 752, the necessary depth of overall ablation is calculated at the deepest part of the series of trenches. This is done using the myopic ablation function MYOABLATE, described above in conjunction with Figure 7A. A variable MAX ABLATE is set to the value returned by MYO ABLATE using p 0, indicating 20 the necessary depth at the center of the trench (the deepest point). Also passed to MYO ABLATE are the uncorrected radius of curvature ROLD, the necessary dioptric correction Dc, and the width of the astigmatism treatment zone S. Note that S is equal to the width of the astigmatism treatment zone, not the length.
Control then proceeds to step 754, where the necessary depth of ablation per trench is calculated. This is preferably calculated as is MAX ABLATE above, but instead :.setting a variable ABLATE, which indicates the amount of ft...
41 ablation per trench, to a value equal to MAX ABLATE divided by 10. This indicates.that preferably ten trenches are to be made, although less may be required as the amount of ablation per trench is calculated.
Control then proceeds to step 756, where a variable DEPTH is set equal to the previously calculated MAX ABLATE minus ABLATE. DEPTH indicates the amount of ablation remaining to be performed to provide the desired degree of correction.
Control then proceeds to step 758, where a minimum spot diameter MIN_SPOT_DIAM is calculated, indicating the smallest spot diameter to be used to create a trench.
MIN_SPOTDIAM is set equal to two times the radius returned by the inverted myopic ablation function INVMYOABLATE.
INV_MYO_ABLATE is called with the initial radius of curvature Ro, with A set to DEPTH plus ABLATE/2, with DcoR as the degree of dioptric correction desired, and with S as the width of the treatment zone. The value returned by calling this function is the radius at which 95% of the 20 overall ablation depth needed will be performed, and this radius will preferably be relatively close to the center of the axis of treatment--i.e., the radius will be small compared to the overall width of each trench.
Proceeding to step 760, a maximum spot diameter MAX_SPOT_DIAM is set equal to S, which is simply the width o* of the astigmatism treatment zone 100 (not the length).
Proceeding to step 762, a loop is entered that creates a series of trenches to provide for the overall degree of correction for astigmatism needed. First, at step 762 it 6 is determined whether DEPTH is greater than zero. Again, DEPTH is the remaining depth necessary to ablate, which will be greater than zero when enough trenches have not been created to provide the desired degree of correction.
If DEPTH is greater than zero, control proceeds to step 764, where the spot diameter SPOTDIAM is set equal to two times the result returned by INV_MYO_ABLATE, when that function is called with A set equal to DEPTH. This returns the radius at which the ultimate necessary ablation equals DEPTH. As DEPTH is initially nearly equal to the overall depth of ablation needed, the initial spot diameter will thus be small.
Proceeding to step 766, the spot diameter SPOTDIAM is empirically corrected. This is done by setting SPOT DIAM equal to (1 (.3*SIN(n. (SPOTDIAM-MIN_SPOTDIAM)/ (MAX_SPOT_DIAM MINSPOT_DIAM) This performs an empirical adjustment to the spot diameter to provide better results and better conform the overall correction to the desired curve necessary to correct for astigmatism.
20 Proceeding to step 768, a variable STEP indicating the amount to move the spot target on each succeeding shot is set equal to SPOTDIAM*(DEPTH_PER_SHOT/ABLATE).
DEPTH_PER_SHOT is the amount of ablation per shot, and is typically .2 pm. Then, at step 770 a variable OVERLAP is 25 set equal to 100.(SPOT DIAM STEP)/SPOTDIAM. This is the amount of overlap in percent needed for each shot.
*Proceeding to step 772, a routine LINE 800 is called, discussed below in conjunction with Figure 11, with 8 set to the angle at which to create the line of astigmatism, a *e 43 LENGTH variable set to a predetermined length of the astigmatism series of shots plus 2"SPOT DIAM, SPOTDIAM indicating the spot size, and OVERLAP.
The series of shots for the line having been created, control proceeds to 774, where DEPTH is reduced by ABLATE, which is the amount to ablate per trench. Control then loops to step 762, where the reduced value of DEPTH is again compared to zero. This loop is repeated, creating lines of shots with progressively larger spot diameters, until DEPTH is less than zero. DEPTH will be less than zero when virtually all of the ablation shots have been calculated necessary to perform the desired degree of correction.
Once DEPTH is less than zero, control proceeds to step 776, where it is determined whether DEPTH plus ABLATE is greater than DEPTH PER SHOT. If not, then another line of ablation should not be performed, as that would provide too much correction, so control then proceeds to step 778 where the ASTIGMATISM routine 750 returns to the CORRECTION 20 routine 700.
If at step 776 the "residue" of ablation still needed does not exceed DEPTH_PER_SHOT, control instead proceeds to step 780. There, SPOTDIAM is set to the maximum spot diameter of S, which is the width of the treatment zone 100 25 for the astigmatism line of trenches, STEP is set equal to SPOT DIAM.DEPTH PER SHOT/(ABLATE DEPTH) and OVERLAP is set equal to (SPOT DIAM STEP).l00/SPOT DIAM.
Control then proceeds to step 782, where a final **.trench is created using the variables set at step 780 spot S. 44 width by calling the routine LINE 800. The routine 750 then returns at step 778.
The ASTIGMATISM routine 750 thus creates a shot pattern as described above in conjunction with Figure 4A.
Figure 11 is a flowchart of the LINE routine 800.
This routine 800 calculates the shots for the generation of a line used in creating an astigmatism correction sequence of shots. The desired spot size is passed to the routine 800 in a variable SPOT DIAM, an overlap percentage is passed in a variable OVERLAP, and the length of the line is determined by a LENGTH variable passed to the LINE routine 800.
Beginning at step 802, the LINE routine 800 first calculates the step size, which is equal to SPOTDIAM.(1-OVERLAP). Proceeding to step 804, the number of shots required is calculated equal to the truncated value of (LENGTH SPOT DIAM STEP)/STEP. Proceeding to step 806, a counter variable I is set equal to a variable START_VECTOR which is equal to LAST_VECTOR 1.
LAST VECTOR is set equal to I upon completion of the LINE routine 800.
Control then proceeds to step 808, where a variable corresponding to the X axis displacement from the axis of treatment 102 is set equal to ((LENGTH SPOT_DIAM)/2)'cos 25 8, where 8 is the angle of desired astigmatic correction.
In step 810, Y is correspondingly set to ((LENGTH SPOT DIAM)/2).sin 8.
S* Control then proceeds to step 812, where it is determined whether I. equals START_VECTOR plus SHOTS, e**
C
indicating the end of this line of shots. If not, control proceeds to step 814, where an array location X SHOT[I] corresponding to the shot location of this particular shot is set equal to X and Y_SHOT[I] is correspondingly set equal to I. Then, at step 816 X is set equal to X (STEP-cos 8) and Y is set equal to Y (STEP-sin 8).
This is the delta increment required for the next shot.
Control then proceeds to step 818, where I is incremented, and the routine then loops to step 812. Once I is equal to START_VECTOR SHOTS, indicating the end of this line, the routine returns to the ASTIGMATISM routine 750 at step 814.
Figure 12 is a flowchart of the HYPEROPIA routine 850 that creates circular trenches about the axis of treatment 102. It is similar to the ASTIGMATISM routine 750, but creates the circular trenches of an appropriate profile to correct for hyperopia rather than for astigmatism (which uses a myopia correction function).
*Beginning at step 852, a variable DEPTH is set equal 20 to the parameter returned by HYPABLATE discussed above in t conjunction with Figure 7B, when p is set equal to S/2 MIN SPOT RADIUS, where S is the diameter of the appropriate area of treatment and MINSPOTRADIUS is the minimum spot size to ever be used for hyperopia ablation, 25 which could be set, for example to 200 pm. HYP_ABLATE is also called with R,L representing the uncorrected curvature of the eye 44 and DCORR representing the desired degree of dioptric correction. DEPTH thus equals the remaining depth to ablate. It is initially less than the total depth to 46 ablate, as p was set just inside the circle of ablation as indicated by S/2 with MINSPOTRADIUS subtracted, which is the first spot radius at which to ablate.
Proceeding to step 854, a variable ABLATE, which indicates the amount to ablate for this hyperopia treatment, is set equal to a parameter returned by HYP_ABLATE called with p equal to S/2, with that returned parameter decreased by the amount DEPTH. Thus, ABLATE is the difference in depth at the edge of the area of treatment as indicated by S/2 and the depth at a distance MIN_SPOT_RADIUS just inside that treatment area.
Proceeding to step 856, a variable SPOT DIAM is set equal to MIN_SPOT_RADIUS.2, a variable STEP is set equal to SPOT_DIAM*DEPTH_PER_SHOT/ABLATE, and a variable OVERLAP is set equal to ((SPOT_DIAM STEP)/SPOTDIAM) 100 expressed as percent). Thus, the first circular trench will be shot using the minimum spot diameter as indicated by MINSPOTRADIUS*2.
Proceeding to step 858, a routine CIRCLE LINE is 20 called which calculates the series of shots necessary to ablate a circular trench given the variables SPOT DIAM, STEP, and OVERLAP. The CIRCLE LINE routine directly corresponds to the LINE routine 800, except that the circle is shot at a fixed radius given by S/2, instead of being 25 shot along a line. Its implementation corresponds to the LINE routine 800, with the exception that each succeeding shot is incremented along the radius of p equal to S/2, rather than along a line.
S U 47 Proceeding to step 860, ABLATE is set equal to a parameter returned by HYP_ABLATE when HYP ABLATE is called with p equal to S/2, with that returned parameter then divided by 10. This corresponds to preferably ten trenches being ablated to form the appropriate profile of curvature to correct for hyperopia.
Proceeding to 862, DEPTH is then set to DEPTH minus ABLATE, which reduces DEPTH by 1/10th of the total depth needed to ablate the hyperopic trench.
The routine 850 then proceeds to step 864, where it is determined whether DEPTH, which indicates the total depth remaining to ablate, is greater than zero. If so, then there remaining trenches to ablate, so the routine proceeds to step 866, where SPOT_DIAM is set equal to the parameter returned by INV HYP ABLATE when that function is called with A equal to DEPTH. This then returns the radius at which ablation must occur to a depth equal to the current value of DEPTH in order to provide the appropriate correction for hyperopia. This returned parameter, 20 however, is a radius from the axis of treatment 102. To calculate the actual spot diameter, SPOT DIAM is set equal to 2* (S/2 SPOTDIAM). This sets SPOT DIAM to two times the difference of the radius of the actual zone of treatment minus the radius at which the current ablation 25 depth is to occur. This difference in radii times two is thus equal to the spot diameter for the current trench to ablate.
Proceeding to step 868, STEP is set equal to SPOT_DIAM*DEPTH_PER_SHOT/ABLATE. Proceeding to step 870, e 7~ l l i I 48 OVERLAP is set equal to ((SPOT_DIAM STEP)/SPOT_DIAM)*100, which sets the appropriate overlap in percent.
Using these values of SPOTDIAM and OVERLAP, and with P equal to S/2, at step 872 the routine CIRCLE LINE is called, creating a circular trench. Proceeding to step 874, DEPTH is again set equal to DEPTH minus ABLATE. The routine then loops to step 864, and continually loops through steps 866 through 874 until DEPTH is not greater than zero.
When DEPTH is not greater than zero at step 864, the routine 850 proceeds to step 876, where it is determined whether ABLATE plus DEPTH is greater than RESIDUE, where RESIDUE is an arbitrary value at which another trench is not to be ablated. This value is preferably 500 microns, although could be a different value. If ABLATE plus DEPTH is greater than RESIDUE, then more than that RESIDUE value remains to be ablated, so the routine 850 proceeds to step 878, where a final trench is created using a SPOTDIAM of 2*(S/2 MIN SPOT SIZE) and an OVERLAP of ((SPOT DIAM 20 STEP)/SPOT_DIAM)*100. Then from step 876 and step 878, the routine returns at step 880.
Figure 13 is a flowchart of a RAND DITHER routine 940 which corresponds to the DITHER routine as noted in step 722 of Figure 9. The RAND DITHER routine 940 randomly 25 dithers all vectors in the described array from START DITH to LAST_VECTOR. START_DITH was previously set at step 702 or step 708 of Figure 9 to be equal to the first array location following shots used for correction of astigmatism. Thus, dithering is preferably applied to the
I
myopia correction, rather than to the astigmatism correction. The RAND_DITH routine 970 creates a shot pattern as is illustrated in Figure 3A.
The RAND_DITHER routine 940 begins at step 942 by setting a counter variable I to STARTDITH. Control then proceeds to step 944, where an intermediate variable X DUM is set equal to a random number RANDOM between 5 and times AMPLITUDE times SPOT_SIZE[I]. The variable AMPLITUDE was passed to the RAND_DITHER routine 940 as indicating the appropriate amplitude of dithering in fractional percentage of spot size, and SPOT_SIZE[I] corresponds to the spot size for this particular shot.
Control then proceeds to step 946, where the routine 940 determines whether the absolute value of X DUM is greater than a limiting size denoted by a variable LIMIT, which is predetermined by the system. If X DUM is too large, control then proceeds to step 948, where X DUM is set equal to LIMIT XDUM/ABS(X DUM), which sets XDUM to LIMIT with the appropriate sign appended.
20 If X_DUM was not too large in step 946, and in any case from step 948, control then proceeds to step 950, where X_SHOT[I] is set equal to X SHOT[I] X DUM, which provides a random dithering effect according to the invention. Control then proceeds to steps 952, 954, 956, 25 and 958, where Y SHOT[I] is adjusted with the random dithering as X_SHOT[I] was dithered at steps 944 through 950.
~Control then proceeds from step 958 to step 960, where the RAND DITHER routine 940 determines if I LAST VECTOR, 974, if that step was not true, control then proceeds to step 978, where I is set equal to START VECTOR.
Control then proceeds to step 980, where X SHOT[I] is set equal to XSHOT[I] (DIAM/2)*cos ((2n*I*ROTATIONS)/NUM VECT). This circularly adjusts the center of each shot. Y_SHOT[I] is correspondingly adjusted in step 982.
From step 982, control proceeds to step 984, where it is determined whether I is equal to LASTVECTOR. If not, control then proceeds to step 986 where I is incremented for another pass through steps 980 and 982 to adjust subsequent vectors.
If from step 984 I is equal to LASTVECTOR, control then proceeds to step 988, where control returns to the CALCULATE routine 700.
It will be readily appreciated that this dithering, or oscillation, could also be applied one dimensionally, and could be used for hyperopia and astigmatism correction as well.
Figure 15 illustrates an image returned by the video unit 56 in performing epithelia ablation using infrared dye and using the scanning large beam according to the invention. The epithelium is typically approximately 50 um thick. As the preferred excimer laser 20 used in the 25 system S according to the invention ablates approximately .2 pmu per shot, 250 initial shots will typically be needed until the epithelium has been ablated. At some time before that point, however, variations of the epithelia thickness a a indicating that the last vector desired has been dithered.
If not, control proceeds to step 962, where I is incremented, and control then loops to step 944 to process the next shot.
If at step 960 I equals LAST_VECTOR, the RAND_DITHER routine 940 is complete, so the routine 940 then returns at step 964.
Figure 14 shows an alternative routine CIRCLE DITH 970, which can be used instead of the RAND DITH routine 940. A shot pattern as created by the CIRCLE_DITH routine 970 is illustrated in Figure 3B. The CIRCLE_DITH routine 970 begins at step 972, where a variable NUM_VECT is set LAST_VECTOR START_VECTOR, both of which were passed by the calling routine. Proceeding to step 974, it is determined whether NUM VECT/ROTATIONS is less than 10. The variable ROTATIONS is passed to the routine 970 to indicate how many circular rotations to make around the axis of treatment 102 in adjusting all of the shots. The check is made at 974 to prevent an excessive number of rotations if 20 there are insufficient shots. For example, if there are S: only twenty vectors, ten revolutions would result in two sets of ten shots each 180° apart. By arbitrarily requiring NUM VECT/ROTATIONS to be at least 10, this prevents such accumulation of shots, requiring the shots be distributed 25 over at least ten different points around the axis of treatment 102. If NUM VECT/ROTATIONS is less than control proceeds to step 976, where ROTATIONS is set equal "000 to the truncated value of NUM VECT/10. From step 976 and 0 ii come into play. For example, some points might be 40 pm thick, while others are 60 pm thick.
The system S according to the invention removes the epithelium by sensing when it has completely removed at least a portion of the epithelium, and then selectively removing the remainder. Figure 15 illustrates an epithelial removal zone 1000 in which a predetermined number of shots have been previously performed using a spot size the size of the epithelial removal region 1000. After each shot, the infrared video unit 56 captures any infrared fluorescence emitted from the eye 44. This fluorescence is created by first dyeing the epithelium with an infrared fluorescent dye that does not dye the layers underlying the epithelium. This dye is preferably infrared fluorescent to reduce the possibility of a pumped lasing action into the eye 44 of damaging frequencies of light at damaging energies. Other dyes could be used, including visible light emitting dyes, if it is ensured that no pumped lasing action will occur that might damage the eye 44. Infrared 20 fluorescent dye is also preferred to prevent any distracting optical affects to the patient while the e.
""epithelium is being ablated.
After a predetermined number of shots, the video unit 56 will detect some portion of the epithelial removal *e 9 25 region 1000 that does not fluoresce. This indicates that there is no infrared fluorescent dye at that location, which correspondingly indicates the epithelium has been e ydo entirely ablated at that point.
9*99 ~r i In Figure 15, two regions 1002 and 1004 are shown in which all of the epithelium has been removed by the predetermined number of shots. At this point, the spot size is reduced, and a region 1006 in which the epithelium still remains, as indicated by the infrared fluorescent dye, is further ablated.
Either under computer control or under physician control, the selective ablation is performed as illustrated in Figure 16. In Figure 16, the remaining region 1006 has been further ablated using reduced spot sizes, forming further epithelial free regions 1008, 1010, 1012, 1014, and 1016. The video unit 56 further observes the epithelial removal region 1000 during ablation of each of these remaining regions, detecting when a certain portion of those regions do not fluoresce. Again, differences in epithelial depth across each of these regions can result in only partial ablation of the epithelium in these remaining regions. For example, an island 1018 of epithelium is shown remaining in the region 1008 which has been further 20 ablated. Such islands must be further ablated, along with any remaining portion of the epithelium 1006 which has not .o been removed by the subsequent ablation.
It will be recognized that by keeping a computer map of the epithelial removal region 1000, along with the 25 number of shots fired onto each particular point in that region, a map of epithelial thickness can be created. By knowing the ablation depth of each shot, along with where 0*00 0' each shot has been ffred, it is known how many shots a particular point receives before all of the epithelium is 0000 0000 removed from that region. Thus, a map of the thickness of the epithelium is created. This map would be similar to that created in correcting for non-symmetrical optical aberrations as discussed in conjunction with Figure 8.
It will be appreciated that the large beam scanning and dithering according to the invention need not only be applied to the surface of the eye 44. For example, U.S.
patent 4,903,695, entitled "Method and Apparatus for Performing a Keratomileusis or the Like Operation," issued February 27, 1990, discloses a method of removing a portion of the cornea from the eye and then ablating the exposed surface. Thus, the method and apparatus according to the invention can also be used on the exposed surface resulting from such a Keratomileusis type procedure. In such a case, the axis of treatment 102 would fall either on either the severed portion of the cornea or on the surface of the cornea from which a portion had been severed.
Figure 17 is perspective view of a lens ablation
S..
pattern 1100 according to the invention for correcting for 20 myopia. Figure 17 illustrates in perspective greater ablation depth corresponding to the height of the
S.
perspective drawing. The lens ablation pattern 1100 is created by creating two standard astigmatism ablation patterns 1104 and 1106 "cylindrical lenses") as 25 illustrated and discussed in conjunction with Figures 4A, 4B, 10A, 10OB, and 11. These two standard astigmatism ablation patterns 1104 and 1106 are preferably created at I.right angles to one another.
5555 Se *4S S. I_ The lens ablation pattern 1100 includes a central region 1102 where the two standard astigmatism ablation patterns 1104 and 1106 intersect. The central region 1102 preferably encompasses the optically active area of the treatment zone, while the arms of the standard astigmatism ablation patterns 1104 and 1106 extend outward from that treatment zone.
Figure 18A is a top view of the perspective view of Figure 17. As can be seen, the central region 1102 encompasses an optically active area 1200 of the treatment zone. It is preferable that the optically active area 1200 resides within the central region 1102 where the two standard astigmatism ablation patterns 1104 and 1106 intersect, but that is not absolutely necessary, as a small portion of the central region 1102 could extend into the separate arms of the standard astigmatism ablation patterns 1104 and 1106.
Figure 18A also shows a transition zone 1202, which would correspond to extra ablation on the sides of each of the standard astigmatism ablation patterns 1104 and 1106 to provide a smooth transition zone, preventing ridges, as
C.
discussed above in conjunction with Figures 2B and 9.
Figures 18B and 18C show end-on views of each of the standard astigmatism ablation patterns 1104 and 1106, along C C~ o• •25 with the central region 1102.
When two standard astigmatism ablation patterns 1104 and 1106 are created at right angles, the central region 1102 results in a lens with the focusing properties of the standard spherical lens used to correct myopia. For Sao* 940@ 0 0.
OC C~ C S
_II~
example, if two -2.00 diopter standard astigmatism ablation patterns 1104 and 1106 are ablated at right angles, the resulting central region will be a -2;00 diopter myopia correcting lens.
It is believed that by creating the cylindrical lens in the central region 1102 through the two standard astigmatism ablation patterns 1104 and 1106, central islands can be minimized. In any case, use of the two standard astigmatism ablation patterns 1104 and 1106 to create a lens with spherical lens properties further increases the advantages of large-beam scanning dithering, as described above in conjunction with Figures 3A, 3B, 4A, and 4B.
Further, astigmatism can also be treated by providing a lower diopter correction for one of the standard astigmatism ablation patterns 1104 or 1106 than the other.
For example, use of -1.00 diopter correction at 90* and 2.00 diopter correction at 0 will result in -1.00 diopter of myopia correction with an additional -1.00 diopter of 20 astigmatism correction at 00.
Ablation of the cylindrical lenses that form the standard astigmatism ablation patterns 1104 and 1106 at angles other than 90 to one another also creates a lens that corrects for myopia while simultaneously providing •25 further correction for astigmatism. For example, a -2.00 diopter correction at 00 in conjunction with a -2.00 diopter correction at 450 results in a -0.59 diopter correction for o0 myopia with a further -2.83 diopter correction for aS lc astigmatism at 22.58. Similarly, a -2.00 diopter correction at 0* in conjunction with a -2.00 diopter correction at results in a -0.03 diopter correction for myopia in conjunction with a -3.94 diopter correction for astigmatism at 5 These are calculated using standard formulas based on adding lenses, as are known to the art.
It will be appreciated that whatever the method used to create the standard astigmatism ablation patterns 1104 or 1106, whether large-beam scanning or the various types of apertures disclosed in the background, such as a variable-width slit aperture of rectangular shape, the resulting central region 1102 will have the appropriate properties for treating myopia. Whatever the method or technique used for creating the cylindrical lenses, the intersecting cylindrical lenses form an appropriate corrective pattern.
By reversing the process, that is by creating the inverse of the standard astigmatism ablation patterns 1104 and 1106 using the various techniques described, or other known techniques, hyperopia can likewise be corrected.
S20 This would be achieved by using standard astigmatism ooo e ablation patterns 1104 and 1106 of positive diopter.
Turning now to Figures 19 through 24, these Figures illustrate the center points of shot patterns calculated by a ring searching algorithm further discussed below in 25 conjunction with Figure 27 and a dither shot pattern 9*9* algorithm further discussed below in conjunction with SFigure 28. These programs generate a number of shot "patterns with center locations away from the center point oeax of the treatment area, and also using fixed spot sizes 9**9 eoo 9 9*9oo according to the invention. It will be appreciated that a large, fixed spot size is used with center locations of shots as far as 2.5mm from the center of the treatment zone. It will also be appreciated that by using a large spot size, the greatest area of tissue is ablated per shot, requiring fewer shots. It will further be appreciated that the ridging effects that are reduced by using the dithering according to the invention discussed earlier in conjunction with Figures 3A and 3B, is even further eliminated by the searching and shot dithering according to the invention, as these shot patterns produce virtually no reinforcing ridges. The programs illustrated by the flowcharts of Figures 27 and 28 are attached as Appendices A, B, and C. The program of Figure 27 and attached Appendix A generates shot patterns by empirically determining a series of rings containing shots that will satisfy a desired ablation pattern. The program attached as Appendix B and illustrated in Figure 28 distributes fixed sized shots over the treatment area using a shot 20 dithering pattern, with a variety of different shot ooo o dithering patterns available. Further, the program attached as Appendix C and illustrated in Figure 28 provides for either randomly sorting the resulting shot patterns or sorting the shot patterns with maximum *4 25 displacement between sequential shots. Further, by 4 4 displacing subsequent shots from each other, rather than having a particular point in the shot pattern always being "ablated, and rather than having each subsequent shot 4*4* overlap an immediately previous shot, thermal heating is V.44 4 1~~-il reduced, allowing for greater shot rates.
Figures 19 through 25 illustrate various shot patterns produced by the programs illustrated in Figures 27 and 28.
Figures 19 and 20 illustrate shot patterns created using the shot dithering (as opposed to the displacement dithering of Figures 3A and 3B) illustrated by the flowchart of Figure 28. Figures 21-23 illustrate shot patterns created by the search algorithm illustrated in Figure 27. Figure 19 was created using a constant 2.00 mm spot size to correct to -5.00 diopters. Figure 20 was similarly created for a 2.00 mm spot size for correction to -5.00 diopters, but using a modified spiral pattern according to the invention and described in Figure 28.
Figure 21 was created for a 4.25 mm spot size to correct to -5.00 diopters using the ring searching according to the invention, while Figure 22 was created for a 2.00 mm spot size to correct to -7.00 diopters using the ring searching according to the invention. Figure 23 was Screated using the ring searching algorithm according to 20 the invention to correct for hyperopia, created for a :eoee o 2.00 mm spot size at +5.00 diopters of correction.
Figures 24A and 24B are a list of shots used to create the treatment pattern of Figure 21, further illustrating the output of the ring searching algorithm according to the 25 invention. As can be seen, there are no overlapping shots, and the shots in the sequence have been ordered by their X displacement in microns.
"Turning to Figure 25, the general steps of how the shot pattern is created by the searching algorithm of ••co o o Figure 27. In Figure 25, it is seen that a number of concentric rings are determined by the search algorithm discussed below in conjunction with Figure 27. Concentric rings 1500 to 1510 are determined using the program attached as Appendix A. Then, for each ring, the appropriate number of shots is determined. Taking ring 1500 for example, the number of shots needed and their spacing around the ring are calculated in order to correct to the appropriate degree within a particular treatment zone 1512.
Then, appropriate shots are calculated for the ring 1502 and so on. In this way, the patterns of Figures 21 through 23 are calculated.
Referring to Figure 26, it is seen that the ring that is determined includes a number of relatively large shots 1520 to 1530, preferably around 2.0 to 3.5mm, that overlap around the ring 1500. The maximum shot rate that the tissue on one point of the cornea can typically absorb is shots per second at .25 micron per shot of ablation. To increase this rate according to the invention, an 20 alternating pattern is adopted. Other techniques are also described in conjunction with Figure 27, but the basic concept is shown here. Rather than repeatedly fire at a particular point that might result in the 40 shot per second rate being exceeded, alternating shots are fired on 25 opposite sides of the ring, for example. Referring to Figure 27, an actual shot pattern used is shown. As is seen, the first shot 1520 is fired on the bottom of the •pattern, then the second shot 1522 then is fired on the top of the pattern adjacent to, but not overlapping, the first oooo ooe• 61 shot 1520, the third shot 1522 is fired on the bottom of the pattern overlapping the first shot 1520. Further, overlapping patterns can then be fired, again using this alternating technique. The point behind this technique is to create the series of overlapping shots of Figures 25 and 26 without each subsequent shot actually overlapping the previous shot fired. Further according to the invention, each particular spot, shot 1520, for example, generally is a series of shots. But rather than fire a series of shots in succession, the entire ring can be created using single alternating shots as illustrated in Figure 26, but repeating the pattern created by this series of single alternating shots of Figure 26 as is needed for the particular ring 1500. In this way, instead of completing the ablation at one particular point, the ablation is distributed, and higher shot rates can be realized. It will be understood that when shots are needed close to the center of the pattern, as is illustrated by the ring 1510 in Figure 25, it may not be possible to prevent a single point from being continuously ablated by displacing these shots. In such a case, it would be desirable to slow down the shot rate.
9 44 Turning to Figure 27, the general flow of the program attached as Appendix A is shown. A routine SHOT PATTERN 25 2000 empirically calculates a shot pattern necessary to ablate to the desired degree of correction. The main procedure is the procedure "Search" illustrated at lines 4444 1107 to 1176 of the attached Appendix A. SHOTPATTERN 2000 begins at step 2002 where a reference array indicating the 444* 9**4 r L--FY~ 62 necessary degree of ablation is calculated based on the desired amount of correction. This step corresponds to the procedure "FillReferenz", called at line 1145 and found at lines 314 to 378 of the attached Appendix A. This procedure creates a reference array indicating the necessary degree of ablation at each point of the treatment area to accomplish the desired degree of correction. It will be understood to those of ordinary skill in the art what the particular degree of ablation necessary to correct for hyperopia or myopia is, and in any case, the necessary equations are found in this specification.
Then, SHOT_PATTERN 2000 proceeds to step 2004, where it creates shot rings. This corresponds to the procedure "Verteilen", which is called at line 1161 and is shown at lines 394 to 462 of the attached Appendix A. This procedure partitions the spirals or rings into a maximum of 32 rings.
Proceeding to step 2006, the spot sizes for each of the rings is then calculated by a procedure "BlendenVorbelegung". Using fixed spot sizes, this will of course result in the same spot sizes for all of the rings.
"BlendenVorbelegung" is called at line 1162 of the attached Appendix A, and is shown at lines 523 to 563.
SHOT PATTERN 2000 then proceeds to step 2008, where it determines the correct distance of the rings from the treatment center. It does so by calling a procedure "Search Rings" at step 1163, which is shown at lines 641 to 969. This is an empirical algorithm for determining the optimal distance of each ring from the center.
hill 63 Certain of the variables used by SHOT PATTERN 2000 as illustrated in the attached Appendix A deserve further discussion. DAT_ALL.RHOMAX is a variable in a structure DAT_ALL, which holds the information about the current treatment. DAT_ALL.RHOMAX is a radius of the corrected zone, and typically has a value of 2.5mm. DATALL.SPH CORR is the desired spherical correction in diopters, and typically has a value of from -5 to DAT_ALL.VEKTORLAENGE is the length of the treatment vector, which equals the total number of shots and typically has a value between 200 and 1500.
SYSDATA.RATE is the ablation per shot. It is typically .25 microns, and is machine dependent.
VOLTHEO is the ablation volume of a certain treatment.
For example, for a correction of -5.0 diopters within a treatment area with 5mm diameter, the value is about .5mm 3 This value is used in the constant spot mode to determine the "best" spot size using an empirical formula.
The structure RING holds all the information necessary for a particular ring of shots. The smallest treatment element is a "ring". The empirical algorithm can use up to 32 "rings", and it searches for the best ring values.
RING.DIST is the mean radius of the ring. RING.SPOT is the spot size for shots used in this ring. RING.COUNT is the 25 number of shots in this ring.
For myopia, the algorithm starts with all shots C. distributed to identical rings set to a radius of zero.
The algorithm then increases the diameter of the rings one by one to get to the closest reference ablation function.
C C oC.
*oC 64 For hyperopia, all rings are initially set to 7mm in diameter and then decrease one by one to get closest to the hyperopia reference ablation function. Thus, the radii of the rings are empirically determined.
MICRO, MAXABL, and ABLSHOT are integer values of various floating point numbers used to speed up the routine. Because the algorithm is a searching algorithm requiring much computational power, the speed is dramatically increased by using integer calculation.
Using these algorithms, a large spot size provides for a greater amount of ablation per shot, while at the same time permitting virtually any treatment pattern to be achieved. A relatively large spot size would be thus providing for relatively large coverage of treatment area per shot. It will be appreciated that using such large spot sizes, however, the shots are generally not "adjacent" to each other, but instead overlap to generate the desired degree of ablation at a particular point. It is the calculation of the result of the overlapping shots that is technically challenging and relies on the empirical *9 algorithm described. This is especially true when using a fixed spot size that is relatively large in relation to the treatment area. It will further be appreciated that by using a fixed spot size, the diaphragm 36 can be replaced by simpler equipment that requires less maintenance and adjustment. This is another advantage of using the large, ~fixed spot size of overlapping shots.
Turning to Figure 28, an alternative method of calculating treatment patterns using large, fixed spot o* 9 .9 9o oeo Oell e I- XIL ~III~II _-l-~ll--il-ly sizes distributed throughout the treatment area is shown, as well as the use of shot sorting to decrease thermal effects. A routine DITHERSHOTS 2100 provides for both this shot dithering as well as the sorting. The shot dithering of Figure 28 is achieved by the program shown in Appendix B, while the sorting is achieved by the program shown in the attached Appendix C.
Proceeding to step 2102, DITHER SHOTS 2100 performs a case statement depending on the type of shot dithering desired. A number of different types of shot dithering are shown in the program attached as Appendix B, and these distribute the shots throughout the treatment area in a slightly different way.
This case statement is performed in the attached Appendix B at lines 547 to 554. If it is desired to perform a rectangular dithering, indicated by the type of dithering being "RECTANG", DITHER SHOTS 2100 calls a routine at step 2104 in which the treatment is performed by dithering in a rectangular spiral. This corresponds to the procedure "DODITHER_RECT" in the attached Appendix B, at lines 26 through 93.
If it is desired to perform a first type of circular
*.Q
dithering in a spiral, indicated by the type of dithering being "CIRCLE1", DITHER_SHOTS 2100 proceeds to step 2106, 25 where a routine is called that dithers in a circular spiral. In Appendix B, this corresponds to the procedure "DODITHERCIRCULAR", shown at lines 97 through 179.
If it is desired to perform a slightly different type of circular dithering, indicated by type equaling "CIRCLE2" ~_II at step 2102, DITHER_SHOTS 2100 proceeds to step 2108, where it dithers in a modified circular spiral. The routine for accomplishing this is the procedure "DO_DITHER_CIRCULAR2" shown in Appendix B at lines 183 through 279. This procedure works in a similar manner to that of the program of Appendix A illustrated in Figure 27.
If it is desired to perform a line-by-line oriented dithering, indicated by type equalling "LINE" at step 2102, DITHER_SHOTS 2100 proceeds to step 2110, where a routine is called that dithers line by line. This routine is shown as procedure "DO DITHER XY" at lines 283 through 395 of the attached Appendix B.
If an alternative form of dithering is desired, as indicated by type equalling "DITHERC" at step 2102, DITHER_SHOTS 2100 proceeds to step 2112, where this alternative method is used. This is found as the procedure "DO_DITHERC" in Appendix B at lines 399 through 515.
Using a variety of shot dithering methods, an array of shots is created for a fixed spot size spread over a treatment area to correct to the desired degree of ablation.
DITHER_SHOTS 2100 then proceeds to step 2114, where it determines whether a sorting of the shots is desired. If not, DITHER SHOTS 2100 proceeds to step 2116, where it returns to the software controlling the excimer laser system with a shot array suitable for correcting to the desired degree. If at step 2114 sorting is desired, DITHER_SHOTS 2100 instead proceeds to step 2116, where it determines whether random sorting is desired.
otto 9* a rc 67 Random sorting will statistically decrease overall heating during the treatment. Although there will typically be some overlap from shot to shot, statistically, different portions of the treatment area will be ablated within a given period of time, rather than one portion of the treatment area being continuously ablated. If at step 2116 it is desired to- randomly sort, control proceeds to step 2118, where DITHER SHOTS 2100 randomly sorts the shots. This is performed by the program attached as Appendix C at lines 40-52.
If at step 2116 it is desired to not randomly sort, but instead to sort for maximum displacement between shots, control proceeds to step 2120, where DITHER SHOT 2100 sorts into a spiral pattern, as illustrated in the attached Appendix C by the procedure "SORT SPIRAL", shown at lines 21-38. From steps 2120 and 2118, control then returns to a calling procedure in the excimer laser system at step 2116.
In this way, a shot dither treatment is achieved, and the shots are sorted in a way to minimize thermal heating.
It will be appreciated that the sorting could be provided also with the software illustrated in Figure 27 and attached as Appendix A.
S" 25.The foregoing disclosure and description of the 25 invention are illustrative and explanatory thereof, and various changes in the size, shape, materials, components, circuit elements, and optical components, as well as in the details of the illustrated system and construction and ego• Ea 68 method of operation may be made without departing from the spirit of the invention.
*9
C
a.
a.
a
C.
a.
a.
C
Sb..
S C Sb a be S Helix Helix ~version 1. 0 Mal1 1994 C CroJTehls CHIRON Technolas Unit Helix a Versucht elnen 9 erstellen.
Behandlungsvek tar fdr Myopiebehandlung in Helix fonit zu UNIT Helix;
INTERFACE
USES Overlay, Crt, GlobVar, Fenster;
CONST
VarSpot ConatSpot 0; -128; SpiralMaxZone :double; FUNCTION HelixErrorMsg(Error :INTEGER): STRING; PROCEDURE CalcHelix(VAR Korr, Zone, Max.Abtrag: double; VAR Error INTEGER); PROCEDURE Search (Typ :BYTE; VAR Error :INTEGER); IMPLEMENTAT ION
CONST
LIASize Micro Half Zone
TYPE
LonglntArray LonglntArrPtr RingType 1023; 4096; 0.0075; Ein pm Ablation entspricht 4096 Digits Radius der betrachteten Zone
S
*5 a.
*tCe *5
S
S.
*5 a
S
a
S
a ARRAY(0. .LIASizeJ OF Longlnt '^LongIntArray;
RECORD
Count INTEGER; Spot INTEGER; Dist INTEGER;
END;
LonglntArrPtr; Longlnt; double;
WORD;
double; AP.RAY(0. .31] OF RingType; double; Anzahl Sch~sse auf'm Ring Durchmesser in pm Entifernung von Mitte in pm
VAR
PReferenz MaxAbl MaxSpot ShotCount VolTheo Ring AblShot Berechnung einer Myopiebehandlung Obergabe: Korr in dioptr, Zone in m Calculation with an empirically found formula for myopia- treatment a.
a APPENDIX A 71 using helixes with varable spotsizes.
72 73 PROCEDURE CaicHelix (VAR Korr, Zone, MaxAbtrag double; VAR Error INTEGER); 74 CONST Ralt -0.0078; 76 VAR 77 Abl, 78 Rneu double; 79 Ring. INTEGER; Spot, 81 Radius: double; 82 Loop INTEGER; 83 21, P2: double; 84 PRing double; d double; 86 win double; 87 dWin double; 88 VinSt INTEGER; 89 91 92 93 94 FUNCTION NeuR(Korr double) double;
BEGIN
96 NeuR (1.3377-1) (1.3377-1)/Ralt Korr 97 END; (NeuR) 98 99 100 101 102 103 FUNCTION MaxAbl(Korr, Zone double) double; 104 VAR 105 QRad double; 106 RNeu double; 107 BEGIN 108 RNeu NeuR(Korr); 109 QRad Sqr(Zone 110 HaxAbl Ralt Sqrt (Ralt*Ralt-QRad) RNeu Sqrt (RNeu*RNeu-QRad); 111 END; (MaxAbi) 112 113 114 115 116 117 118 FUNCTION GetZone(Korr, MaxAbl double) double; 119 VAR 120 RNeu double; 121 d double; 122 BEGIN 123 RNeu NeuR(Korr); 124 d -2*MaxAbl*Ralt 4*Rneu*(MaxAbl Ralt RNeu) MaxAbl*MaxAbl; 125 d Sqrt(d) (MaxAbl Ralt RNeu); 126 GetZone Sqrt(MaxAbl) Sqrt(-MaxAbl 2*Ralt) d; 127 END; (GetZone) 128 129 130 131 132 133 134 FUNCTION Pot(z, h double) double; 135 BEGIN 136 IF z 0 137 THEN Pot Exp( h Ln(z) 138 ELSE Pot 0.0; 139 END; (Pot) 140 APPENDIX A 71 141 142 143 144 145 146 Addiert elnen Ring mit 8 SchUssen 147 PROCEDURE AdRing(Radiu3, Spot, Winkel double); 148
VAR
149 Loop INTEGER; 150
BEGIN
151 FOR Loop 1 TO 8 DO 152 IF Dat All1.VektorLaenge MaxVektor THEN 153
BEGIN
154 INC(DatAI1.Vektorlaenge); 155 WITH Treatment (DatAll.VektorlaengelA
DO
156
BEGIN
157 xpos Round(Radius*1E6'cos(Winkel)); 158 YpoS Round(Radius*E6*Sin(Winxel)); 159 Winkel:- Winkel 160 soliblende Round(Spot*1E6); 161 istblende :-sollblende; 162 energie 100; 163
END;
164
END
165 ELSE Error 2; 166 END; (AddRing) 167 168 169 170 Existiert gemeinsamer Teller fir sac und xbw? 171 172 FUNCTION GT(a, b INTEGER)
BOOLEAN;
173
VAR
174 i INTEGER; 175
BEGIN
176 IF a b THEN 177
BEGIN
178 i a; a b; b 179
END;
180 GT FALSE; 181 FOR i 2 TO (a DIV 2) DO 182 IF MOD AND MOD i)nO) THEN GT TRUE; 183 END; (GT} 184 185 186 BEGIN 187 Error 188 IF Zone 0.0029999 THEN EXIT; 189 IF Zone 0.0070001 THEN EXIT; 190 Abi MaxAbl(Korr, Zone); :191 Ringe (Trunc(Ab./ (8*0.25E-6)) 1); 192 Abi Ringe 8 0.25E-6; 193 MaxAbtrag Abl; 194 Zone GetZone(Korr, Abi); 195 196 DEC(Ringe); 197 PRing Pot(Ringe, 1.5) 198 199 bestimmte Parameter 200 d Zone*1000; 201 P1 6.9 (7.0-d)*0.08; 202 P2 0.95 Pot((7.0-d), 1.25) 0.08; 203 P2 P2 1000.0; 204 205 Win 0; 206 dWin (Pi/4.0) Ringe; 207 Error 0; 208 WinSt Ringe DIV 3 Ringe DIV 12; 209 IF WinSt 1 THEN WinSt 1; 210 WHILE GT(WinSt, Ringe) DO APPENDIX A i7 72 211 INC(Winst); 212 FOR Loop 0 TO Ringo Do 213 BEGIN 214 Radi us Zone 20.0 (Zon**(Loop,+1) (P1*(Rinqe+1)); 215 Spot ((Zofl.-P2) 2.0 -Pot(Loop, 1.5) *(Zozie/2.0 P2) /PRing) 216 217 Win Loop (M14.0) /Ringe; 218 219 220 AddPking(Radius, Spot, win); 221 Win Win WinSt din; 222 IF Win (2.0*Pi) THEN 223 Win Win 224 END; 225 END; (CaicHelix) 226 227 228 229 230 231 Funktion Because it takes time to find the correct solution it's better to 232 give some messages time by time.
233 Eingabe 234 RUckgabe 235 236 PROCEDlURE StillAIlive; 237 CONS? 238 c :AR.PAY(0. .31 OF CHAR C It ,I,1t, 1/1); 239 VAR 240 X, Y :INTEGER; 241 i :INTEGER; 242 BEGIN 243 X W hereX; 244 Y :=WhereY; 245 1 (SysTick DIV 4) AND $00000003; 246 write (c [ifl; 247 IF i- 0THEN 248 BEGIN 249 i TextAttr; 250 TextColor (DarkGray); 251 GotoXY(X-4, Y+1); 252 Write(Now); 253 TextAttr i AND $OOFF; 254 END; 255 GotoXYMX Y); 256 END; (StillAlive) 257 258 259( 260 :::261 Funktion Adds a "Myopia T M or "Hyperopiaw of a~lo' diopters :262 to the PReference-Array.
*263 Eingabe .*264 R~ckgabe 265 266 PROCEDURE AddDioptr(Dio double; Spot double); 267 VAR :268 R1, R2 double; 269 R1Q,R2Q :double; *270 Schwelle :double; 271 d, dQ :double; 272 X, Y :INTEGER; 273 W, 1 :Longlnt; 274 SpotQ :double; 275 Loop~nd :INTEGER; 276 SpotH2 :double; 277 BEGIN 278 Dio -Dio; 279 Ri (Sy3Data. index- 1) (Sy3Data. Index- 1) /sysData. r-alt -Dio); APPENDIX A 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 Spot Spot IF Rl Spot THEN EXIT; R2 :-SYsData.R-alt; R2Q 2*R2; MaxAbl :--200000; SpotQ Spot*Spot; R10 R1*R1; VolTheo :=VoiTheo Pi/3.0 ((2.O*R2Q*R2 -(2*R2Q+SpotQ) 'Sqrt (R2Q -SpotQ))); VolTheo :~Volrheo- Pi/3.0 ((2.0RQ*R1 (2*R1Q+SpotQ) *Sqrt(R1Q-SpotQ))); Schvelle (R2 -Sqrt(R2Q SpotQ)) CR1 Sqrt(R1Q SpotQ)); LoopEnd :=Round(Spot (LI.ASize /HalfZone)); IF LoopEnd LIASize THEN Looplnd :-LIASize; FOR X 0 To LoopEnd Do
BEGIN
dQ X Sqr(HalfZone/LIL~ize) (Radiusquadrat IF dQ SpotQ THEN
BEGIN
d Schwelle (R1 Sqrt(R1Q dQ 1.OE-12)) (R2 Sqrt( .OE-12)) d d *1.0E6 *Micro; IF d (Maxiongint DIV 2) THEN 1 Round (d) R2Q dQ
I
IF dio 0 THEN INC (PReferenz'
(XJ,
ELSE INC (PReferenzA
(XJ,
IF PReferenz MaxAbl
END;
END;
END; (Addoioptri ELSE 1 Maxiongint DIV 2; 1; (nach ofren spiegeln THEN MaxAbl PReferenz'fX]; *.n
U.
U
S
*5 5* 5' 5**5 S S 5* Funktjon Fills the Array PReference with the aim of the treatment.
Eingabe Rdckgabe PROCEDURE~ FillReferenz (VAR Error :INTEGER);
VAR
Loop
INTEGER;
Lastflio :double; Zone double; Ri, spot: double;
BEGIN
IF MaxAvail SiZe~f(LonglntArray)
THEN
BEGIN
Error 180;
EXIT;
END;
New(PReferenz); MaxSpot 0; FillChar (PReferenz^, Sizeof (LongintArray), 0); MaxAbi 0; IF DatA1l1.3ph _korr 1E-12 THEN
BEGIN
Zone (SysData index- 1) (Sys Data. Index- 1)/I~sData. r-al t Dat all.sph,_kor r- 0.001E-3; IF Zone 7.0E-3 THEN Zone 7.OE-3; Zone Addflioptr(Dat all aph-korr, Zone); MaxSpot :-Dat all.rhomax!-2; MaxAbi PReierenz^ (Round (DatAll. rhomax*LIASize/HaltZone)]; FOR Loop :-10 To LIASize
DO
IF PRef erenz' (Loop] <1 THEN PReferenz^ (Loop] PReferenZA Loop-1j;
EXIT;
APPENDIX
A
348
END;
349 IF SYSDta.Canadi&Mode
THEN
350
BEGIN
351 IF Dat Al Canadian Calculated
TIMN
352 FOR loop :ITO8
DO
353 WITH DatAllCanadian.Data[Loop) Do 354 IF Percent 0.00001
THEN
355
BEGIN
356 AddDioptr(korz, 357 IF maxspot rhomax*2
THEN
358 MaxSPot zhomax*2; 359
END;
360 EXIT; 361 END; 362 IF (Dat..Al.TranTableEintraege 0) AND (DatAl1. TzansTable. Sint ra ege 255) THE
N
363 BEGIN 364 LastDio 0; 365 WITH DatA11.TransTable Do 366 FOR Loop Eintzaege DOWNTO 1 Do 367
BEGIN
368 Adddi optz (Trans Event[ Loop]. .Doptr- Las tDj o, TransEvent (Loop] .Max); 369 LastDio TransEvent(Loopl.Dioptz; 370 IF MaxSpot TransEvent [Loop].Max
THEN
371 MaxSpot Tran3Event(Loop].Max; 372
END;
373 AddDioptr(DatA1.3phi,.korr-LastDio, DatAl1.rhomax*2); 374
EXIT;
375
END;
376 MaxSpot :=Dat all.rhomax*2; 377 AddDioptz(Dat 1,l.ph_korr, DatA.1l.rhomax*2); 378 END; (FillReferenz) 379 380 381 382 383 Funk tion Clears memory.
384 385 Eingabe 386 R~ck gabe 387 388 PROCEDURE DestroyReferenz; 389 BEGIN 390 Dispose (PReferenz); 391 END; {DestroyReferenz) 392 393 394( 395 396 Funktion Partitioning of the spirals into (max. 32) rings with 8,16,32...
397 shots. This makes calculation easier.
:398 Eingabe *.399 R~ckgabe 401 PROCEDUE Verteilen(Shots
:WORD);
402 CONST 403 V APJRAYC1. OF WORD 16, 32, 64, 128, 256, 512, 1024); 404 VAR *405 ShotCnt ARRAYCO. OF WORD; 406 Loop, i, j INTEGER; 407 408( 409 Berechnung der Summe der in PShotCnt (Ir beschriebenen Schilsse.
410 411 FUNCTION Sit~ WORD; *412
VAR
413 Loop INTEGER; 414 S WORD; 415 BEGIN No.416 S 0; APPENDIX
A
417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 FOR Loop 1 TO 7 Do S S ShotCnt[Loopj; Sum S;
END;
BEGIN
IF Dat A11.sph _korr IZ-12 THMx
BEGIN
i 8; j 4; Loop -0;
REPEAT
RE PEAT Ring[Loop].Count:-i INC (Loop) DEC(j); UNTIL j 0; IF i 128 THEN i j 4; IF i 16 THEN j IF i> 64 THEN j -1; IF Loop 31 THEN i 256; UNTIL Loop 31;
EXIT;
END;
FillChar (ShotCnt, SizeOf (ShotCnt) 0); ShotCnt(0J Shot3 MOD 8; ShotCnt[1] :Shots DIV 8; FOR Loop 1 TO 6 Do IF Sume 31 THEN WHILE (ShotCflt(Loop] 4) AND (Sunime 31) Do
BEGIN
DEC(ShotCnt(Loop], 2); INC (ShotCnt[Loop+1], 1);
END;
j0; FOR Loop TO 7 Do FOR i TO ShotCflt(Loop] Do
BEGIN
Ring~j].Count V[Loop); INC(j);
END;
INC (Ring(j] .Count, ShotCnt[01); FOR Loop j+1 To 31 DO RingfLoop].count 0; EMD; (Verteilen) a.
a a a a a a a. Funk tion Checking routine for programming purposes.
Eingabe Rdckgabe PROCEDURE FastView(PA :LonglntArPtr);
VAR
Loop INTEGER; Max Longlnt; yl,y2 Longlnt; PROCEDURE VertLine(X, Y :INTEGER);
BEGIN
GvtoXY(X, 1); WHILE Y 1 DO
BEGIN
Write(' GotoXY CX WhereY+1); DEC(Y, 2); ~0.
a APPENDIX
A
487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 IF Y 0 THEN Writ.('*)
END;
BEGIN
TextBackground (LightGray); ClrScr; Max PA(0O]; FOR Loop 1 TO LIASize Do IF Max PA^[Loop] THEN Max PAi[Loop]; FOR Loop 1 TO LIASize DO IF Max PReferenz'(Loop] THEN Max PReferenz' (Loop]; GotoXY(1, IF Max-0 THEN EXIT; FOR Loop 0 To 79 Do
BEGIN
yl Ron(A:TucL-p7.* y2 :-Round(PReferenz.(Truxc(Loop/79.0*Lize) 1*48.0/Max); IF Y1 Y2 THEN
BEGIN
TextColor (Black); TextBackground (LightGray); Vertline (1+Loop, yl); TextColor (Red); TextBackground (Black): Vertline (1+Loop, y 2
END
ELSE BEGIN TextColor (Red); TextBackground(LightGray); Vertline (1+Loop, y2); TextColor (Black); TextBackground (Red); Vertline (1+Loop, yl);
END;
END;
GotoXY(l, END; (FastView) Funk tion Gives each ring off shots a special spotsize for the shots.
Eingabe R~ckgabe PROCEDURE BlendenVorbelegung (Typ :BT)
VAR
Loop :INTEGER; 1 :Longlnt; Mini :Longlnt;
BEGIN
IF Dat 'Rall.sph _korr 1E-12 THEN
BEGIN
IF ((Typ AND ConstSpot) ConstSpot) OR THEN
BEGIN
Mini Round(Dat all.rhomax*1E6); IF Mini 2000 THEN Mini :2000; IF Mini 3500 THEN Mini :-3500; FOR Loop 0 To 31 DO Ring[Loop].spot Mini; {Nur wie Radius!
END
ELSE BEGIN FOR Loop 0 TO 31 DO Ring[Loop].Spot Round(DatAl1.rhomax*ME);
END;
S.
S S
S.
*5
S
5* S S 5* a.
*5SS S Ge 5*S
C
S
END
ELSE BEGIN IF (Typ AND ConstSpot) ConstSpot THEN
BEGIN
1 Round(Sqrt(VolTheo*1.135/(ShotCont*SysData.rate*Pi)) FOR Loop 0 TO 31 DO Ring[Loop].Spot 1; 2E6)
S.
S
S
APPENDIX
A
77 557
END
558 ELSE BEGIN 559 rOR Loop :0T031 Do 560 RkingCLoop].Spot Round (Ka.Spot*lZ6); 561
END;
562
END;
563 EID; (Blendenvorbelegung) 564 565 566 567 568 Funktjon Calculate ablation of one of the shot-rings and store it in 569 PAblation.
570 Eingabe 571 R(Jckgabe 572 573 PROCEDURE Calculate (pjngNr INTEGER; VAR PAblation LonglntAzrPtr); 574 VAR 575 Loop Longlnt; 576 w double; 577 Q double; 578 Entf double; 579 3
STRING;
580 M~ax, 581 W~in :double; 582 e double; 583 Ra, Di: double; 584 1 Longlnt; 585 c :double; 586 587 588 589 590 591 FUNCTION Arccos(w double) :double; 592
BEGIN
593 IF Abs(w) 1 594 THEN AzcCos :=Pi/2.0 -AzcTan(w /Sqrt (1.0 595 ELSE ArcCos Pi/2.0 -w) 596 END; (ArcCos) 597 598 BEGIN 599 WITH Ring(RingNrj Do 600 BEGIN 601 1 :=Round (Longlnt (Count) *AblShot); 602 Ra :-SpotlZ-6*LIASize/HalfZone/2.0; 603 Di :-Dist*1E-6*LI.ASize/Halfzone; 9...604 IF (Spot-0) OR (Count=0)
THEN
605
BEGIN
606 FillChar (P~lation^, SizeOf (LonglntArray) 0); 607
EXIT;
608
END;
609 IF Dist 0 THEN .:610
BEGIN
611 FillChar (PAblationA, SizeOf (LonglntArray) 0); 612 FOR Loop 0 To Round(Ra)
DO
613 PAblation^(Loop] =1 614
EXIT;
*615
END;
616 .*617 Di :=Di HalfZone /LIASize; 618 Ra :-Ra *HalfZone /LIASize; 619 Q (Di*Dj Ra*Ra); ~:9620 EMax Ra); *9621 EMin :=Abs(Di Ra); 622 c Count Pi; 623 FOR Loop TO LIASize Do 624
BEGIN
625 Entf :-Loop *HalfZone LIASize; *626 IF Entf-0 THEN Entf 1E-12; APPENDIX A 627 IT (Entf M~in) AND (Jntf gMax) THEN 628
BEGIN
629 (C XCCos(. (Q (Eftf-Entf)) (Z.0Eintf*Di))); 630 PAblatioziA(Loop) RoundWeAblShot); 631
END
632 ELSE IF (Entf M~in) AND (SPOt/2.0 Dist) 633 THEN PAblation' (Loop] 634 ELSE PAblation4(Loop] 0; 635
END;
636 END; (with) 637 END; (Calculate) 638 639 640 641 642 643 Funktion Search for rings of 8,16,32.. shots to build the spirals.
644 The sum of the ablation of all shot-rings (stored in
T
PAblation") 645 has to be the same as the theor. values stored in "PReference").
646 Eingabe Typ: Use constant spots or allow variable spot sizes.
647 R~ck gabe 648 649 PROCEDURE SearchRings (Typ :BYTE; VAR Error INTEGER); 650 VAR 651 Loop
:INTEGER;
652 Step
:INTEGER;
653 PAblation :LonglntArrPtr; 654 PRingAblation :LonglntArrPtr; 655 PSum: LonglntArrPtr; 656 Ready
:BOOLEAN;
657 1, j
:INTEGER;
658 Grenze
:INTEGER;
659 660 661 Addiert PPRingAblation^,r zu xPAblation~'t.
662 663 PROCEDURE AddAblatiozi; 664
VAR
665 Loop :INTEGER; 666
BEGIN
667 FOR Loop 0 TO LIASize DO 668 INC (PAblationA (Loop], PP~ing~blationA (Loop]); 669 END; (SearchRings.Addpiblation) 670 671 672 673 Subtrahiert oPRingAblation~ir von PPAblationAc.
ee 674 5.675 PROCEDURE DecAblation; :676
VAR
677 Loop :INTEGER; :678
BEGIN
679 FOR Loop :m 0 TO LIASize DO 680 DE(PAblationA (Loop], PRingAblation A (Loop]) 681 END; (SearchRings.DecAblation) :682 683 684 *685 "TRUE", falls PPAblationAr an irgendeiner Stelle klelner ist *686 als sPReferen Z A. Abtrag ist an dieser Stelle zu gering.) 687 688 FUCTION XBelowCheck (Grenze: INTEGER) :BOOLEAN; 689
VAR
*690 Loop :INTEGER; *691
BEGIN
692 XBelowCheck
FALSE;
*eo693 FOR Loop 1 TO Grenze DO 694 IF (PAblation A(Loop] PReferenz- (Loop] -(MiCro SER THEN 695
BEGIN
696 XBelotwCheck
TRUE;
APPENDIX
A
697
EXIT;
698
END;
699 END; (Sea-rCh Jngs.XBelowCheck) 700 701 702 703 704 'TRUE", falls PPAblation'r an irgendeiner Stelle kliner 1st 705 als PPReferenz~e. h. Abtrag ist an dieser Stelle zu gering.) 706 707 FUNCTION BeloliCheck
:BOOLEAN;
708
BEGIN
709 BelowCheck XBelorwCheck (LIASize); 710 ENM; (Search~ings.elo,Check) 711 712 713 714 'TRUE", falls '-PAblation~e an irgendeiner Stelle grd.8er 1st 715 als PPReferenz~dr. An d. Stelle wird zuvliel abgetragen.) 716 717 FUNCTION AboveCheck
:BOOLEAN;
718
VAR
719 Loop :INTEGER; 720
BEGIN
721 AboveCheck
FALSE;
722 FOR Loop 1 TO LIASize
DO
723 IF (PAblation^ (Loop] PReferenz^ (Loop]+(Micro SHR THEN 724
BEGIN
725 AboveCheck
TRUE;
726
EXIT;
727
END;
728 END; (Search~ings.pAboveCheck) 729 730 731 732 Best immt grdE ten Abtrag laut -vPAblation".
733 734 FUNCTION Haxinma.Ablation :Longlnt; 735
VAR
736 Loop INTEGER; 737 1 Longlnt; 738
BEGIN
739 1 PAblation A(0]; 740 FOR Loop 1 TO LIASize
DO
741 IF (PAblati onA [Loop]) 1 THEN 742 1 PAblationA [Loop]; 743 MaximalAblation 1; 744 END; (SearchR.1ngs.MaximalAblation) 0* 745 **746
BEGIN
747 Stillhlive; 748 New(PAblation); ~.749 Nev(PRingAblation); 71 Fi11Char(P~baioumizo(Ln~t~ry) 753 Ready
FALSE;
754 755 FastView(PRefferenz); :756 757 IF flat Ai.1.3ph korr 1E-12 THEN 758
BEGIN
759 FOR Loop TO 31 DO 760 RingfLoop].Dist 6000; 761 IF (Typ AND ConstSpot) ConstSpot THEN Hyperopia const. spots~~ *762
BEGIN
763 FOR Loop :-O0TO 31 DO 764 IF Ring(Loopl.Count 0 THEN 765
BEGIN
766 step 8*8*8*8; APPENDIX A 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836
REPEAT
Ready
FALSE;
REPEAT
DEC (Ring [Loop) .Dist, Step), Calculate (Loop, p~n~l~~n AddAblation;
JO)
Wrj tein (,Ring: ',Loop, ecady:m AboVeCheck; ecbation; If, Ringr[Loop) -Dist C Step Ready :a TRUE; UNTIL Ready; INC (Ring Loopj .Dit, Step); Step Step SHR 3; UNTIL Step 1; Calcuate (Loop, PRingAblatiol); AddAblation; IF ax ma j-Abl ti Man
M
BEGIN >Mxb H IF Loop 31 THEN FOR i Loop-i- TO 31 Do THENi ',Ping[LoopJ-Dit), Hyperopia Variabi. spo ts_)
END;
END
ELSE
BEGIN
FOR Loop 0 TO 31
DO
IF Ring[Loop] .Count >0TE FOR j 0 TO 1 Do >0TE
BEGIN
step 8*8*8*8;
REPEAT
Ready
:=FALSE.
REPEAT
Still~live; DEC (Ring(Loopj .Dist, Step); Calculate (Loop, PRingAb~lation) AddAblation; 9.
9 9.
.99.
C.
9 9 9 9* 9* 9999 99 9* 9 .9 *9 9 9999 9 9 *.99 99 *9 99 9 wr"i te('Rijng: ',Loop, Dist: 'Rng[LoqpJ.D 1 t); Ready AboVeCheck; DecAblation; IF Ring(Loop].Dist Step
THEN
Ready
TRUE;
UNTIL Ready; INC (Ring[Loopj .Dist, Step); Step Step SHR 3; UNTIL step 1; IF i a 1 THEN
BEGIN
Calculate (Loop, PingAblatifl); AddAblation;
END
ELSE
BEGIN
Ring[Loopl.Spot .5RudDa l~ho~* E6)- R(Rning~~ oa.l .zht-ingfg (L o )spot DIV 2); IF R-ing(Loopl.Spot 2000 THEN Lop Ring(Loop] 5 Spt 2000; Rjn[Lopj.i~t:- 6000;
END;
IF Maia~lto MaxAJb
THEN
BEGIN
IF j 1 THEN IF Loop 31 THEN APPENDIX A APPENDIX A 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 FOR i Loop.1 TO 31 DO Ring(i].coumt 0;
END;
END;
END;
IT MaXimalAblation MaxAbi THEN Error 181 ELSE BEGIN (--yperopie korrigieren duff richtigen Abtrag Loop 31; WHILE (P-ing(LoopJ.Count 1) AND (Loop 0) DO DEC (Loop); IF Ring(Loop].Count 64 THEN
BEGIN
WHILE (MaxAbl MaximalAblation) AND (Rinxg[Loop) .Count DO BEGIN StillAlive; Calculate (Loop, PRingAblation); DecAblation; DEC (Ring (Loop] .Count, 16); Calculate (Loop, PRingAblation); AddAblation;
END;
END;
END,
END
ELSE BEGIN IF (Typ AND ConstSpot) -ConstSpot THEN myopia with const. spots===
BEGIN
Grenze Round (Ring(0J .Spot/2.0E6*LIASize/HalfZone-3); FOR Loop 0 TO 31 Do
BEGIN
IF Ring(Loop].Count 0 THEN
BEGIN
Ring(LoopJ.Dist Calculate (Loop, PRingAblation); AddAblation;
END;
END;
FillChar(PRingAblation^', Size~f(LonglntArray), 0); FOR Loop 0 To 31 DO IF Ring[Loop] .Count 0 THEN
BEGIN
Calculate (Loop, PRingAblation); DecAblation; Ring(Loop].Dist 0; Step 8*8*8*8;
REPEAT
Ready FALSE;
REPEAT
StillAlive; INC (Ring(Loop] .Dist, step); Calculate (Loop, PRingAblation); AddAblation; FastView(PAblation), write('Ring:',Loop:5,' Spot: ',Ring(Loopj.Spot:5,' 1,Grenze): Ready :=XBelowCheck(Grenze); DecAblation; IF Ring(Loop].Dist 8700 THEN Ready TRUE; UNTIL Ready; DEC (Ring (Loop] .Di-st, Step); Step Step SHR 3; UNTIL Step 1; Calculate (Loop, PRingAblation); AddAblation;
END;
a *9 a a. a.
a a APPENDIX A
END
ELSE BEGIN (---Myopia mit variabl. spots==== 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 FOR LOOP 0 To 31 DO
BEGIN
IF R-ing(Loop].Count 0 THEN
BEGIN
Ring(LoopJ.Dist 0; Calculate (Loop, PRingAblation); AddAblation;
END;
END;
FillChar(Mang.blation', Size~f(Longnt..ray), 0); FOR Loop 0 To 31 DO IF Ring(Loop].Count 0 THEN
BEGIN
FOR j 0 TO LIASize DO INC (PSuxA~ PRingAblatjon^ (ji); Calculate (Loop, PRingAblation); DecAblation; Ring(Loop].Spot 0; FOR j LIASize DOWNTO 0 DO IF (Ring[Loop].Spot-o) AND (PReferenz^(j] PSum^CjJ) THEN
BEGIN
Ring [Loop].:Spot.: 1 Trunc (j Half Zone*2E6 LIASize4O. 99); Grenze j;
END;
DEC (Grenze, 4); Ring(Loop].Dist 0; Step 8*8*8*8; WHILE Step*2 Ring(Loop].Spot
DO
Step :=Step SHR 3;
REPEAT
Ready FALSE;
REPEAT
StillAlive; INC (Ring (Loop] .Dist, Step); DEC (Ring(Loop] .Spot, Step*2); Calculate (Loop, PRingAblation); AddAblation;
S
S
S.
S.
.5.5 S S S. S S *9 FastView(PAb.Zation); write('Ring: ',Loop:5,' Dist: ISpot: ',RPingfLoopJ.Spot:5,' ',Grenze); Ready XBelowCheck(Grenze); DecAblation; IF Ring(Loop].Dist 8700 THEN Ready TRUE; UNTIL Ready; DEC (Ring(LoopJ .Dist, Step); INC (Ring (Loop] .Spot, Step*2); Step Step SHR 3; UNTIL Step 1; Calculate (Loop, PRingAblation); AddAblation;
END;
END;
END;
Dispose (PSum); Dispose (PRingAblat ion); Dispose (PAblat ion); StillAlive; END; (Search) Funktion After determination of the shot-rings these rings have to be *SS5
S
*5*S S. S
S
APPENDIX
A
975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 83 Eingabe arranged in a way that the shots are ordered in spirals.
R~ck gabe.
PROCEDlURE Add~ings2Treatment (VAR Error :INTEGER);
VAR
Loop :INTEGER; Moop :INTEGER; Las tWin, Win, d, d~in :double; MinSt :INTEGER; Existiert gemeinsamer Teller f~ir jac und FUNCTION GT(a, b :INTEGER) :BOOLEAN;
VAR
i:INTEGER;
BEGIN
IF a b THEN
BEGIN
a; a b; b
END;
GT FALSE;* FOR j 2 TO (a DIV 2) DO IF (a MOD i) AND (b MOD THEN GT :=TRUE; IF (b MOD a) 0 THEN GT TRUE; END; (DigitizeRings.GT) H~Tngt "Schussring" an Schu.6vektor an.
S
S.
S.
*5 *5 5
S
*5
S.
S *5
S**
S S S. S *5 S
*SS*
55 55 S 5
S
PROCEDURE AddRing (Nr :INTEGER; Win :double);
VAR
Loop INTEGER; dWin double;
BEGIN
IF DatA11.Vektorlaenge Ring[Nr].Count max-vektor THEN EXIT; dWin 2.O*Pi /Ring(Nr].Count; Win Win Pi 180.0; FOR Loop 0 TO RingfNr].Count-1 DO
BEGIN
IF Dat all.Vektorlaenge max vektor THEN -INC (Dat_-All .Vektorlaenge) ELSE BEGIN Error 181;
EXIT;
END;
WITH Treatment([Dat-all.VektorlaengejA
DO
BEGIN
xypos Round Sin (Win) *Ring (Nr] .Dist) YPo3 Round (-Cos (Win) *Ring([NrJ Dist) soliblende RingfNr].Spot;
END;
Win :-Win dWin; ENDf; Lastwin :-win; END; (DigitizeRinqs.Adduing)
BEGIN
LastWin 0; M~oop -1; FOR Loop 0 TO 31 Do IF Ring(Loop] .Count 0 THEN 1(Loop :-Loop; IF MLoop 0 THEN EXIT; IF M~oop 3 THEN
BEGIN
APPENDIX
A
1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 84 dvin (Moop-3), WinSt :=(MLoop-3) DIV 3 (MLoop-3) DIV 17; IF WinStc:=2 THEN WinSt 2; WHILE GT (WinSt, MLoop-3) Do INC (WinSt);
END;
FOR Loop 0 TO KMoop Do
BEGIN
IF Ring(Loop].Count 0 THEN
BEGIN
d (Ring(Loop].Dist*2 Ring[Loop].
IF SpiralxaxZone d THEN Spiral~axZone, d; CASE Loop oF 0 :win :-90.00; 1 :Win :-67.50; 2 Win :-56.25; 3 Win :=33.75; ELSE BEGIN IF Loop-4 THEN win Win 22.5; d 360/Ring(LoopJ.Count; Win win WinStdin;.
spot) l-6; LastWin Win-3601 (R-ing[Loop-I ].count) 8. O+d+ (WinSt*dWin) WHILE Win LastWin Do Win Win Win Win
END;
END; (case) IF Win 360 THEN Win =W: IF Error=0 THEN AddRing (Loop, Win);
END;
END;
END; (DigitizeRings) Funkt ion Eingabe Rdlckgabe in-3
I
I.
I.
I
I I *1
I.
I
I
I. I I *1 I
I
I
III.
I
II..
*1 II
I
FUNCTION HelixErrormsg(Error INTEGER): STRING;
VAR
st
BEGIN
CASE Error OF 180 3t :=TongUeA._NoMem; 181 3t :-'More than 2500 shots necessary!'; 182 :st :='Correction too small.'; 183 3 t :-'Correction zone too small'; ELSE st :-'Error creating treatment vector.'; END; (case) HelixgrrotMsg st; END; (HelixErrorMsg) Funktion Main-Procedure for searching the correct spiral -treatment.
Eingabe Rfckgabe PROCEDURE Search(Typ :BYTE; VAk Error INTEGER); APPENDIX
A
1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180
VAR
OldRhomax :double; Taste :CHAR;
BEGIN
IF DatAl1.rhomax 1.53-3 THEN Treatment area large enough?---)
BEGIN
Error :-183;
EXIT;
END;
Old.Rhomax :=Dat Al1.rhomax; SpiraixaxZone _Dat A11.rhomax*2; IF DatAll.sph _korr 6.0 THEN AbschJtzung, ob Oiber 2500 Schus BEGIN More than 2500 shots? 1 IF (Dat_all.rhom&.x*2E6) 7 000-Dat-all.sph korr*(328.7-7.6*Datall.3ph -orr)) THEN BEGIN Error 181;
EXIT;
END;
END;
IF (Dat all.sph~korr -0.001) AND (Typ ConstSpot) THEN Dat all.rhomax DatAll.rhomax 100/90; SpiralaxZone DatAll.rhomhx*2; IF MaxAvail Size0f(Longlnt2Lrray)*3 4096 THEN
BEGIN
Error 180;
EXIT;
END;
Error Volrheo AblShot :=SysData.rate*1.0E6*Micro; FillReferenz (Error); DatAll.rhomax OldRhomax; Fill!Char(Ring, Size~f(Ring), 0); ShotCount Trunc(1.0 MaxAbi AbiShot); IF ShotCount 2500 THEN
BEGIN
DestroyReferenz; Error 181;
EXIT;
END;
IF ShotCount 64 THEN
BEGIN
DestroyReferenz; Error 182;
EXIT;
END;
Verteilen(ShotCount); Create "shot-rings"--- BlendenVorbelegung(Typ); spotsize for the rings--) SearchRings(Typ, Error); Determine correct distance of the rings from treatment center.--- IF Error-0 THEN AddRing32Treatment (Error); DestroyReferenz; IF Error 0 THEN Dat -all.Vektorlaenge 0; IF Dat all.3ph _korr 6.000001 THEN Dat -AIl.MaxAbtrag :=0 ELSE Dat all.MaxAbtrag :-Dat-all.Maxabtrag+ (Dat_-A11.Vektorlaenge-Dat all.Transversend) *Sy3Data.
rate; WHILE KeyPressed Do Taste ReadKey; END; (Search)
END
*R*4 a.
a.
a a. a.
a. a a a a a. *a a a a APPENDIX
A
86 Procedures for dither mode 3 The procedures below are part Of a large but simp~le parser 4 that interprets text like "dither 2000) 0as an instruction to dither a -5 diptr treatnt with spot siZes of 2000zm.
6 The variable 'Fehlero and procedures like wGetNext(. and 7 *CheckEndOfOrder* are based upon this purpose. They are not 8 relevant to the dither algorithm.
9 A little explanation is needed about how the procedures 11 determnine the wished ablation at a given point. There exist 12 a big array (as a matter of fact: 4 big arrays) that contain the 13 Wished ablation. To read the ablation at a point Y) one has 14 to refer to (with Nitte-128 is the center of the array on both axis) 16 1 ((longint(Y+Mitte) shi 8 (X+Mitte))) shl 1;; 17 memv[wArraySeg~l shr 15] W.rrayOf3[l shr 15] (1 and $7FFF)]; 18 19 21 22 23 24 26( Dithering on a rectangular spiral 27PROCEDURE DoDitherRect(VAR rhomax2: extended); 2 8CONST 29 dx ARRAY0..3] OF INTEGER 1, 0, dy ARRAY0..3] OF INTEGER 0, 1, 0); 31lVAR 32 Nult extended; 33 X, Y extended; 34 Stp extended; Ec extended; 36 iX, iY: INTEGER; 37 e, Cnt: extended: 38 Di,DCnt, 39 ECnt WORD;
BEGIN
41 IF Fehler 1 THEN EXIT; 42 Stp :=15.0/255.0; mm per digit 43 Mult :=4.019*Stp*Stp /(rhomax2*Pi*rhomax2); (Fl&chenverh~ltnis 44 Mult :=mult*4.0/1000.0 *4; iX :0; 46 iY 47 Swapfm; 48 Ec 0; DCnt :51 Di :0; *52 REPEAT %:53 x ix stp 0.001; 54 Y :iy *stp +0.001; 1 :-((Longlnt(iY-sMitte) SHL 8 (iX+Hitte))) SHL 1; 56 Cnt memff(WArraySeg[1 SHR 15] WArrayOf3fl SHR 15] (1 AND $7FFF)]; 57 Cnt :-Cnt /64.0 (SollAbtrag in Pim 58 e :-Cnt *Mult; 59 Cnt Ec; APPENDIX
B
WHILE Cnt Nult/2 DO 61 BEGIN 62 IF Dat-all.Vektozr1aenge 2500 THEN 63 BEGIN 64 INC CDat Al.Vektoraenge); WITH Tr eatment [DatA11.Vektorlaenge
]A
66
BEGIN
67 Xpos :-Round(X*1000 ZrrorX*lE6) 68 Ypos URound(Y*1000 ErrorY'1E6) 69 3oliblende :-Round(zhomx2); 13tblende oliblende; 71 energie 100; 72
END;
73
END
74 ELSE BEGIN Fehier 12; 76 Swapam; 77
EXIT;
78
END;
79 Cnt Cnt-4; weni odd Anweisung iv
END;
81 Ec Cnt; 92 INC(iX, dx[Di]); 83 INC(iY, dytDi]); 84 INC(DCnt); IF DCnt (ECnt SHR 1) THEN 86 BEGIN 87 DCnt :0; 88 INC(ECnt); 89 INC(Di); Di :=Di AND $0003; 91 END; 92 UNTIL (Abs (jy) 126) OR (Abs (iX) 126); 93END; (DoDitherRect) 94 96 97( Dithering on circles 98PROCEDURE DoDitherCircular(VpAR rhomax2 extended); 9 9VAR 100 Mult extended; 101 Mult2 extended; 102 X, Y extended; 103 Stp extended; 104 Ec extended; 105 iX, iY: INTEGER; 106 e, Cnt: extended; 107 Di,DCnt, 108 ECnt :WORD; 109 i :INTEGER; 110 StartAngle, 111 StepAngle :extended; 112 InnerRing :extended; 113 Loop :INTEGER; 114 BEGIN 115 IF Fehier 1 THEN EXIT; 116 Stp :~15.0/255.0; m m per digit 117 Mult :-4.0E9*Stp*Stp /(rhomax2*Pi*rhomax2); (Fl 118 Mult :-Mult*4.0/1000.0 *4; 119 ix 120 iY 121 Ec 122 ECnt 123 DCnt 124 Di U0; 125 X :0; citer unten noch drin 9.
.9 .9 9 9 9 9* *9 9 9 99* 9 .9 9* 9 *99.
*9 9* 9 9999 *99* 9999 9 99 9 9 .achenverhaltnis) APPENDIX
B
Y 0;
REPEAT
Hult :-Stp Stp/(iX+1)*ix; Mult :StP*StP (Stp*Mult)/2; Jul Mult ZMult x Cnt :Pi*(Sqr(Stp*(ix+l))-Sqr(iX.5tp)) *:4.0E9*Mult (rhomax2*Pi*rhomax2); Flachenverhitnis
I
*:Mult*4.0/1000.o *4; :ix *Stp 0.001; :((Longint(iy+Kjtte) S1H. 8 (iX+Mitte))) SHI. 1; :memff(WArraySeg(1 SHR 15] .rrayOfsfl SHR 15] 138 Crit :-Cnt /64.0 4.0; SollAbtrag 139 e :Cnt *Mult; 140 Cnt Ec; 141 IF Cnt 0.0 THEN 142 BEGIN 143 Mult2 (Sqr( (iX+1)*Stp) Sqr(iX 144 Cnt Cflt*Mult2; 145 Round(Cnt+0.S); 146 IF i 7 THEN i 0; 147 Cnt :Cnt-i; 148 Cnt :=Cnt Mult2; 149 IF (i+Dat -all.Vektorlaenge) 2500 150
BEGIN
151 Fehier 12; 152 Swap~m; 153
EXIT;
154
END;
155 IF i>O0THEN 156 BEGIN 157 StartAngle :=Random*2*Pi; 158 StepAngle Pi*2.0 i; 159 InnerRing :=Roufld(iX*Stp*1000 160
END;
161 IF i THEN 162 FOR Loop 1 TO i DO 163
BEGIN
164 INC (Dat -A.11.Vektorlaenge); 165 WITH Treatment (DatAll.Vektorla 166
BEGIN
167 xpos :-Round(InnerRing*Co 168 ypos :=Round(Innerring*Si 169 StartAngle :-StartAngle 170 soliblende :=Round(rhomax2 171 istblende oliblende; 172 energie 100; 173
END;
174
END;
175 END; 176 Ec Cnt; 177 INC(iX, 1); 178 UNTIL (Abs (iY) 126) OR (Abs (iX) 126); 179END; (DoDitherCircular) 180 181 182 183( A slightly different approach of ditherin 184 for radial-syiMetrical treatments. The pr 185 center to the side on A single line. For 186 the error as long as it is great enough f 187 this dither method creates rings Of 8 sho 188 HELIX.Search algorithm.
189 Of corse this approach needs a irarying co.
190 on the size of the rings.
11 #17wpw in xm /(Sqr(Stp));
THEN
engejA Do s(StartAngle) ErrorX*1E6); n(StartAngle) ErrorY*1E6); StepAngle; 9@ *9 9* 9 9*S 99* .9 9* 9 99..
9* a. 9 9*9* 9* 9*99 *99* *9.9 9 99 9 9 0 g. This procedure works ocedure just walks from each step id increases or at least 8 shots. so t3 similar to the rrection value depending APPENDIX B 191) 192PROCZouiRz DoDithexCircular2 (VR rhoinax2 extended; Dix imTzGzR); 193VAR 194 Mult :extended; 195 Mult2 :extended; 196 X, Y :extended; 197 Stp :extended; 198 Nc :extended; 199 iX, iY: INTEGER; 200 a, Cnt: extended; 201 Di,DCnt, 202 ECnt :woRD; 203 1,j INTEGER; 204 StartAngle, 205 StepAngle :extended; 206 InnerRing :extended; 207 Loop :INTEGER; 208BZGIN 209 IF Fehler 1 THEN EXIT; 210 Stp :-15.0/255.0; mm- per digit 211 Mult :-4.0OE9*Stp*Stp /(rhomax2*Pi~rhomax2); Flachenverhaitnis 212 Mult :-Mult*4.0/1000.0 *4; 213 IF Dir 0 THEN iX 120 214 ELSE iX 215 iY :0; 216 Ec 217 ECnt 218 DCnt :m0; 219 Di 220 X 221 Y 222 StartAngle 0; 223 REPEAT 224 225 Mult :-Stp Stp/(iX+1)*iX; 226 Mult :=Stp*Stp (Stp*M4ult)/2; 227 228 Mult :Pi*(Sqr(Stp*(iXi.1))-Sqr(iX*Stp)) /(2.65*Pi*(iXg+1)); [extra correction) 229 Mult :=4.0E9*Mult (rhomax2*Pi*rhomax2); (FlAchenverhaltnis Ratio~ of aras Mult Mult*4.0/1000.0 *4; X :ix *Stp; 1 :=((Longlnt(iY+Mitte) SHlL 8 (iX+Mitte))) SHlL 1; Cnt emWtWArraySeg(1 SHR 15] :WkrrayOf3[l SHR 15] (1 AND $7FFF)J; 5.
5
S.
S
5* S S 9e* 5 5* 5 S S 5*
OS
S
0e*s 55 55 5 sEe.
S P *5 5 St..
5
S
5
S
234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 Cnt :=Cnt /64.0 4.0; Soll.Abtrag in pm e :Cnt *Mult; Cnt :e +4 Ec; IF Cnt 0.0 THEN
BEGIN
Mult2 (Sqr( CiX+1)*Stp) Sqr(iX*Stp)) Cnt Cnt*Mult2; i j i Div 8; i 8; IF i 7 THEN i IF i 32 THEN i :=32; Cnt :=Cnt-i; Cnt :=Cnt Mult2; j i DIV 8; IF (i+Dat -all.Vektorlaenge) 2500 THEN
BEGIN
Fehler 12; SwapEm;
EXIT;
I
(Sqr(Stp)); APPENDIX
B
254 255 256 257 258 259 DIV 260 261 262 263 264 265 266
END;
WHILE i 0 DO
BEGIN
StartAngle :-Start.Anqle+0.1* (256-iX) /50.0: StepAngle i*2.0 7 8; 1 ;InnerRing :n Round(iX*Stp*1000 (Stp/2) FOR Loop 1 TO 8 Do
BEGIN
INC (Dat A.11.Vektorlaenge); WITH Tr~eatment tDatA1l.Vektonlaenge]^ Do
BEGIN
xpos3 Round(InnerRing*Cos (StartAngle) ErrorX*136); ypos :-Round(Innerring*Sin(Start~ngle) 267 StartAngle :=StartAngle StepAngl4 268 soliblende :-Round(rhomax2); 269 istblende oliblende; 270 energie 100; 271
END;
272
END;
273 DE.C(i, 8); 274 END; 275 END; 276 Ec Cnt; 277 INC(iX, Dir); 278 UNlTIL (Abs(jY) 126) OR (Abs(iX) 126) OR (iX 0); 279END; (DoDitherCircular) 280 281 282 283( Dithering line by line as propoied by Floyd-Steinberg 284( Weightening matrix changed 285 286PROCEDURE DoDitherXY(VAR rhomax2 :extended); 28 7VAR 288 Mult extended; 289 X, Y extended; 290 Stp extended; 291 eX,eY :extended; 292 Err ARRAY(0. .3,-127. .127] OF single; 293 Ec extended; 294 iX, iY: INTEGER; 295 Cnt,e extended; 296 Pre extended; 297 Addw WORD; 298 Maximum: WORD; 299 L1,Loop :WORD; 300 1 Longlnt; 301BEGIN 302 IF Fehler 1 THEN EXIT; 303 AddW 0; 304 305 Maxirmum 0; 306 FOR Ll -To 3 Do 307 FOR Loop 0 To 16383 Do 308 BEGIN 309 IF memW(WArraySeg(L1] WArrayOf3[L1] Loop shl 310 THEN Maximm memW[WArraySeg(L1] WAxray~f 311 END; 312 AddV 65535 Maxim; 313 FOR Li :=O0To 3Do 314 FOR Loop 0 TO 16383 DO 315 Inc(me=MWWArraySegcL1] WArrayOf3[Ll] Loop shl 316 ErrorY*lE61 t; a. a.
a.
a a a a a. a a. 1] Maxi'u s[Ll] Loop shl 1]; 1] AddW) APPENDIX
B
317 Stp 319 Mulit 319 corre 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 7 7FF?) 338 339 340 341 342 343 344 Ction 15.0/255.0; m per digit -4.OE9*stp~stp /(rhoinx2*Pi*xhommx2); (---Fllchenvorhiltnis) AbsolUte necessary with the ratio of the areas.
Hult ult*4.0/1000.0; X :=-120 *stp 0.001; Y :--120 *Stp 0.001; ex sy -Y; iX :-120; iY :--120; FillChar(Exr, Size~f(Ezr), 0); Err(1, -122] -64; Ne'wCizc (Round (rhomax2));
REPEAT
X 120*Stp+0.001; iX :=-120;
REPEAT
1 ((Longlnt(iY+Kitte) SHL 8 (iX+Mitte-1))) SHL 1; Cnt memWCwAxrraySegfl SHR. 15) Whrrayofs3. SHR 15] (1 AND I -Adv; or 1.loy-st.J
S.
a S.
S
S
345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 Cnt :=Cnt 64.0 4.0; SollAbtrag in pm Ec iX-1] Err(2, iX 8 .0 (Err[2, iX-li Err[2, iX+1J) *5.657 (Err(3, iX-2] Err(1, iX *4.0 (Ezr2, iX-2] Err[2, iX+2J Err(1, iX-li Errfl, iX4-1]) 3.578 (Errf3, iX-3] Err[O, ix *2.667 (Err(2, IX-3] Err(2, iX+3] Err[0, IX-1J Err(0, iX+1]) 2.530 (Err(1, iX-2] Err(1, iX+2J) *2.828 )I70.736; e :-Cnt Mult; Cnt Ec; WHILE Cnt (Mult/2.0)
DO
BEGIN
IF Dat-all.Vektorlaenge 2500 THEN
BEGIN
INC (Dat_-A11.Vektorlaenge); WITH Treatment (DatA11.VektorlaengeJA
DO
BEGIN
x-pos :Round(X*1000 ErrorX*1E6); y-pos :-Round (Y*1000 ErrorY*1E6); soliblende :-Round(rhomax2); istblende :-soliblende; energie :-100; ENDl;
END
ELSE BEGIN Fehler 12; SwapEm;
EXIT;
END;
Cnt Cnt-1;
END;
Err[3, iX] Cnt; X :m X Stp; INC (iX); UNTIL X ex; Err(01 Er(]; Err~l] :-Err[2]; Err(2] ErrC3]; FillChar (Err(3], Size~f 0); y Y Stp; APPENDIX
B
<1111 378 INC (iY) 379 UNTIL Y eY; 380ENl; (DoDithezXY) 381 382 383 384PROCzIDURE QrderDitheXY(A Zeile STRING); 385VAR 386 rhomax2: extended; 38 7BEGiN 388 IF Fehier 1 THEN EXIT; 389 Delete(Zeiie, 1, DITHERXY(u entfernt 390 GetNext(Zejle, rhomax2, 500, 7000); 391 IF Fehier 1 THEN EXIT; 392 CheekEndoforder(Zeile); 393 DODitherXY(rhomax2); 394 IF Fehler-0 THEN Fehier :1 395END; (OrderDitherXY) 396 397 398 399PROCEDURE DoDitherC(VAR rhomax2 extended); 400OVAR 401 Mult :extended; 402 X, Y :extended; 403 R, Phi :extended; 404 Stp :extended; 405 Err :APPAY[0. .1023] OF single; 406 ErrS :ARRAYfO. OF single; 407 M ARRAYC0. OF INTEGER; 408 Ec :extended; 409 iR :INTEGER; 410 ix, iY :INTEGER; 411 Cnt,e :extended; 412 er :extended; 413 dPhi :extended; 414 i, j :INTEGER; 415 iPhi :INTEGER; 416BEGIN 417 IF Fehler 1 THEN EXIT; 418 Stp :15.0/255.0; mmu per digit 419 Mult :=4.0E9*Stp*Stp /(rhonmax2*Pikrhomax2); (FlAchenverhAitnis) *420 Mult :=Mult*4.0/1000.0; 421 iX :-125; *422 iY :--125; 423 FillChar(Err, SizeOf(Err), 0); :424 FillChar(ErrS, SizeOf(ErrS), 0); *425 R .426 iR *427 eR :-Stp*120; 428 Phi 429 ErrS(1] 1; *430 ErrS[2] 431 ErrSf3] 1; *432
REPEAT
433 434 Phi :0.0; 435 436 ErrS[0] (R*2.0*Pi /Stp); 437 *-*oo438 IF ErrS(0] 1 THEN 439 BEGIN 440 ErrS(0] 1; .oo441 dPhi 4*bPj; 000.442
END
443 ELSE dPhi 2.0*Pi (R*2.O*Pi /Stp); APPENDIX
B
dPhi :=2.0*Pi ErrS(0]; iPhi
REPEAT
iX Round(iR Sin(Phi)); iY :-Round(iR *Cos(Phi)); 1 :((Longlnt(iY+Nitte) SHL 8 (iX+Mitte))) SHL 1; Cnt :1 MemW(WAk-rxaySeg[l SHR 15] WA~rraYOfs(l SHR 15] (1 AND S7FFF)]; Cnt Cnt 64.0 4.0; Soll.Abtrag in p FOR i 0 TO 3 Do FOR j -3 TO 3 Do BEGIN (iPhi+j) /ErrS M~i, j] Round( (Phi+j*dPhi) *Err WHILE Nfi, j) 0 DO INC(M[i, Ro~ WHILE M~i, j] ErrS.ji] DO DE.C(M~i, Roi
END;
e :-Cnt Mult; Ec :=((ErrfO, Err(1, MC(I, (Err(1, Err(1, 5.6~ (ErrCO, Err[2, 14(2, (Errfi, Err~i, Err[ Err(2, 3.578 (Err[0, MC0,-3J] ErrC3, 14(3, 2.6w (Err(i, Err~l, Err[: Err(3, *2.530 (ErrC2, Err(2, *2.
IF iPhi 3 THEN Ec :=Ec Cnt Ec; WHILE Cnt 0.0 DO
BEGIN
IF Dat-all.Vektorlaenge 2500 THEN
BEGIN
INC (Dat -All .Vektorlaenge); WITH Treatment (DatAll.Vektorlaenge]^ DO
BEGIN
x-pos Round (iR*Stp*Sin (Phi) *1000.0 y-pos :=Round (iR*Stp*Cos (Phi) *1000.0 3oliblende :=Round(rhomax2); istblende oliblende; energie 100; IF (Abs(x__pos) 7500) OR (Abs(ypo3)
BEGIN
DEC(Dat -all.Vektorlaenge);
REPEAT
Cnt Cnt-i.0; UNTIL Cnt 0.0; nd (Errs md (ErrS (i 57 67 3, .828 70.736; ErrorX*1E6); ErrorY* 116); 7500) THEN
END;
END
ELSE BEGIN Fehier 12; Swap Em;
EXIT;
END;
Cnt Cnt-1;
END;
Err(0,14(0,0]] Cnt; Phi Phi dPhi; INC (iPhi); UNTIL Phi 2*Pi; Phi Phi 2*Pi; ErrS(3]:- ErrS(2]; ErrS(2]:'m ErrS(1]; APPENDIX B 94 507 Errsl):= Ezxs(01; So8 Zrr(3 Earr21; 509 Krr(23 Ezr(l); 510 Errl] zr(0J; 511 FillChar(Ezxz(], SizeOf (Err( 0); 512 R R Stp; 513 INCUiR); 514 UNTIL R eR; 515END; (DoDithezc) 516 517 518 519PROCEDURE OrderDithezC(V)R Zeile STRING); 520VAR 521 rhomax2: extended; 522BEGIN 523 IF Fehier 1 THEN EXIT; 524 Delete(Zeile, 1, DITHERC(I entfernt 525 GetNext(Zeile, rhomax2, 500, 7000); 526 IF Fehier 1 THEN EXIT; 527 CheckEndoforder(Zeile); 528 DoflitherC (rhomax2); 529 IF Fehler-0 THEN Fehier 1; 530END; (OrderDitherC) 531 532 533 534 535PROCEDURE OrderDither(VAR Zeile STRING); 536VAR 537 Typ extended; 538 rhomax2 extended; 539 BEGIN 540 IF Fehier 1 THEN EXIT; 541 Delete(Zeile, 1, DITHER(* entfernt 542 GetNext(Zeile, Typ, -0.01, 5.3); 543 IF Fehier 1 THEN EXIT; 544 GetNext(Zeile, rhomax2, 500, 7000); 545 IF Fehler 1 THEN EXIT; 546 CheckEndOfOrder(Zeile); 547 CASE Round(Typ) OF 548 0 :DoDitherXY(rhomax2); 549 1 :DoDitherC(rhomax2); 550 2 :DoDitherRect(rhomAx2); 551 3 :DoDitherCircular(rhomax2); 552 4 DoDitherCircular2(rhomax2, 1); 53 5 :DoflitherCircular2(rhomax2, ~554 END; (case)THNehr:-1 55IF Fehler-0 HNFelr 1 556END; (OrderDither) APPENDIX B
K
Procedure for sorting shot aways PROCEDURE Ordersort (VAR Zeile :STRING; Typ :INTEGER); 2VAR 3 Dist ARPAY(O. .MaxVektor] OF single; 4 Win single; Loop INTEGER; 6 Tausch BOOLEAN; 7 helps. shot event; 8 helps single; 9 11 PROCEDURE Tausche m WORD); 12 BEGIN 13 helps. Treatment(n]A; 14 Treatment (n]^:-Treatment fi] A; Treatment (ml A:ihelpse; 16 helps Dist[n]; 17 Dist(n] :-Dist[=]J; 18 Dist(n] :-helps; 19 END; 21 PROCEDURE SortSpiral; 22 VAR 23 Loop :INTEGER; 24 w :WORD;
BEGIN
26 REPEAT 27 Loop 2; 28 TaUsch FALSE; 29 REPEAT IF Dist [Loop-li Dist [Loop] 31 THEN BEGIN 32 Tausch TRUE; 33 Tausche(Loop, Lbop-1); 34
END;
INC(Loop); 36 UNTIL Loop Dat -all.Vektorlaenge; 37 UNTIL NOT(Tausch); 38 END; 39 40 PROCEDURE SortRandom; 41 VAR 42 Loop INTEGER; 43 m,n WORD; 44 BEGIN 45 Randomize; 46 FOR Loop 1 TO 5000 DO 47
BEGIN
48 mn: Randoi(Dat all.Vektorlaenge)+1; 49 n :-Random(Dat~all.Vektorlaenge)+1; so Tausche(m, n); 51 EMD; 52 END; 53 ixchange shot n with shot in sort shots in A spiral 0* 0 0 *0 0 *00 0 00 0 0* *0 *0 00* *000 ~0 0**0 ~0 00 Random sort) 54 56 FOR Loop 1 TO Dat all.Vektorlaenge DO Determine Distance from treatment-) 57 BEGIN center for each shot 58 Dist(Loop] 0*00 00 00 0 0 APPENDIX
C
59 Sqr(Tzeatment(Loop].Y o 0 5 1 0 IF TreataentlLoop]A.xJpos 0 61 THEN. BEGIN 62 Win ArcTan (Treatment [Loop]-. ypos/ 63 IF Tzeatmnt[Ioop]'.xposl 0 Treatment[Loop^.xpos); 64 THEN BEGIN IT Win 0 THEN Win Win 66
END
67 ELSE vin Win Pi; 68 END 69 ELSE BEGIN IF Treatment(Loop]^.ypo3 0 71 THEN Win :-0 72 ELSE Win :-Pi; 73 END; 74 Dist[Loop] Round(Dist[tLoop]/59) win/(2*Pi); END;Add Angle/(2*Pi) to Distance 76 CASE Typ OF 77 0 :SoxtSpiral; 78 1 :SortRandom; 79 END; (case) 8OEND; (OrderSort) 00* APPENDIX
C

Claims (8)

1. A method of controlling a laser system, the laser system including a laser that emits a laser beam having a suitable wavelength and the laser system including an optical system that images the laser beam onto the cornea that has an area to be subject to ablation to a desired treatment pattern for correcting vision, the area having a central point, the method including the steps of: calculating a shot sequence to ablate the cornea to the desired treatment profile; sorting said calculated shot sequence; and directing the laser system to fire the laser beam in a series of shots, said series of shots corresponding to and fired in order of said sorted calculated shot sequence.
2. A method of claim 1, wherein said sorting step further includes the step of randomly sorting said calculated shot sequence.
3. A method of claim 1, wherein said sorting step further includes the step of sorting said calculated shot sequence into a spiral.
4. An apparatus for shaping the cornea by removing tissue from a region of the cornea that has an area to be subject to ablation to a desired treatment pattern for correcting vision, the area having a central point, the apparatus including: 25 a laser that emits a laser beam having a suitable wavelength; ~an optical system that images said laser beam onto the cornea; *means for calculating a shot sequence to ablate the cornea to the desired "treatment profile; means for sorting said calculated shot sequence; and 30 means for directing the laser and optical system to fire the laser beam in a series of shots, said series of shots corresponding to and fired in order of said sorted calculated shot sequence. 9 An apparatus of claim 4, wherein said sorting means is adapted for randomly sorting said calculated shot dithering pattern. 98
6. An apparatus of claim 4, wherein said sorting means is adapted for sorting said calculated shot sequence into a spiral.
7. An apparatus of any one of claims 4 to 6, further including means for empirically calculating a series of shots forming the treatment before the firing step.
8. An apparatus of claim 7, wherein said means for empirically calculating further includes: means for calculating a reference array corresponding to the desired treatment; means for empirically determining a series of overlapping shots forming a plurality of concentric rings corresponding to said reference array.
9. A method according to any one of claims 1 to 3 substantially as hereinbefore described with reference to any one of the Examples or Figures. An apparatus according to any one of claims 4 to 8 substantially as hereinbefore described with reference to any one of the Examples or Figures. Dated this twenty-eighth day of September 1999 CHIRON/TECHNOLAS GMBH OPHTHALMOLOGISCHE SYSTEME, KRISTIAN HOHLA Patent Attorneys for the Applicant: FB RICE CO O
AU52578/99A 1994-10-14 1999-09-30 Excimer laser system for correction of vision Ceased AU735732B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU52578/99A AU735732B2 (en) 1994-10-14 1999-09-30 Excimer laser system for correction of vision

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/324782 1994-10-14
AU52578/99A AU735732B2 (en) 1994-10-14 1999-09-30 Excimer laser system for correction of vision

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
AU38054/95A Division AU713834B2 (en) 1994-10-14 1995-10-12 Excimer laser system for correction of vision

Publications (2)

Publication Number Publication Date
AU5257899A true AU5257899A (en) 2000-02-17
AU735732B2 AU735732B2 (en) 2001-07-12

Family

ID=3738781

Family Applications (1)

Application Number Title Priority Date Filing Date
AU52578/99A Ceased AU735732B2 (en) 1994-10-14 1999-09-30 Excimer laser system for correction of vision

Country Status (1)

Country Link
AU (1) AU735732B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665913A (en) * 1983-11-17 1987-05-19 Lri L.P. Method for ophthalmological surgery
DE4232915A1 (en) * 1992-10-01 1994-04-07 Hohla Kristian Device for shaping the cornea by removing tissue
WO1995027452A1 (en) * 1994-04-08 1995-10-19 Chiron/Technolas Gmbh Ophthalmologische Systeme Correction of vision through overlapping cylindrical lenses

Also Published As

Publication number Publication date
AU735732B2 (en) 2001-07-12

Similar Documents

Publication Publication Date Title
AU713834B2 (en) Excimer laser system for correction of vision
US5827264A (en) Method of controlling apparatus for modifying the surface of the eye through large beam laser polishing
JP3615487B2 (en) Offset ablation profile for treatment of irregular astigmatism
CA2402634C (en) Laser eye surgery system using wavefront sensor analysis to control digital micromirror device (dmd) mirror patterns
US6923802B2 (en) System for generating ablation profiles for laser refractive eye surgery
US6056740A (en) Method and apparatus for combined cylindrical and spherical eye corrections
US6436093B1 (en) Controllable liquid crystal matrix mask particularly suited for performing ophthamological surgery, a laser system with said mask and a method of using the same
AU735732B2 (en) Excimer laser system for correction of vision
WO1995027452A1 (en) Correction of vision through overlapping cylindrical lenses
AU671668C (en) Apparatus for modifying the surface of the eye through large beam laser polishing and method of controlling the apparatus

Legal Events

Date Code Title Description
TC Change of applicant's name (sec. 104)

Owner name: TECHNOLAS GMBH OPHTHALMOLOGISCHE SYSTEME, KRISTIAN

Free format text: FORMER NAME: CHIRON/TECHNOLAS GMBH OPHTHALMOLOGISCHE SYSTEME, KRISTIAN HOHLA

FGA Letters patent sealed or granted (standard patent)