?? wdx.txt
字號:
VERSION 5.00
'微帶線-無色散效應
Private Sub cmdOK_Click()
Dim pi As Double
pi = 4 * Atn(1)
If Frame2.Visible = True Then
Text5.Text = "?"
Dim w, h, t, er, ZO, ef, bz As Double
w = Text1.Text
h = Text2.Text
t = Text3.Text
er = Text4.Text
If w <= 0 Or h <= 0 Or er <= 0 Then
MsgBox "輸入參數無效!請重新輸入!"
Else
bz = w / h
If bz < 1 Then
ef = (er + 1) / 2 + ((er - 1) / 2) * (1 / Sqr(1 + 12 * h / w) + 0.04 * (1 - w / h) ^ 2)
ZO = (60 / Sqr(ef)) * Log(8 * h / w + 0.25 * w / h)
Else
ef = (er + 1) / 2 + ((er - 1) / 2) * (1 / Sqr(1 + 12 * h / w))
ZO = (120 * pi) / ((Sqr(ef)) * (w / h + 1.393 + 0.667 * Log(w / h + 1.444)))
End If
Text5.Text = ZO
End If
End If
If Frame3.Visible = True Then
Text9.Text = "?"
Dim zo1, er1, t1, wh1, a, b As Double
zo1 = Text6.Text
er1 = Text7.Text
t1 = Text8.Text
If zo1 <= 0 Or er1 <= 0 Then
MsgBox "輸入參數無效!請重新輸入!"
Else
a = (zo1 / 60) * Sqr((er1 + 1) / 2) + ((er1 - 1) / (er1 + 1)) * (0.23 + 0.11 / er1)
If a > 1.52 Then
wh1 = 8 * Exp(a) / (Exp(2 * a) - 2)
Else
b = 60 * pi ^ 2 / (zo1 * Sqr(er1))
wh1 = (2 / pi) * (b - 1 - Log(2 * b - 1) + ((er1 - 1) / (2 * er1)) * (Log(b - 1) + 0.39 - 0.61 / er1))
End If
Text9.Text = wh1
End If
End If
If Frame4.Visible = True Then
Text15.Text = "?"
Text16.Text = "?"
Text17.Text = "?"
Dim wh, sh, t2, er2, zo2, zse, zso, g, g1, f, f1, ke, ko1, ko2, whse, whso, temp As Double
temp = Text11.Text
If temp <= 0 Then
MsgBox "輸入參數無效!請重新輸入!"
Else
wh = Text10.Text / temp
sh = Text12.Text / temp
er2 = Text14.Text
t2 = Text13.Text
If wh <= 0 Or sh <= 0 Or er2 <= 0 Then
MsgBox "輸入參數無效!請重新輸入!"
Else
g1 = pi * sh / 2
f1 = pi * wh + pi * sh / 2
g = (Exp(g1) + 1 / Exp(g1)) / 2
f = (Exp(f1) + 1 / Exp(f1)) / 2
ke = (2 * f - g + 1) / (g + 1)
ko1 = (2 * f - g - 1) / (g - 1)
ko2 = 1 + 2 * wh / sh
whse = 2 * Log(ke + Sqr(ke ^ 2 - 1)) / pi
If er2 < 6 Then
whso = 2 * Log(ko1 + Sqr(ko1 ^ 2 - 1)) / pi + (4 / (pi * (1 + er2 / 2))) * Log(ko1 + Sqr(ko1 ^ 2 - 1))
Else
whso = 2 * Log(ko2 + Sqr(ko2 ^ 2 - 1)) / pi + Log(ko2 + Sqr(ko2 ^ 2 - 1)) / pi
End If
If whse > 2 Then
zse = (119.9 * pi / (2 * Sqr(er2))) / (whse / 2 + Log(4) / pi + (Log(Exp(1) * pi ^ 2 / 16) * (er2 - 1)) / (2 * pi * er2 ^ 2) + ((er2 + 1) / (2 * pi * er2)) * (Log(pi * Exp(1) / 2) + Log(0.5 * whse + 0.94)))
Else
zse = (119.9 * pi / Sqr(2 * (er2 + 1))) * (Log(8 / whse) + whse ^ 2 / 32 - ((er2 - 1) / (2 * (er2 + 1))) * (Log(pi / 2) + Log(4 / pi) / er2))
End If
If whso > 2 Then
zso = (119.9 * pi / (2 * Sqr(er2))) / (whso / 2 + Log(4) / pi + (Log(Exp(1) * pi ^ 2 / 16) * (er2 - 1)) / (2 * pi * er2 ^ 2) + ((er2 + 1) / (2 * pi * er2)) * (Log(pi * Exp(1) / 2) + Log(0.5 * whso + 0.94)))
Else
zso = (119.9 * pi / Sqr(2 * (er2 + 1))) * (Log(8 / whso) + whso ^ 2 / 32 - ((er2 - 1) / (2 * (er2 + 1))) * (Log(pi / 2) + Log(4 / pi) / er2))
End If
zo2 = Sqr(zse ^ 2 + zso ^ 2)
Text15.Text = zse
Text16.Text = zso
Text17.Text = zo2
End If
End If
End If
End Sub
VERSION 5.00
'微帶線-有色散效應
Private Sub cmdOK_Click()
Dim pi As Double
pi = 4 * Atn(1)
If Frame2.Visible = True Then
Text5.Text = "?"
Dim w, h, t, er, ZO, ef, bz, fo, g2, fp, zot, th As Double
w = Text1.Text
h = Text2.Text
t = Text3.Text
er = Text4.Text
fo = Text18.Text
If w <= 0 Or h <= 0 Or er <= 0 Or fo <= 0 Then
MsgBox "輸入參數無效!請重新輸入!"
Else
bz = w / h
If bz < 1 Then
ef = (er + 1) / 2 + ((er - 1) / 2) * (1 / Sqr(1 + 12 * h / w) + 0.04 * (1 - w / h) ^ 2)
ZO = (60 / Sqr(ef)) * Log(8 * h / w + 0.25 * w / h)
Else
ef = (er + 1) / 2 + ((er - 1) / 2) * (1 / Sqr(1 + 12 * h / w))
ZO = (120 * pi) / ((Sqr(ef)) * (w / h + 1.393 + 0.667 * Log(w / h + 1.444)))
End If
fp = 0.397764 * ZO / h
g2 = Sqr((ZO - 5) / 60) + 0.004 * ZO
th = (Exp(pi * w / (4 * h)) - 1 / (Exp(pi * w / (4 * h)))) / _
(Exp(pi * w / (4 * h)) + 1 / (Exp(pi * w / (4 * h))))
If w / h > 1.1 Then
zot = 30 * pi * pi / (Sqr(er) * Log(2 * ((1 + Sqr(th)) / (1 - Sqr(th)))))
Else
zot = 30 * Log(2 * ((1 + Sqr(1 - th)) / (1 - Sqr(1 - th))))
End If
ZO = zot - (zot - ZO) / (1 + g2 * (fo / fp) ^ 2)
Text5.Text = ZO
End If
End If
If Frame4.Visible = True Then
Text15.Text = "?"
Text16.Text = "?"
Text17.Text = "?"
Dim w1, s, wh, sh, t2, er2, zo2, zse, zso, g, g1, f, f1, ke, ko1, ko2 As Double
Dim whse, whso, temp, fo1, fpe, fpo, je, jo, th1, th2, le, lo, le1, lo1, zoe, zoo As Double
temp = Text11.Text
If temp <= 0 Then
MsgBox "輸入參數無效!請重新輸入!"
Else
w1 = Text10.Text
s = Text12.Text
wh = w1 / temp
sh = s / temp
er2 = Text14.Text
fo1 = Text13.Text
If wh <= 0 Or sh <= 0 Or er2 <= 0 Then
MsgBox "輸入參數無效!請重新輸入!"
Else
g1 = pi * sh / 2
f1 = pi * wh + pi * sh / 2
g = (Exp(g1) + 1 / Exp(g1)) / 2
f = (Exp(f1) + 1 / Exp(f1)) / 2
ke = (2 * f - g + 1) / (g + 1)
ko1 = (2 * f - g - 1) / (g - 1)
ko2 = 1 + 2 * wh / sh
whse = 2 * Log(ke + Sqr(ke ^ 2 - 1)) / pi
If er2 < 6 Then
whso = 2 * Log(ko1 + Sqr(ko1 ^ 2 - 1)) / pi + (4 / (pi * (1 + er2 / 2))) * Log(ko1 + Sqr(ko1 ^ 2 - 1))
Else
whso = 2 * Log(ko2 + Sqr(ko2 ^ 2 - 1)) / pi + Log(ko2 + Sqr(ko2 ^ 2 - 1)) / pi
End If
If whse > 2 Then
zse = (119.9 * pi / (2 * Sqr(er2))) / (whse / 2 + Log(4) / pi + (Log(Exp(1) * pi ^ 2 / 16) * (er2 - 1)) / (2 * pi * er2 ^ 2) + _
((er2 + 1) / (2 * pi * er2)) * (Log(pi * Exp(1) / 2) + Log(0.5 * whse + 0.94)))
Else
zse = (119.9 * pi / Sqr(2 * (er2 + 1))) * (Log(8 / whse) + whse ^ 2 / 32 - ((er2 - 1) / (2 * (er2 + 1))) * (Log(pi / 2) + Log(4 / pi) / er2))
End If
If whso > 2 Then
zso = (119.9 * pi / (2 * Sqr(er2))) / (whso / 2 + Log(4) / pi + (Log(Exp(1) * pi ^ 2 / 16) * (er2 - 1)) / (2 * pi * er2 ^ 2) + ((er2 + 1) / _
(2 * pi * er2)) * (Log(pi * Exp(1) / 2) + Log(0.5 * whso + 0.94)))
Else
zso = (119.9 * pi / Sqr(2 * (er2 + 1))) * (Log(8 / whso) + whso ^ 2 / 32 - ((er2 - 1) / (2 * (er2 + 1))) * (Log(pi / 2) + Log(4 / pi) / er2))
End If
je = 0.6 + 0.0045 * zse
jo = 0.6 + 0.018 * zoo
fpe = 0.1989 * zse / temp
fpo = 0.7955 * zso / temp
th1 = (Exp(pi * w1 / (4 * temp)) - 1 / (Exp(pi * w1 / (4 * temp)))) / (Exp(pi * w1 / (4 * temp)) + 1 / (Exp(pi * w1 / (4 * temp))))
th2 = (Exp(pi * (w1 + s) / (4 * temp)) - 1 / (Exp(pi * (w1 + s) / (4 * temp)))) / (Exp(pi * (w1 + s) / (4 * temp)) + 1 / (Exp(pi * (w1 + s) / (4 * temp))))
le = th1 * th2
le1 = Sqr(1 - le * le)
lo = th1 * (1 / th2)
lo1 = Sqr(1 - lo * lo)
If le > 0 And le < 0.7 Then
zoe = (60 * pi / Sqr(er2)) / (Log(2 * ((1 + Sqr(le1)) / (1 - Sqr(le1)))) / pi)
Else
zoe = Log(2 * ((1 + Sqr(le)) / (1 - Sqr(le)))) / pi
End If
If lo > 0 And lo < 0.7 Then
zoo = (60 * pi / Sqr(er2)) / (Log(2 * ((1 + Sqr(lo1)) / (1 - Sqr(lo1)))) / pi)
Else
zoo = Log(2 * ((1 + Sqr(lo)) / (1 - Sqr(lo)))) / pi
End If
zse = (zoe - zse) / (1 + (fo1 / fpe) ^ 1.6 * je)
zso = (zoe - zso) / (1 + (fo1 / fpo) ^ 1.6 * jo)
zo2 = Sqr(zse ^ 2 + zso ^ 2)
Text15.Text = zse
Text16.Text = zso
Text17.Text = zo2
End If
End If
End If
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -