10 'Rem 平面刚架静力分析主程序 12 KEY 6,"SYSTEM"'RENUM 新行号,旧行号,增量 20 READ NE,NJ,N,NW,NPJ,NPF 25 DIM JE(2,NE),JN(3,NJ),JC(6) 26 DIM EA(NE),EI(NE),X(NJ),Y(NJ) 30 DIM PJ(2,NPJ),PF(4,NPF) 32 DIM KE(6,6),P(N),KB(N,NW),F(6) 35 DIM F0(6),FE(6),D(6) 40 PRINT TAB(6);"NE=";NE;"NJ=";NJ;"N=";N; 45 PRINT"NW=";NW;"NPJ=";NPJ;"NPF=";NPF 50 GOSUB 100'输入数据 55 GOSUB 350'结点总荷载 60 GOSUB 500'结构刚度矩阵 65 GOSUB 650'求解结点位移方程 70 GOSUB 850'计算输出杆件端部力 75 END 100 '输入数据 105 FOR I=1 TO NJ 110 READX(I),Y(I),JN(1,I),JN(2,I),JN(3,I) 115 NEXT I 120 FOR I=1 TO NE 125 READJE(1,I),JE(2,I),EA(I),EI(I) 130 NEXT I 135 IF NPJ=0 THEN 155 140 FOR I=1 TO NPJ 145 READPJ(1,I),PJ(2,I) 150 NEXT I 155 IF NPF=0 THEN 10 160 FOR I=1 TO NPF 165 READPF(1,I),PF(2,I),PF(3,I),PF(4,I) 170 NEXT I 175 PRINT:PRINT TAB(27);"结点信息" 180 PRINT TAB( 6);"结点";TAB(15);"X";TAB(25);"Y"; 185 PRINTTAB(35);"XX";TAB(46);"YY";TAB(56);"ZZ" 190 FOR I=1 TO NJ 195 PRINT TAB(6);I;TAB(14);X(I); 196 PRINTTAB(24);Y(I);TAB(34);JN(1,I); 200 PRINTTAB(45);JN(2,I);TAB(56);JN(3,I) 205 NEXT I 210 PRINT:PRINT TAB(27);"杆件信息" 215 PRINT TAB(6);"杆件";TAB(13);"结点-I";TAB(22); 220 PRINT "结点-J";TAB(33);"EA";TAB(51);"EI" 225 FOR I=1 TO NE 230 PRINT TAB(6);I;TAB(15);JE(1,I); 232 PRINTTAB(24);JE(2,I); 235 PRINTTAB(32);EA(I);TAB(50);EI(I) 240 NEXT I 245 IF NPJ=0 THEN 275 250 PRINT:PRINT TAB(19);"结点荷载" 255 PRINT TAB(6);"结点";TAB(15);"PX - PY -PM" 260 FOR I=1 TO NPJ 265 PRINTTAB(6);PJ(1,I);TAB(19);PJ(2,I) 270 NEXT I 275 IF NPF=0 THEN 355 280 PRINT:PRINT TAB(19);"单元载荷" 282 PRINT TAB( 6);"杆件";TAB(15);"IND"; 285 PRINT TAB(25);"A";TAB(34);"Q" 290 FOR I=1 TO NPF 295 PRINT TAB( 6);PF(1,I);TAB(15);PF(2,I); 300 PRINTTAB(24);PF(3,I);TAB(33);PF(4,I) 305 NEXT I 310 RETURN 350 '结点总荷载 355 FOR I=1 TO N 360 P(I)=0 365 NEXT I 370 IF NPJ=0 THEN 410 375 FOR I=1 TO NPJ 380 J=INT(PJ(1,I)) 385 C=(PJ(1,I)-J)*10+.0001 390 K=INT(C) 395 L=JN(K,J) 400 IF L<>0THEN P(L)=PJ(2,I) 405 NEXT I 410 IF NPF=0 THEN 510 415 FOR I=1 TO NPF 420 M=INT(PF(1,I)) 425 GOSUB 1100'求杆件的长度和角度 430 GOSUB 1500'计算杆件端部力 435 GOSUB 1200'结点位置向量 440 FE(1)=-F0(1)*CO+F0(2)*SI 445 FE(2)=-F0(1)*SI-F0(2)*CO 450 FE(3)=-F0(3) 455 FE(4)=-F0(4)*CO+F0(5)*SI 460 FE(5)=-F0(4)*SI-F0(5)*CO 465 FE(6)=-F0(6) 470 FOR J=1 TO 6 475 L=JC(J) 480 IF L<>0 THEN P(L)=P(L)+FE(J) 485 NEXT J 490 NEXT I 495 RETURN
|