⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fj8k.bas

📁 俯斜挡土墙设计VB源代码
💻 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 + -