|
- 10 REM - THIS IS SCALES.BAS
- 20 CLS : A = 340: BT = 254: C = BT: DIV = 1: G = A: H1 = 7650: TICK = 127
- 30 M = 1016: PLU = 40: CI = 360
- 40 INPUT "Please Enter SCALE LENGTH in mm - "; S: S1 = S
- 50 IF S > 2000 THEN GOTO 400
- 60 IF S1 > 250 THEN S1 = S1 - 250: DIV = DIV + 1: GOTO 60
- 70 PRINT : PRINT "Do you want the scale in Degrees or Hours and Minutes?"
- 80 INPUT " Please indicate 'd' for Degrees or 'h' for Hours... "; A$: PRINT
- 90 IF A$ = "h" OR A$ = "H" THEN CI = 288: QQ = 1
- 100 PRINT : PRINT : PRINT "Printing......."
- 110 PRINT : PRINT "NOTE: This will take up to 90 seconds to print."
- 120 S = S / DIV: SP = S * PLU: REM - Convert Scale Length to plotter units
- 130 REM - Clear, set into HP-GL/2 mode, and initialize the printer
- 140 LPRINT CHR$(27); "E": LPRINT CHR$(27); "%0B": LPRINT "IN;"
- 150 DEGREES = (SP / CI) * DIV: REM - Calculate the # of deg (or hrs) to print per column
- 160 LPRINT "SP1;": LPRINT "PW0;": REM - Select a pen and set the width
- 170 REM - Using the Scale Length per column, insert tick marks for the whole column
- 180 REM - there will be one Tick Mark for each degree
- 190 FOR Z = 1 TO DIV
- 200 A = A + Q
- 210 FOR I = 0 TO SP STEP DEGREES
- 220 LPRINT "PU;"
- 230 LPRINT "PA"; A + TICK; ","; C + I; ";"
- 240 LPRINT "PD;"
- 250 LPRINT "PA"; A + BT; ","; C + I; ";"
- 260 LPRINT "PU;"
- 270 P = P + 1: R = R + 1: T = T + 1
- 280 IF QQ = 1 THEN GOTO 330
- 290 IF T = 360 THEN T = 0
- 300 IF P = 5 THEN GOSUB 540
- 310 IF R = 10 THEN GOSUB 620
- 320 GOTO 360
- 330 IF T = 288 THEN T = 0
- 340 IF P = 4 THEN GOSUB 540
- 350 IF R = 12 THEN GOSUB 620
- 360 NEXT I
- 370 A = 340: Q = Q + M
- 380 NEXT Z
- 390 GOTO 420
- 400 PRINT : PRINT "Value is too high for this program,"
- 410 PRINT " Please enter another SMALLER value": PRINT : GOTO 40:
- 420 REM - Draw registration dots at bottom of the scales
- 430 LPRINT "UL8,5,20,5,20,5,20,5,20;"
- 440 LPRINT "LT8;"
- 450 LPRINT "PU;"
- 460 LPRINT "PA"; G; ","; C - DEGREES; ";"
- 470 LPRINT "PD;"
- 480 LPRINT "PA"; H1; ","; C - DEGREES; ";"
- 490 LPRINT "PU;"
- 500 REM - Reset the Printer
- 510 LPRINT CHR$(27); "%0A": LPRINT CHR$(27); "E"
- 520 END
- 530 REM - "Make every fifth degree or 20th minute longer" SUB-ROUTINE
- 540 LPRINT "PU;"
- 550 LPRINT "PA"; A; ","; C + I; ";"
- 560 LPRINT "PD;"
- 570 LPRINT "PA"; A + BT; ","; C + I; ";"
- 580 LPRINT "PU;"
- 590 P = 0
- 600 RETURN
- 610 REM - "Number the scales with degrees or hours" SUB-ROUTINE
- 620 LPRINT "SD1,21,2,1,4,10,7,4148;"
- 630 IF DIV > 2 THEN LPRINT "DI0,-1;": LPRINT "LO16;": GOTO 650
- 640 LPRINT "LO18;"
- 650 LPRINT "DT*,1;"
- 660 LPRINT "PU;"
- 670 LPRINT "PA"; A; ","; C + I; ";"
- 680 IF QQ = 1 THEN LPRINT "LB"; (T / 12); "*;": GOTO 710
- 690 LPRINT "PD;"
- 700 LPRINT "LB"; T; "*;"
- 710 LPRINT "PU;"
- 720 R = 0
- 730 RETURN
- 900 REM *********************************************
- 910 REM THIS PROGRAM BY RONALD KOCELA PRODUCES LINEAR
- 920 REM SETTING CIRCLE SCALES ON HP LASERJET PRINTERS
- 930 REM FROM SKY & TELESCOPE, MARCH 1996, PAGE 84.
- 940 REM *********************************************
|