To --> program code (complete) Data snippet from the user editing area for single cubics: (program code is below the data snippet.) ------------------------------------------------------------------------- Rotation for light source: 0 = 0 1 = 90 2 = 180 3 = 270 point one min x,y,z max x,y,z rotation,color --------- --------- --------- -------------- Points 201 - 398 Use line labels 201, 211, 221 .... 391 AUTOCUBE20: 201 0 0 0 .5 44 1.5 2,2 211 0 0 48.5 .5 44 51 2,2 221 0 0 1.5 .5 2 48.5 2,2 231 0 42 1.5 .5 44 48.5 2,2 241 0 0 0 .5 40 1.5 2,2 251 0 0 48.5 .5 40 51 2,2 261 0 0 1.5 .5 2 48.5 2,2 271 0 38 1.5 .5 40 48.5 2,2 281 0 0 0 .5 128 1.5 3,2 291 0 0 40.5 .5 128 43 3,2 301 0 0 1.5 .5 2 40.5 3,2 311 0 42.3 1.5 .5 44.3 40.5 3,2 321 0 83.7 1.5 .5 85.7 40.5 3,2 331 0 126 1.5 .5 128 40.5 3,2 341 0 0 1.5 .5 78 1.5 3,2 351 0 0 40.5 .5 78 43 3,2 361 0 0 1.5 .5 2 40.5 3,2 371 0 38 1.5 .5 40 40.5 3,2 381 0 76 1.5 .5 78 40.5 3,2 391 0 0 0 .5 44 1.5 3,2 999 999,999,999 999,999,999 0,0 Points 401 - 598 Use line labels 401, 411, 421 .... 591 AUTOCUBE40: 401 0 0 40.5 .5 44 43 3,2 411 0 0 1.5 .5 2 40.5 3,2 421 0 42 1.5 .5 44 40.5 3,2 431 0 0 80 .5 36 82 2,2 441 0 0 0 .5 2 80 2,2 451 0 34 0 .5 36 80 2,2 461 0 2 0 0 34 80 2,3 471 0 0 80 .5 40 82 3,2 481 0 0 0 .5 2 80 3,2 491 0 38 0 .5 40 80 3,2 501 0 2 0 0 38 80 3,3 999 999,999,999 999,999,999 0,0 ------------------------------------------------------------------------- Plane t1,b1,t2,b2 direction,color ---------------------------------------------- AUTOPLANE: 999 999,999,999,999 0,0 ---------------------------------------------- --------------------------------------- Autoframing lines Plane, number of framing lines ------------- AUTOFRAMING1: 999,999 ------------- ------------- AUTOFRAMING2: 999,999 ------------- --------------------------------------- Transformations --------------------------------- first, last, multX, multY, multZ TRAN RESIZE: 201 508 .16 .08333 .08333 999,999, 999,999,999 --------------------------------- ----------------------------------------- first, last, zangle, tranx, trany, tranz LR north window TRAN ZROTATETRANSLATE: 201 238 90 17.33 41.2 10.75 999,999 999 999,999,999 kitchen north window TRAN ZROTATETRANSLATE: 241 278 90 6.667 41.2 10.75 999,999 999 999,999,999 LR east windows TRAN ZROTATETRANSLATE: 281 338 0 24 28.17 11.417 999,999 999 999,999,999 Den windows TRAN ZROTATETRANSLATE: 341 388 0 24 12.25 11.417 999,999 999 999,999,999 SE BR east window TRAN ZROTATETRANSLATE: 391 428 0 24 4.17 11.417 999,999 999 999,999,999 kitchen door TRAN ZROTATETRANSLATE: 431 468 90 11.67 41.2 8 999,999 999 999,999,999 front door TRAN ZROTATETRANSLATE: 471 508 0 24 22.79 8 999,999 999 999,999,999 ---------------- End pasting here. TRAN STOP -------------------------------------------------------- program code snippet for reading the above data snippet: SBAS : READATA = 2 GOSUB WIPEVALUES ON ERROR GOTO SoERR1 OPEN "DATA\" + T$ + "-" + G$ + ".txt" FOR INPUT AS #2 GOSUB SoREADDATA GOSUB TRANSFORMATIONS CLOSE #2 GOTO MAIN SoREADDATA : Do While TIPE$ <> "LIGHTDARK:" Input #2, TIPE$ Loop Input #2, LIGHT, DARKK DO WHILE TIPE$ <> "WIRECOLORS:" INPUT #2, TIPE$ LOOP INPUT #2, BACK, K1, K2, K3, K4, K5, K6, K7, K8 Do While TIPE$ <> "BEGIN-END:" Input #2, TIPE$ Loop Input #2, XBEGINDATA, XENDDATA, YBEGINDATA, YENDDATA, ZBEGINDATA, ZENDDATA GOSUB STANDARDPOINTSLINES SoAUTOCUBE: DO WHILE TIPE$ <> "AUTOCUBE20:" INPUT #2, TIPE$ LOOP P = 201: RL = NL1 + NL2 + NL3 + NL4 + NL5 + 1 RPL = 201 FOR AC = 20 TO 39 BLOK = 1: GOTO SoB100 SoB10: IF DUMMY% = 999 THEN EXIT FOR NEXT AC SoB11: DO WHILE TIPE$ <> "AUTOCUBE40:" INPUT #2, TIPE$ LOOP P = P - 1: RL = RL - 1: RPL = RPL - 5 NL6 = RL - (NL1 + NL2 + NL3 + NL4 + NL5) NP2 = P - 200 P = 401: RL = NL1 + NL2 + NL3 + NL4 + NL5 + NL6 + 1 RPL = 401 FOR AC = 40 TO 59 BLOK = 2: GOTO SoB100 SoB20: IF DUMMY% = 999 THEN EXIT FOR NEXT AC SoB21: DO WHILE TIPE$ <> "AUTOCUBE60:" INPUT #2, TIPE$ LOOP P = P - 1: RL = RL - 1: RPL = RPL - 5 NL7 = RL - (NL1 + NL2 + NL3 + NL4 + NL5 + NL6) NP3 = P - 400 P = 601: RL = NL1 + NL2 + NL3 + NL4 + NL5 + NL6 + NL7 + 1 RPL = 601 FOR AC = 60 TO 79 BLOK = 3: GOTO SoB100 SoB30: IF DUMMY% = 999 THEN EXIT FOR NEXT AC SoB31: P = P - 1: RL = RL - 1: RPL = RPL - 5 NL8 = RL - (NL1 + NL2 + NL3 + NL4 + NL5 + NL6 + NL7) NP4 = P - 600 GOTO SoJKREAD SoB100 : INPUT #2, DUMMY%, X1, Y1, Z1, X6, Y6, Z6, ROT(AC), COLAC(AC) IF DUMMY% = 999 THEN GOTO SoB150 GOSUB B101ASSIGNMENTS GOSUB T1B1T2B2 SoB150: IF BLOK = 1 THEN GOTO SoB10 IF BLOK = 2 THEN GOTO SoB20 IF BLOK = 3 THEN GOTO SoB30 SoJKREAD : DO WHILE TIPE$ <> "AUTOPLANE:" INPUT #2, TIPE$ LOOP FOR RPL = 1 TO 800 INPUT #2, DUMMY%, T1(RPL), B1(RPL), T2(RPL), B2(RPL), DIR(RPL), COLR(RPL) IF DUMMY% = 999 THEN EXIT FOR NEXT RPL GOSUB FRAMINGSTMXYZ8 RETURN SoERR1 : GOSUB ERRORCODES CLOSE #2 READATA = 2 GOTO MAIN RESIZE: FOR RD = 1 TO 1000 INPUT #2, FIRST, LAST, MULTX, MULTY, MULTZ IF FIRST = 999 THEN EXIT FOR FOR RESIZE = FIRST TO LAST X(RESIZE) = X(RESIZE) * MULTX: XR(RESIZE) = X(RESIZE) Y(RESIZE) = Y(RESIZE) * MULTY: YR(RESIZE) = Y(RESIZE) Z(RESIZE) = Z(RESIZE) * MULTZ: ZR(RESIZE) = Z(RESIZE) NEXT RESIZE NEXT RD GOTO TRANSFORMATIONS ZROT: FOR RD = 1 TO 1000 INPUT #2, FIRST, LAST, ZANGLE, TRANX, TRANY, TRANZ IF FIRST = 999 THEN EXIT FOR ZANGLE = (ZANGLE * 3.14159) / 180 FOR ROT = FIRST TO LAST X(ROT) = (XR(ROT) * COS(ZANGLE)) - (YR(ROT) * SIN(ZANGLE)) + TRANX Y(ROT) = (XR(ROT) * SIN(ZANGLE)) + (YR(ROT) * COS(ZANGLE)) + TRANY Z(ROT) = ZR(ROT) + TRANZ XR(ROT) = X(ROT): YR(ROT) = Y(ROT): ZR(ROT) = Z(ROT) NEXT ROT NEXT RD GOTO TRANSFORMATIONS WIPEVALUES: NL1 = 0: NL2 = 0: NL3 = 0: NL4 = 0: NL5 = 0 NL6 = 0: NL7 = 0: NL8 = 0: NL9 = 0: NL10 = 0 NP1 = 0: NP2 = 0: NP3 = 0: NP4 = 0: NP5 = 0: NP6 = 0 For WIPE = 1 To 800 X(WIPE) = 0: Y(WIPE) = 0: Z(WIPE) = 0 XR(WIPE) = 0: YR(WIPE) = 0: ZR(WIPE) = 0 T1(WIPE) = 0: T2(WIPE) = 0: B1(WIPE) = 0: B2(WIPE) = 0 AUTOFRM1(WIPE) = 0 AUTOFRM2(WIPE) = 0 TDIR(WIPE) = 0 ROTAT(WIPE) = 0 DIR(WIPE) = 0 COLR(WIPE) = 0 ROT(WIPE) = 0 Next WIPE For WIPE = 1 To 80 COLAC(WIPE) = 0 Next WIPE RETURN B101ASSIGNMENTS: DX = X6 - X1: DY = Y6 - Y1: DZ = Z6 - Z1 X(P) = X1: Y(P) = Y1: Z(P) = Z1: P1 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = X1: Y(P) = Y1: Z(P) = Z1 + DZ: P2 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = X1: Y(P) = Y1 + DY: Z(P) = Z1: P3 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = X1: Y(P) = Y1 + DY: Z(P) = Z1 + DZ: P4 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = X1 + DX: Y(P) = Y1 + DY: Z(P) = Z1: P5 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = X6: Y(P) = Y6: Z(P) = Z6: P6 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = X1 + DX: Y(P) = Y1: Z(P) = Z1: P7 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = X1 + DX: Y(P) = Y1: Z(P) = Z1 + DZ: P8 = P XR(P) = X(P): YR(P) = Y(P): ZR(P) = Z(P): P = P + 1 X(P) = 0: Y(P) = 0: Z(P) = 0: P = P + 1 X(P) = 0: Y(P) = 0: Z(P) = 0: P = P + 1 FP(RL) = P1: SP(RL) = P2: RL = RL + 1 FP(RL) = P3: SP(RL) = P4: RL = RL + 1 FP(RL) = P5: SP(RL) = P6: RL = RL + 1 FP(RL) = P7: SP(RL) = P8: RL = RL + 1 FP(RL) = P1: SP(RL) = P3: RL = RL + 1 FP(RL) = P3: SP(RL) = P5: RL = RL + 1 FP(RL) = P5: SP(RL) = P7: RL = RL + 1 FP(RL) = P7: SP(RL) = P1: RL = RL + 1 FP(RL) = P2: SP(RL) = P4: RL = RL + 1 FP(RL) = P4: SP(RL) = P6: RL = RL + 1 FP(RL) = P6: SP(RL) = P8: RL = RL + 1 FP(RL) = P8: SP(RL) = P2: RL = RL + 1 RETURN T1B1T2B2: T1(RPL) = P1: B1(RPL) = P2: T2(RPL) = P3: B2(RPL) = P4 DIR(RPL) = 1: COLR(RPL) = COLAC(AC): ROTAT(RPL) = ROT(AC): RPL = RPL + 1 T1(RPL) = P3: B1(RPL) = P4: T2(RPL) = P5: B2(RPL) = P6 DIR(RPL) = 2: COLR(RPL) = COLAC(AC): ROTAT(RPL) = ROT(AC): RPL = RPL + 1 T1(RPL) = P5: B1(RPL) = P6: T2(RPL) = P7: B2(RPL) = P8 DIR(RPL) = 3: COLR(RPL) = COLAC(AC): ROTAT(RPL) = ROT(AC): RPL = RPL + 1 T1(RPL) = P7: B1(RPL) = P8: T2(RPL) = P1: B2(RPL) = P2 DIR(RPL) = 4: COLR(RPL) = COLAC(AC): ROTAT(RPL) = ROT(AC): RPL = RPL + 1 T1(RPL) = P1: B1(RPL) = P3: T2(RPL) = P7: B2(RPL) = P5 DIR(RPL) = 5: COLR(RPL) = COLAC(AC): RPL = RPL + 1 T1(RPL) = P2: B1(RPL) = P4: T2(RPL) = P8: B2(RPL) = P6 DIR(RPL) = 6: COLR(RPL) = COLAC(AC): RPL = RPL + 5 RETURN FRAMINGAXYZXYZ8: Do While TIPE$ <> "AUTOFRAMING1:" Input #2, TIPE$ Loop Do While NFL <> 999 Input #2, SPL, EPL, NFL If NFL = 999 Then NFL = 0: AUTOFRM1(PL) = 0: Exit Do For PL = SPL To EPL Step 10 AUTOFRM1(PL) = NFL Next PL Loop Do While TIPE$ <> "AUTOFRAMING2:" Input #2, TIPE$ Loop Do While NFL <> 999 Input #2, SPL, EPL, NFL If NFL = 999 Then NFL = 0: AUTOFRM2(PL) = 0: Exit Do For PL = SPL To EPL Step 10 AUTOFRM2(PL) = NFL Next PL Loop RETURN To --> program code (complete) |