ピッチ(正三角形の1辺)10mm

-10度から100度まで、半径120mmの範囲

x=40、y=120、半径30の範囲は省略

作図は、Φ2mmを想定

IMG_20200517_102133

IMG_20200517_102133


10
   OPTION ANGLE DEGREES
   REM test 2
   REM 穴位置プログラム
   CLOSE #1
   OPEN #1:NAME "O0001.NCD"
   LET NC$="%"
   GOSUB  9980   
   LET NC$="O0001"
   GOSUB  9980  
   
   FOR yn=-10 TO 100
      FOR xn=-10 TO 100
         LET xa=10*xn
         IF yn/2<>INT(yn/2) THEN LET xa=xa+5
         LET ya=10*SQR(3)/2*yn
         LET a1=-10                 ! check-1
         LET x1=0+2*COS(a1-90)
         LET y1=0+2*SIN(a1-90)
         LET a2=100
         LET x2=0+2*COS(a2+90)
         LET y2=0+2*SIN(a2+90)
         REM y-y1=(x-x1)*tan(a1)
         LET yc=y1+(xa-x1)*TAN(a1)
         IF ya<yc THEN GOTO 90
         LET yd=y2+(xa-x2)*TAN(a2)
         IF ya<yd THEN GOTO 90
         LET xg=0                ! check-2
         LET yg=0
         LET rg=120
         LET lg=SQR(xa^2+ya^2)
         IF lg>rg THEN GOTO 90
         LET xq=40            ! check-3
         LET yq=120
         LET rq=30
         LET lq=SQR((xa-xq)^2+(ya-yq)^2)
         IF lq<rq THEN GOTO 90
         
         LET X=XA
         LET Y=YA
         GOSUB 9900
         
90
      NEXT xn
   NEXT yn
   
   LET NC$="%"
   GOSUB  9980  
   
   STOP
   
   
   
   
   
9900 IF ABS(X-XM)<0.0005 THEN GOTO 9920
     LET XX=(INT((X+0.0005)*1000))/1000
     IF NN=0 THEN LET RM=XX
     IF ABS(XX)>0.0005 THEN GOTO 9910
     LET X$="X0"
     GOTO 9920
9910 LET XX$=STR$(XX)
     LET X$="X"&XX$
     IF ABS(INT(XX)-XX)<0.0005 THEN LET X$=X$&"."
     
9920 IF ABS(Y-YM)<0.0005 THEN GOTO 9940
     LET YY=(INT((Y+0.0005)*1000))/1000
     IF ABS(YY)>0.0005 THEN GOTO 9930
     LET Y$="Y0"
     GOTO 9940
9930 LET YY$=STR$(YY)
     LET Y$="Y"&YY$
     IF ABS(INT(YY)-YY)<0.0005 THEN LET Y$=Y$&"."
     
9940 IF ABS(Z-ZM)<0.0005 THEN GOTO 9960
     LET ZZ=(INT((Z+0.0005)*1000))/1000
     IF ABS(ZZ)>0.0005 THEN GOTO 9950
     LET Z$="Z0"
     GOTO 9960
9950 LET ZZ$=STR$(ZZ)
     LET Z$="Z"&ZZ$
     IF ABS(INT(ZZ)-ZZ)<0.0005 THEN LET Z$=Z$&"."
     
9960 IF R<=0 THEN GOTO 9970
     LET RR=(INT((R+0.0005)*1000))/1000
     LET RR$=STR$(RR)
     LET R$="R"&RR$
     IF ABS(INT(RR)-RR)<0.0005 THEN LET R$=R$&"."
     LET RM=R9
9970 LET NC$=G$&X$&Y$&Z$&R$&M$
9980 PRINT #1: NC$
     
     
     LET XM=XX    
     LET YM=YY
     LET ZM=ZZ
     LET G$="" 
     LET X$=""
     LET Y$=""
     LET Z$=""
     LET R$=""
     LET M$=""
     LET NC$=""
     RETURN
     
     
  END