Here is the translation of the article with improved language and incorporating professional terminology:

Now that we have discussed the necessary formulas, we can proceed with designing our own orthokeratology lenses. There are certain parameters that need to be determined:

  • Base Curve Diameter (BCD): For example, 6mm. Nowadays, smaller optical zones have become popular, so we can set it as 5.5mm or even 5mm.
  • Outer Diameter of RC and AC: RCD, ACD
    • The more common approach is to specify the width of each segment outside the base curve (BC).
    • Outer diameter of RC: RC diameter + 2 times RC width
      • RCD = BCD + 2 * RCw
    • Outer diameter of AC: RC diameter + 2 times AC width
      • ACD = RCD + 2 * ACw
  • Lens diameter, also known as Peripheral Curve Diameter (PCD)

Lens design involves calculating the curvature radius for each segment based on the parameters of the patient's cornea (or simulated eye) and their refractive power.

Now, please open the Wolfram Cloud.

  1. Formula for calculating the sagitta of a conic curve:
z[R_, Q_, D_, z0_] = (
    c = 1/R;
    r = D/2;
    (c * r^2) / (1 + Sqrt[1 - (1 + Q) * c^2 * r^2]) + z0)
  1. Formula for calculating the base curve radius (BCR):
BCR[Reye_, Rx_, JF_] = 337.5 / (337.5/Reye + Rx - JF)

With the sagitta formula for conic curves, we can calculate the position of a point on the model eye's cornea. Two specific positions require sagitta calculation: the starting point of the AC arc and the endpoint of the AC arc.

ACstart1 = z[Reye, Qeye, RCD, 0]
ACend1 = z[Reye, Qeye, ACD, 0]

These two calculations are straightforward. On the model eye's cornea, we substitute the model eye's curvature radius (Reye) and Q value. The starting point of the AC arc is the end of the RC arc, which corresponds to the outer diameter of the RC. The starting point on the model eye is at the position of 0. The endpoint of the AC arc corresponds to the outer diameter of the AC.

Similarly, the starting and endpoint of the AC arc are also on the AC arc itself, so we have:

ACstart2 = z[ACR, 0, RCD, ACz0]
ACend2 = z[ACR, 0, ACD, ACz0]

These two calculations are clear as well. Both the starting and endpoint of the AC arc lie on the AC arc. Therefore, using the curvature radius of the AC, and considering that we defined the AC arc as circular, we set Q = 0. However, it's important to note that the intersection point of the AC arc with the central axis is not at 0; it's a variable that needs to be solved. Hence, we can formulate two additional equations.

In Wolfram Language, solving equation systems can be done using Solve. However, if the equations are complex, it can be difficult to solve them directly. In such cases, NSolve can be used to obtain numerical solutions. For example, the ACR result may appear like this:

ACR ResultAn image to describe post How to design the simplest OrthoK lens with Wolfram Languange(3)

Therefore, a more convenient approach is to substitute the actual values and solve for the numerical solution:

Reye = 7.5;
Qeye = -0.2;
RCD = 5.5 + 2;
ACD = RCD + 2;

NSolve[{
	z[ACR, 0, RCD, ACz0] == z[Reye, Qeye, RCD, 0],
	z[ACR, 0, ACD, ACz0] == z[Reye, Qeye, ACD, 0]
}, {ACR, ACz0}]

The result obtained is:

{{ACR -> 7.74284, ACz0 ->0.021053}}

As for the parameters of the PC, if we are not being precise, we can slightly flatten the curvature radius of the cornea. However, for a more accurate representation, we can design a PC arc that allows tears to enter from the edge. In this case, the end of the PC should be slightly higher than the patient's cornea, creating a small height difference, which allows tears to enter. For example, let's assume PCtear = 0.1mm. The process of solving for PC is similar to the previous method and involves two equations:

z[Reye, Qeye, ACD, 0] == z[PCR, 0, ACD, PCz0]
z[Reye, Qeye, PCD, 0] == z[PCR, 0, PCD, PCz0] + PCtear

We can also solve for numerical solutions:

PCD = 11;
tearH = 0.1;

NSolve[{
	z[Reye, Qeye, ACD, 0] == z[PCR, 0, ACD, PCz0],
	z[Reye, Qeye, PCD, 0] == z[PCR, 0, PCD, PCz0] + tearH
}, {PCR, PCz0}]

The result obtained is:

{{PCR -> 7.65269, PCz0 -> 0.0962494}}

Currently, we are missing a segment for the RC arc, which can be represented as a straight line. With two points on the line, we can define it. The starting point of the RC arc is the endpoint of the BC arc, with coordinates (BCD/2, z[BCR, 0, BCD, 0]). The endpoint of the RC arc is the starting point of the AC arc, with coordinates (RCD/2, z[Reye, Qeye, RCD, 0]). If we express the line using the equation y = kx + b, we can substitute the above points to solve for k and b:

Solve[
{
	z[BCR, 0, BCD, 0] == k * BCD/2 + b,
	z[Reye, Qeye, RCD, 0] == k * RCD/2 + b
},
{k, b}]

The result obtained is:

{{k -> 0.544876, b -> -1.02241}}

So far, we have solved all the parameters. Let's organize the code and set the parameters:

  • Model eye corneal curvature radius: Reye = 7.5mm
  • Model eye corneal Q-value: Qeye = 0.2
  • Patient's refractive power: -3D
  • Overcorrection factor: 0.75D
  • Optical zone diameter: 5.5mm
  • RC width: 1mm
  • AC width: 1mm
  • Lens diameter: 11mm
  • Lens edge elevation: 0.1mm
Reye=7.5;
Qeye=0.2;
Rx=-3;
JF=0.75;
BCD=5.5
RCwidth=1;
ACwidth=1;
PCtear=0.1;
PCD=11

RCD=BCD+2*RCwidth
ACD=RCD+2*ACwidth

z[R_,Q_,D_, z0_]=(
c=1/R;
r=D/2;
(c* r^2)/ (1+Sqrt[1-(1+Q)*c^2* r^2]) + z0);
BCR[Reye_,Rx_,JF_]=337.5/(337.5/Reye+Rx-JF);

BCR = BCR[Reye,Rx,JF]
ACresult=NSolve[{
z[ACR,0,RCD,ACz0]==z[Reye, Qeye,RCD,0],
z[ACR,0, ACD, ACz0]==z[Reye, Qeye, ACD, 0]},
{ACR,ACz0}]
PCresult=NSolve[{
z[Reye, Qeye, ACD, 0]==z[PCR,0,ACD,PCz0],
z[Reye, Qeye, PCD, 0]==z[PCR,0,PCD,PCz0]+PCtear },
{PCR,PCz0}]

RCresult=Solve[
{z[ BCR, 0, BCD, 0] == k * BCD/2 + b,
z[ Reye, Qeye, RCD, 0] == k* RCD/2+b},
{k,b}]

Then, press Shift+Enter to obtain the parameters of the corneal orthokeratology lenses surface.

  • BC is an arc segment
    • BC curvature radius: 8.182mm
    • BC diameter: 5.5mm
    • BC intersection with the central axis: 0.0mm
  • RC is a straight line
    • y = 0.545x - 1.022
    • RC diameter: 7.5mm
  • AC is an arc segment
    • AC curvature radius: 7.743mm
    • AC diameter: 9.5mm
    • AC intersection with the central axis:0.0210mm
  • PC is an arc segment
    • PC curvature radius: 7.653mm
    • PC diameter, which is the lens diameter: 11mm
    • PC intersection with the central axis: 0.096mm

These parameters can be input into the lathe to produce a corneal orthokeratology lenses. Based on this, we will proceed with analysis and improvements.