📄 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 + -