📄 fj8k.bas
字号:
REM "8度俯斜路肩"
DECLARE SUB calk (p0!, a0!, k!, bi)
DECLARE SUB calk1 (p0, h, h0, a0, k, ex, ey, zy, ex1, ey1, ex2, ey2, f5, f6, zj)
DECLARE SUB caljm (k!, h3!, h0!, p0!, f1!, a0!, b, ba!, mk11!, mqd11!, e1j!, fa!, fc!, zj!, sk!)
DECLARE SUB calkc (f1, f2, f3, f4, b, b1, b2, ba, bc, h1, h2, h3, g, m1, m2, ex, ey, zy, ee, kt, p1, p2, mk11, mqd11)
CLS
OPEN "fxlj8k.dat" FOR OUTPUT AS #1
m1 = .05: mk = .34
FOR ph = 30 TO 40 STEP 5
IF ph = 30 THEN zj = 1
IF ph = 35 THEN zj = 1
IF ph = 40 THEN zj = 1
p0 = .01745 * ph
FOR j = 3 TO 5
IF ph = 30 THEN
IF j = 3 THEN n = .2
IF j = 4 THEN n = .2
IF j = 5 THEN n = .15
END IF
IF ph = 40 OR ph = 35 THEN
IF j = 3 THEN n = .2
IF j = 4 THEN n = .15
IF j = 5 THEN n = .1
END IF
f0 = .1 * j
PRINT #1, ph
PRINT #1, USING "#.##"; f0
PRINT
a = 1.5708 - ATN(m1): c = 3.1416 - a - ATN(n)
FOR y = 1 TO 14
IF y = 1 THEN h = 2: h0 = .57: bv$ = "FJDA2"
IF y = 2 THEN h = 3: h0 = .57: bv$ = "FJDA3"
IF y = 3 THEN h = 4: h0 = .57: bv$ = "FJDA4"
IF y = 4 THEN h = 5: h0 = .57: bv$ = "FJDA5"
IF y = 5 THEN h = 6: h0 = .57: bv$ = "FJDA6"
IF y = 6 THEN h = 7: h0 = .57: bv$ = "FJDA7"
IF y = 7 THEN h = 8: h0 = .57: bv$ = "FJDA8"
IF y = 8 THEN h = 2: h0 = 1.67: bv$ = "FJDB2"
IF y = 9 THEN h = 3: h0 = 1.67: bv$ = "FJDB3"
IF y = 10 THEN h = 4: h0 = 1.67: bv$ = "FJDB4"
IF y = 11 THEN h = 5: h0 = 1.67: bv$ = "FJDB5"
IF y = 12 THEN h = 6: h0 = 1.67: bv$ = "FJDB6"
IF y = 13 THEN h = 7: h0 = 1.67: bv$ = "FJDB7"
IF y = 14 THEN h = 8: h0 = 1.67: bv$ = "FJDB8"
IF h < 5 THEN sk = 1: fkc = 549: fks = 128
IF h >= 5 AND h <= 8 THEN sk = 1.1: fkc = 621: fks = 152
h2 = .3 + .05 * h: b2 = .62 * h2: f2 = h2 * b2
m2 = .14
12 m2 = m2 + .01: a0 = ATN(m2)
CALL calk(p0, a0, k, bi)
e1 = sk * zj * 9.01 * k * h ^ 2: e2 = sk * zj * 18.02 * k * h * h0
ex1 = e1 * COS(a0 + .5 * p0): ey1 = e1 * SIN(a0 + .5 * p0)
ex2 = e2 * COS(a0 + .5 * p0): ey2 = e2 * SIN(a0 + .5 * p0)
ex = ex1 + ex2: ey = ey1 + ey2: e = e1 + e2
zy1 = .333 * h: zy2 = .5 * h
zy = .333 * h * (1 + h0 / (h + 2 * h0))
b = .5
10 bd = b + (m1 + m2) * h: b1 = ((bd + b2) * SIN(a) * COS(ATN(n)) / SIN(c)): h1 = b1 * n: h3 = h - h1 - h2
ba = b + (m1 + m2) * h3: bc = ba + h2 * (m1 + m2)
f1 = (b + ba) * .5 * h3: f3 = (ba + bc) * .5 * h2: f4 = (bc + b2) * b1 * .5 * SIN(ATN(n))
f = f1 + f2 + f3 + f4: g = 22 * f
ks = (f0 * (g + ey) + ex * f0 * n) / (ex + .075 * g - (ey + g) * n)
IF ks < 1.1 THEN b = b + .01: GOTO 10
g = g + ey
CALL calkc(f1, f2, f3, f4, b, b1, b2, ba, bc, h1, h2, h3, g, m1, m2, ex, ey, zy, ee, kt, p1, p2, mk11, mqd11)
IF kt < 1.2 AND m2 <= mk THEN GOTO 12
IF kt < 1.2 THEN b = b + .01: GOTO 10
IF ee > b1 / 6 AND m2 <= mk THEN GOTO 12
IF ee > b1 / 6 THEN b = b + .01: GOTO 10
CALL caljm(k, h3, h0, p0, f1, a0, b, ba, mk11, mqd11, e1j, fa, fc, zj, sk)
IF (22 * f1 / ba) / fks <= 1 THEN yp = 1 ELSE yp = 1.05
IF e1j > .3 * ba AND m2 <= mk THEN GOTO 12
IF e1j > .3 * ba THEN b = b + .01: GOTO 10
IF fa > fkc / .9 AND m2 <= mk THEN GOTO 12
IF fa > yp * fkc / .9 THEN b = b + .01: GOTO 10
IF fc > yp * fks / .9 AND m2 <= mk THEN GOTO 12
IF fc > fks / .9 THEN b = b + .01: GOTO 10
IF ee < 0.025 or p1 <=100 THEN h9 = 0: hc = 0: bq = 0: p3 = 0: nn% = 0: d = 0: vc = 0: GOTO 88
IF ee >= 0.025 THEN
u1 = 1.5705 + a0: u2 = 3.1416 - u1 - ATN(n)
u3 = ba * SIN(u1) / SIN(u2): uv = ba * u3 * .5 * SIN(ATN(n))
bm = 2 * ee: bp = b2 + bm: bq = bm + b1: bdd = b1 - b2
hc = (22 * (f3 + f4 + f2 - uv) - 12 * bp * .25) / (12 * (2 * bdd + bp))
END IF
15 IF hc <= .3 THEN hc = .3
hm = hc - .07
p3 = g / bq: gd = 12 * (2 * bdd * hc + (.25 + hc) * bp): vd = bp * p3
mz = .5 * p3 * bp ^ 2 - 0 * (12 * .25 * bp ^ 2 + 4 * (hc - .25) * bp ^ 2)
IF hm < vd / 658 THEN hm = vd / 658
sx = .00135 * mz / (hm ^ 2 * 11.9): kz = .5 * (1 + SQR(1 - 2 * sx))
IF kz >= .9 THEN kz = .9
a1 = 1.35 * 1000 * mz / (300 * hm * .87)
IF a1 < 2000 * (hm + .07) THEN a1 = 2000 * (hm + .07)
hc = INT(100 * (hm + .07) + .5) / 100: vc = hc * bdd + .5 * bp * (.25 + hc) + 0.15 * b1
h7 = h3 + u3 * SIN(ATN(n)) + hc: h9 = bq * n
IF a1 > 0 AND a1 <= 678 THEN nn% = 6: d = 12
IF a1 > 678 AND a1 <= 791 THEN nn% = 7: d = 12
IF a1 > 791 AND a1 <= 904 THEN nn% = 8: d = 12
IF a1 > 904 AND a1 <= 923 THEN nn% = 6: d = 14
IF a1 > 923 AND a1 <= 1077 THEN nn% = 7: d = 14
IF a1 > 1077 AND a1 <= 1206 THEN nn% = 6: d = 16
IF a1 > 1206 AND a1 <= 1407 THEN nn% = 7: d = 16
IF a1 > 1407 AND a1 <= 1527 THEN nn% = 6: d = 18
IF a1 > 1527 AND a1 <= 1781 THEN nn% = 7: d = 18
IF a1 > 1781 AND a1 <= 2036 THEN nn% = 8: d = 18
IF a1 > 2036 AND a1 <= 2199 THEN nn% = 7: d = 20
IF a1 > 2199 AND a1 <= 2281 THEN nn% = 6: d = 22
IF a1 > 2281 AND a1 <= 2513 THEN nn% = 8: d = 20
IF a1 > 2513 AND a1 <= 2661 THEN nn% = 7: d = 22
IF a1 > 2661 AND a1 <= 2827 THEN nn% = 9: d = 20
IF a1 > 2827 AND a1 <= 3041 THEN nn% = 8: d = 22
IF a1 > 3041 AND a1 <= 3142 THEN nn% = 10: d = 20
IF a1 > 3142 AND a1 <= 3421 THEN nn% = 9: d = 22
IF a1 > 3421 AND a1 <= 3801 THEN nn% = 10: d = 22
IF a1 > 3801 AND a1 <= 3927 THEN nn% = 8: d = 25
IF a1 > 3927 AND a1 <= 4418 THEN nn% = 9: d = 25
IF a1 > 4418 AND a1 <= 4926 THEN nn% = 8: d = 28
IF a1 > 4926 AND a1 <= 5542 THEN nn% = 9: d = 28
IF a1 > 5542 AND a1 <= 6158 THEN nn% = 10: d = 28
REM bv$,H,h2,h1,b,b2,B1,m2,n,bi,e,ks,kt,p1,p2,f,h9,hc,bq,p3,nn%,d,vc=23(22)
88 PRINT #1, bv$
PRINT #1, 1000 * h
PRINT #1, INT(h2 * 100 + .5) * 10
PRINT #1, INT(100 * h1 + .5) * 10
PRINT #1, INT(b * 100 + .5) * 10
PRINT #1, INT(b2 * 100 + .5) * 10
PRINT #1, INT(100 * b1 + .5) * 10
PRINT #1, USING "#.##"; INT(m2 * 100 + .5) / 100
PRINT #1, USING "#.##"; INT(100 * n + .5) / 100
PRINT #1, USING "##.#"; INT(10 * bi + .5) / 10
PRINT #1, INT(e + .5)
PRINT #1, USING "#.##"; INT(100 * ks + .5) / 100
PRINT #1, USING "#.##"; INT(100 * kt + .5) / 100
PRINT #1, INT(p1 + .5)
PRINT #1, INT(p2 + .5)
PRINT #1, USING "##.##"; INT(100 * f + .5) / 100
PRINT #1, INT(100 * h9 + .5) * 10
PRINT #1, INT(100 * hc + .5) * 10
PRINT #1, INT(100 * bq + .5) * 10
PRINT #1, INT(p3 + .5)
PRINT #1, nn%
PRINT #1, d
PRINT #1, USING "##.##"; INT(100 * vc + .5) / 100
20 REM PRINT TAB(1); bv$; SPACE$(1); 1000 * h; SPACE$(1); INT(100 * h2 + .5) * 10; SPACE$(1); INT(100 * h1 + .5) * 10; SPACE$(1); INT(100 * b + .5) * 10; SPACE$(1); INT(100 * b2 + .5) * 10; SPACE$(1); INT(100 * b1 + .5) * 10; SPACE$(1); INT(100 * m2 + .5) / 100; SPACE$(1); INT(100 * n + .5) / 100; SPACE$(1); INT(10 * bi + .5) / 10; SPACE$(1); INT(e + .5)
REM PRINT TAB(1); INT(100 * ks + .5) / 100; SPACE$(1); INT(100 * kt + .5) / 100; SPACE$(1); INT(p1 + .5); SPACE$(1); INT(p2 + .5); SPACE$(1); INT(100 * f + .5) / 100; SPACE$(1); INT(100 * h9 + .5) * 10; SPACE$(1); INT(100 * hc + .5) * 10; SPACE$(1); INT(100 * bq + .5) * 10; SPACE$(1); INT(p3 + .5); SPACE$(1); nn%; d; SPACE$(1); INT(100 * vc + .5) / 100
REM PRINT TAB(1); ph; j; h; INT(100 * m2 + .5) / 100; INT(e + .5); n; INT(100 * f + .5) / 100; INT(100 * ks + .5) / 100; INT(100 * kt + .5) / 100; INT(100 * ee / b1 + .5) / 100; INT(100 * e1j / ba + .5) / 100
NEXT y
NEXT j
NEXT ph
END
SUB caljm (k, h3, h0, p0, f1, a0, b, ba, mk11, mqd11, e1j, fa, fc, zj, sk)
ee1 = sk * zj * 9.01 * k * h3 ^ 2: ee2 = sk * zj * 18.02 * k * h3 * h0
ex1 = ee1 * COS(a0 + .5 * p0): ey1 = ee1 * SIN(a0 + .5 * p0)
ex2 = ee2 * COS(a0 + .5 * p0): ey2 = ee2 * SIN(a0 + .5 * p0)
eyj = ey1 + ey2: exj = ex1 + ex2
zy = .333 * h3 * (1 + h0 / (h3 + 2 * h0))
mc = mk11 + eyj * (ba - zy * TAN(a0)): mx1 = exj * zy + mqd11
e1j = .5 * ba - (mc - mx1) / (22 * f1 + eyj)
bx = .5 * (b + ba): v1 = 3 * h3 / bx: v2 = e1 / ba
IF v1 <= 3 THEN ff = 1 / (1 + 12 * v2 ^ 2)
IF v1 > 3 THEN
v3 = 1 + .0015 * v1 ^ 2: v4 = v2 + SQR(.083 * (v3 - 1))
ff = 1 / (1 + 12 * v4 ^ 2)
END IF
fa = (1.2 * (22 * f1 + ey1) + 1.2 * ey2) / (ff * ba)
fc = (1.2 * ex1 + 1.2 * ex2 + 1.3 * .075 * 22 * f1) / ba
END SUB
SUB calk (p0, a0, k, bi)
aa = SIN(1.5 * p0) * SIN(p0 - .05236): AB = COS(a0 + .5 * p0 + .05236) * COS(a0)
ac = SQR(aa / AB)
k = COS(p0 - a0 - .05236) ^ 2 / (COS(a0) ^ 2 * COS(a0 + .5 * p0 + .05236) * (1 + ac) ^ 2)
ss = 1.5 * p0 + a0
cc = -TAN(ss) + SQR((TAN(ss) + 1 / TAN(p0 - .05236)) * (TAN(ss) - TAN(a0)))
bv = ATN(cc): bi = bv / .01745
kk = (TAN(bv) - TAN(-a0)) * COS(bv + p0 - .05236) / SIN(bv + ss)
END SUB
SUB calk1 (p0, h, h0, a0, k, ex, ey, zy, ex1, ey1, ex2, ey2, f5, f6, zj)
ai = .7853 - .5 * (p0 - .05235): bi = ai
k = TAN(ai) / COS(ai): ek1 = zj * 9.01 * k * h ^ 2: ek2 = zj * 18.02 * k * h * h0
ex1 = ek1 * SIN(ai): ey1 = ek1 * COS(ai)
ex2 = ek2 * SIN(ai): ey2 = ek2 * COS(ai)
ex = exk1 + exk2: ey = eyk1 + eyk2
zy = .333 * h * (1 + h0 / (h + 2 * h0))
x0 = h * (TAN(ATN(a0)) - TAN(ai))
f5 = x0 * h * .5: f6 = x0 * h0
END SUB
SUB calkc (f1, f2, f3, f4, b, b1, b2, ba, bc, h1, h2, h3, g, m1, m2, ex, ey, zy, ee, kt, p1, p2, mk11, mqd11)
g1 = 22 * f1: z11 = (b ^ 2 + b * ba + ba ^ 2 + h3 * m1 * (2 * b + ba)) / (3 * (b + ba)): k11 = .333 * h3 * (2 * b + ba) / (b + ba)
mk11 = g1 * z11: mk12 = g1 * (z11 + b2)
mqd11 = .075 * g1 * k11: mqd12 = .075 * g1 * (k11 + h2)
g2 = 22 * f2: mk22 = g2 * b2 * .5
mqd22 = .0375 * g2 * h2
g3 = 22 * f3
mk32 = g3 * (.25 * (ba + bc) + b2)
mqd32 = .0375 * g3 * h2
g4 = 22 * f4
mk42 = g4 * b1 * .67
mqd42 = -.017 * g4 * h1
mk2 = mk12 + mk22 + mk32 + mk42 + ey * (b1 - zy * m2) - mqd42
mq2 = ex * (zy - h1) + mqd12 + mqd22 + mqd32
kt = mk2 / mq2
ee = .5 * b1 - (mk2 - mq2) / g
IF ABS(ee) <= b1 / 6 THEN
p1 = (g / b1) * (1 + 6 * ee / b1)
p2 = (g / b1) * (1 - 6 * ee / b1)
END IF
IF ee > 0 AND ee > b1 / 6 THEN : p1 = 2 * g / (3 * (.5 * b1 - ee)): p2 = 0
IF ee < 0 AND ABS(ee) > b1 / 6 THEN : p2 = 2 * g / (3 * (.5 * b1 + ee)): p1 = 0
END SUB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -