100 '機械運動学 ピストンクランク機構 アニメーションプログラム 2009.11.23 K.Unigame 110 '------------------------------------------------------------------ 120 CLS 3 130 SCREEN 3 140 W=1 150 R=30:ALP=.3#:VA=40:ST=0.5 160 XO=200:YO=220:TIME1=10 170 Z=2# 180 PI=3.1415926#/180 190 FOR T=0 TO 180 STEP 10 200 TR=T*PI 210 LINE (XO-100,YO)-(XO+400,YO) 220 LINE (XO,YO-100)-(XO,YO+100) 230 CIRCLE (XO,YO),R*Z,,0,PI*180 240 CIRCLE (XO,YO),(R+VA)*Z,,0,PI*180 250 YC=R*SIN(TR) :YV=VA*SIN(90*PI+TR) 260 XC=R*COS(TR) :XV=VA*COS(90*PI+TR) 270 XP=XC+R/ALP*SQR(1-(ALP*SIN(TR))^2) 280 LINE (XO,YO)-(XO+XC*Z,YO-YC*Z) 290 LINE (XO+XC*Z,YO-YC*Z)-(XO+XP*Z,YO),2 300 CIRCLE(XO+XP*Z,YO),2,2,,,,F,2 310 LINE (XO+XC*Z,YO-YC*Z)-(XO+(XC+XV)*Z,YO-(YC+YV)*Z),3 320 LINE (XO+(XC+XV)*Z,YO-(YC+YV)*Z)-(XO+(XC+XV)*Z-5*Z*COS(TR+(90+30)*PI),YO-(YC+YV)*Z+5*Z*SIN(TR+(90+30)*PI)),3 330 LINE (XO+(XC+XV)*Z,YO-(YC+YV)*Z)-(XO+(XC+XV)*Z-5*Z*COS(TR+(90-30)*PI),YO-(YC+YV)*Z+5*Z*SIN(TR+(90-30)*PI)),3 335 INPUT "ENTER PUSH";D 336 CLS 1 340 '第1工程 1 延長線 350 IF T>90 GOTO 410 360 FOR A=XC+ST TO XP/COS(TR) STEP ST 370 LINE (XO+XC*Z+(A-XC-ST)*COS(TR)*Z,YO-YC*Z-(A-XC-ST)*SIN(TR)*Z)-(XO+XC*Z+(A-XC)*COS(TR)*Z,YO-YC*Z-(A-XC)*SIN(TR)*Z) 380 FOR WT=0 TO TIME1 :NEXT WT 390 IF A>=200 THEN GOTO 460 400 NEXT A 405 GOTO 460 410 FOR A=ST TO XP/COS(TR) STEP -ST 420 LINE (XO+(A-ST)*COS(TR)*Z,YO-(A-ST)*SIN(TR)*Z)-(XO+(A)*COS(TR)*Z,YO-(A)*SIN(TR)*Z) 430 IF A<=-200 THEN GOTO 455 440 FOR WT=0 TO TIME1 :NEXT WT 450 NEXT A 455 FOR Q=R TO R+VA STEP ST 456 LINE (XO+(Q-ST)*COS(TR)*Z,YO-(Q-ST)*SIN(TR)*Z)-(XO+(Q)*COS(TR)*Z,YO-(Q)*SIN(TR)*Z) 458 NEXT Q 460 INPUT "ENTER PUSH";D 465 CLS 1 470 '第1工程 2 延長線3 480 IF T=90 THEN GOTO 560 490 FOR B=0 TO XP STEP ST 500 LINE (XO+XP*Z,YO-(B-ST)*Z*TAN(TR))-(XO+XP*Z,YO-B*Z*TAN(TR)),1 510 FOR WT=0 TO TIME1 :NEXT WT 520 NEXT B 530 CIRCLE (XO+XP*Z,YO-XP*TAN(TR)*Z),2,2,,,,F,2 540 IF B>=YO THEN GOTO 595 550 IF T<90 THEN GOTO 595 560 FOR S=0 TO 50 STEP ST 570 LINE (XO+XP*Z,YO-(S)*Z)-(XO+XP*Z,YO-(S+ST)*Z),1 580 FOR WT=0 TO TIME1 :NEXT WT 590 NEXT S 595 INPUT "ENTER PUSH";D 596 CLS 1 600 '速度VAの回転 610 FOR C=89 TO 0 STEP -ST 620 CTR=C*PI 630 CX1=VA*COS(CTR+TR):CX2=VA*COS(CTR+TR+1*PI) 640 CY1=VA*SIN(CTR+TR):CY2=VA*SIN(CTR+TR+1*PI) 650 LINE (XO+XC*Z,YO-YC*Z)-(XO+(XC+CX2)*Z,YO-(YC+CY2)*Z),0 660 LINE (XO+(XC+CX2)*Z,YO-(YC+CY2)*Z)-(XO+(XC+CX2)*Z-5*Z*COS(TR+(C+1-30)*PI),YO-(YC+CY2)*Z+5*Z*SIN(TR+(C+1-30)*PI)),0 670 LINE (XO+(XC+CX2)*Z,YO-(YC+CY2)*Z)-(XO+(XC+CX2)*Z-5*Z*COS(TR+(C+1+30)*PI),YO-(YC+CY2)*Z+5*Z*SIN(TR+(C+1+30)*PI)),0 680 LINE (XO+XC*Z,YO-YC*Z)-(XO+(XC+CX1)*Z,YO-(YC+CY1)*Z) ,3 690 LINE (XO+(XC+CX1)*Z,YO-(YC+CY1)*Z)-(XO+(XC+CX1)*Z-5*Z*COS(TR+(C-30)*PI),YO-(YC+CY1)*Z+5*Z*SIN(TR+(C-30)*PI)),3 700 LINE (XO+(XC+CX1)*Z,YO-(YC+CY1)*Z)-(XO+(XC+CX1)*Z-5*Z*COS(TR+(C+30)*PI),YO-(YC+CY1)*Z+5*Z*SIN(TR+(C+30)*PI)),3 710 FOR WT=0 TO TIME1 :NEXT WT 720 NEXT C 725 INPUT "ENTER PUSH";D 726 CLS 1 730 '第3工程 740 IF T=0 THEN 900 750 FOR D=XC+CX1 TO XP STEP ST 760 D1=D-XC-CX1 770 CL=1/(SIN(TR)*ALP*SQR(1-(ALP*SIN(TR))^2)) 780 LINE (XO+(XC+CX1)*Z+D1*Z,YO-(YC+CY1)*Z+((D1)/CL)*Z)-(XO+(XC+CX1)*Z+(D1+ST)*Z,YO-(YC+CY1)*Z+((D1+ST)/CL)*Z),4 790 NEXT D 800 CIRCLE(XO+(XC+CX1)*Z+(D1+ST)*Z,YO-(YC+CY1)*Z+((D1+ST)/CL)*Z),2,4,,,,F,4 890 GOTO 905 900 CIRCLE(XO+XP*Z,YO),2,4,,,,F,4 905 INPUT "ENTER PUSH";D 906 CLS 1 910 NEXT T