To: RogCAD home



Short document showing RogCAD's file structure
----------------------------------------------

Two sections:

1.  mz-.bas data-file reader

2.  mz-.txt data-file

  
=====================================================
1.

This is the relevant portion of an empty mz-.txt 
data-file reader for RogCAD.

"m" stands for "multi".  

-------------------------------------
It reads data of the following types:

standard points
lines connecting those points
planes defined by the standard points

single cubics
cubics repeated along an axis

curve-generation
-------------------------------------

It also reads data pertaining to wireframe line colors,
rotations and light-source direction.



'mz.bas

REM $INCLUDE: 'ROGCAD2.BI'
'-------------------------

READDATA:

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


STANDARDPOINTS:
DO WHILE TIPE$ <> "STANDARD:"
  INPUT #2, TIPE$
LOOP

FOR RW = 1 TO 10000
 INPUT #2, DUMMY%, X(RW), Y(RW), Z(RW)
 XR(RW) = X(RW): YR(RW) = Y(RW): ZR(RW) = Z(RW)
 IF DUMMY% = 999 THEN
  NP1 = RW - 1
  EXIT FOR
 END IF
NEXT RW


read lines data:

LG1:
DO WHILE TIPE$ <> "LINEG1:"
  INPUT #2, TIPE$
LOOP

FOR RL = 1 TO 10000
 INPUT #2, FP(RL), SP(RL)
 IF FP(RL) = 999 AND SP(RL) = 999 THEN
  NL1 = RL - 1
  EXIT FOR
 END IF
NEXT RL

'plus four more line groups for variation 
 of wireframe lines colors.


'==============================================
cubics repeated along an axis:

AUTOCUBE:
DO WHILE TIPE$ <> "AUTOCUBE20:"
  INPUT #2, TIPE$
LOOP

P = 201: RL = NL1 + NL2 + NL3 + NL4 + NL5 + 1
RPL = 201

   INPUT #2, X1, Y1, Z1, X6, Y6, Z6, ZINC, ENDCUBE, ROT, COLAC
   Z1 = Z1 - ZINC: Z6 = Z6 - ZINC: STOPREAD = ENDCUBE + 1
 
  FOR AC = 20 TO ENDCUBE
     Z1 = Z1 + ZINC
     Z6 = Z6 + ZINC
     BLOK = 1: GOTO B101
B10:
     IF AC = STOPREAD THEN GOTO B11
NEXT AC
'==============================================


'==============================================
single cubics reader:

B11:
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 B100

B20:
IF DUMMY% = 999 THEN EXIT FOR
NEXT AC
B21:
'==============================================


P = P - 1: RL = RL - 1: RPL = RPL - 5
NL7 = RL - (NL1 + NL2 + NL3 + NL4 + NL5 + NL6)
NP3 = P - 400

GOTO JKREAD


'==============================================
'define points and planes for cubics read above.
'(turns two points into eight points plus six planes.)

B100:
INPUT #2, DUMMY%, X1, Y1, Z1, X6, Y6, Z6, ROT(AC), COLAC(AC)
IF DUMMY% = 999 THEN GOTO B150

B101:
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

IF BLOK = 2 THEN GOTO SINGLES

FMEMBERS:
T1(RPL) = P1: B1(RPL) = P2: T2(RPL) = P3: B2(RPL) = P4
DIR(RPL) = 1: COLR(RPL) = COLAC: ROTAT(RPL) = ROT: RPL = RPL + 1

T1(RPL) = P3: B1(RPL) = P4: T2(RPL) = P5: B2(RPL) = P6
DIR(RPL) = 2: COLR(RPL) = COLAC: ROTAT(RPL) = ROT: RPL = RPL + 1

T1(RPL) = P5: B1(RPL) = P6: T2(RPL) = P7: B2(RPL) = P8
DIR(RPL) = 3: COLR(RPL) = COLAC: ROTAT(RPL) = ROT: RPL = RPL + 1

T1(RPL) = P7: B1(RPL) = P8: T2(RPL) = P1: B2(RPL) = P2
DIR(RPL) = 4: COLR(RPL) = COLAC: ROTAT(RPL) = ROT: RPL = RPL + 1

T1(RPL) = P1: B1(RPL) = P3: T2(RPL) = P7: B2(RPL) = P5
DIR(RPL) = 5: COLR(RPL) = COLAC: ROTAT(RPL) = 0: RPL = RPL + 1

T1(RPL) = P2: B1(RPL) = P4: T2(RPL) = P8: B2(RPL) = P6
DIR(RPL) = 6: COLR(RPL) = COLAC: ROTAT(RPL) = 0: RPL = RPL + 5

GOTO B150


SINGLES:
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): ROTAT(RPL) = 0: RPL = RPL + 1

T1(RPL) = P2: B1(RPL) = P4: T2(RPL) = P8: B2(RPL) = P6
DIR(RPL) = 6: COLR(RPL) = COLAC(AC): ROTAT(RPL) = 0: RPL = RPL + 5

B150:
IF BLOK = 1 THEN GOTO B10
IF BLOK = 2 THEN GOTO B20
'==============================================


'==============================================
'read plane data:
JKREAD:

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
'==============================================



'==============================================
'insert perspectively correct lines to simulate 
'shingles, siding, bricks, etc

FRAMINGREAD1:

DO WHILE TIPE$ <> "AUTOFRAMING1:"
  INPUT #2, TIPE$
LOOP

REM Reads plane number and number of framing lines
DO WHILE NFL <> 999
INPUT #2, PL, NFL
IF NFL = 999 THEN NFL = 0: AUTOFRM1(PL) = 0: EXIT DO
AUTOFRM1(PL) = NFL
LOOP

FRAMINGREAD2:

DO WHILE TIPE$ <> "AUTOFRAMING2:"
  INPUT #2, TIPE$
LOOP

DO WHILE NFL <> 999
INPUT #2, PL, NFL
IF NFL = 999 THEN NFL = 0: AUTOFRM2(PL) = 0: EXIT DO
AUTOFRM2(PL) = NFL
LOOP

'===================================================



'==============================================
'curved elements reader

P = 601: RL = NL1 + NL2 + NL3 + NL4 + NL5 + NL6 + NL7 + 1
RPL = 601

CIRC = 600: COUNT = 0

DO WHILE TIPE$ <> "CURVDATA:"
  INPUT #2, TIPE$
LOOP

FOR RD = 1 TO 30 'up to 30 sections in accordance with DIM statements

 INPUT #2, CURVPOINTS(RD)

 INPUT #2, DEGB(RD), ARCB(RD), RADXB(RD), RADYB(RD)
 INPUT #2, XB(RD), YB(RD), ZB(RD), LB(RD), INCB(RD), STREB(RD)

 INPUT #2, DEGT(RD), ARCT(RD), RADXT(RD), RADYT(RD)
 INPUT #2, XT(RD), YT(RD), ZT(RD), LT(RD), INCT(RD), STRET(RD)

 IF CURVPOINTS(RD) = 999 THEN EXIT FOR

  CURVEFINE(RD) = (CURVPOINTS(RD)) * .5
  CURVINC(RD) = CURVEFINE(RD) - 1
  PTPAIRS(RD) = CURVEFINE(RD) * 2
  NP4 = NP4 + PTPAIRS(RD)

 COUNT = COUNT + 1

NEXT RD

'points

FOR RD = 1 TO COUNT
'bottom
  DEG1 = DEGB(RD): DEG2 = DEG1 + ARCB(RD)
  DEG1 = (DEG1 * 3.14159) / 180: DEG2 = (DEG2 * 3.14159) / 180
  ZDEG = LB(RD)
   FOR INC = 0 TO CURVINC(RD)
     CIRC = CIRC + 1
     X(CIRC) = (RADXB(RD) * COS(DEG1 + (INC / CURVINC(RD)) * (DEG1 - DEG2))) + XB(RD)
     Y(CIRC) = (RADYB(RD) * SIN(DEG1 + (INC / CURVINC(RD)) * (DEG1 - DEG2))) + YB(RD)
        IF INCB(RD) = 0 THEN Z(CIRC) = ZB(RD): GOTO 10
        ZDEG = ZDEG - INCB(RD)
        ZRAD = STREB(RD) * (COS((ZDEG * 3.14159) / 180))
        Z(CIRC) = (-1 * (ZRAD)) + ZB(RD)
10   XR(CIRC) = X(CIRC): YR(CIRC) = Y(CIRC): ZR(CIRC) = Z(CIRC)
   NEXT INC

'top
  DEG1 = DEGT(RD): DEG2 = DEG1 + ARCT(RD)
  DEG1 = (DEG1 * 3.14159) / 180: DEG2 = (DEG2 * 3.14159) / 180
  ZDEG = LT(RD)
   FOR INC = 0 TO CURVINC(RD)
     CIRC = CIRC + 1
     X(CIRC) = (RADXT(RD) * COS(DEG1 + (INC / CURVINC(RD)) * (DEG1 - DEG2))) + XT(RD)
     Y(CIRC) = (RADYT(RD) * SIN(DEG1 + (INC / CURVINC(RD)) * (DEG1 - DEG2))) + YT(RD)
        IF INCT(RD) = 0 THEN Z(CIRC) = ZT(RD): GOTO 20
        ZDEG = ZDEG - INCT(RD)
        ZRAD = STRET(RD) * (COS((ZDEG * 3.14159) / 180))
        Z(CIRC) = (-1 * (ZRAD)) + ZT(RD)
20   XR(CIRC) = X(CIRC): YR(CIRC) = Y(CIRC): ZR(CIRC) = Z(CIRC)
   NEXT INC
NEXT RD

'Connect points

FOR RD = 1 TO COUNT
  IF RD = 1 THEN CP = 601: GOTO 30
  RPREVIOUS = RD - 1
  CP = CP + PTPAIRS(RPREVIOUS)
30:
  FOR CNT = 1 TO CURVEFINE(RD)
    FP(RL) = CP: SP(RL) = CP + CURVEFINE(RD): RL = RL + 1: CP = CP + 1
  NEXT CNT
  
  CP = CP - CURVEFINE(RD)
  FOR CNT = 1 TO CURVINC(RD)
     FP(RL) = CP: SP(RL) = CP + 1: RL = RL + 1: CP = CP + 1
  NEXT CNT

  CP = CP + 1
  FOR CNT = 1 TO CURVINC(RD)
     FP(RL) = CP: SP(RL) = CP + 1: RL = RL + 1: CP = CP + 1
  NEXT CNT
     
  CP = (CP - PTPAIRS(RD)) + 1
NEXT RD

'planes

FOR RD = 1 TO COUNT
  IF RD = 1 THEN PP = 601: RPL = 601: GOTO 40
  RPREVIOUS = RD - 1
  PP = PP + CURVEFINE(RPREVIOUS): RPL = RPL + CURVEFINE(RPREVIOUS)
40:
      FOR CNT = 1 TO CURVINC(RD)
       B1(RPL) = PP: T1(RPL) = PP + 1
       B2(RPL) = PP + CURVEFINE(RD): T2(RPL) = PP + CURVEFINE(RD) + 1
       RPL = RPL + 1: PP = PP + 1
      NEXT CNT
      PP = PP + 1: RPL = RPL + 1
NEXT RD

RL = RL - 1
NL8 = RL - (NL1 + NL2 + NL3 + NL4 + NL5 + NL6 + NL7)

RETURN

================================================================



  

================================================================
2.

An mz-.txt data file:



mz-.txt

Point numbers     Point section     Color

    1 -  198      STANDARD           K1 - K5
  201 -  398      AUTOCUBE200        K6
  401 -  598      AUTOCUBE400        K7
  601 -  800      CURVES             K8


*********  THE USER EDITING AREA  *******************

LIGHTDARK       Edit lightest and darkest side of planes.
WIRECOLORS      Edit colors for wireframe line groups.
STANDARD        Edit data for standard points.
LINES           Edit data for point-pair lines.
AUTOPLANE       Edit data for planes.
AUTOCUBES       Edit data for autocubes. 
AUTOFRAMING     Edit data for framing lines.
CURVDATA        Edit data for curves.
TRANSFORM       Edit singles, resize, rotate, translate, wrap.


---------------------------
Lightest side, darkest side

LIGHTDARK:
6,2
---------------------------

------------------------------------------------------------------
Wireframe line colors:
                                          cubics   cubics   curves
background  LG1   LG2   LG3   LG4   LG5   20-39    40-59    
WIRECOLORS:
8            3     3     3     3     3      3        3        3
------------------------------------------------------------------

----------------------------------
x rotate     y rotate     z rotate
BEGIN-END:
1   72      1   72        1  800
----------------------------------


------------------------------
Standard points 1 - 200
Use line labels starting at 1.


STANDARD:
1  0     63.2    0
2  24    63.2    0
3  24    41.2    0
4  0     45.2    8
5  24    0       6
6  0     0       6
7  0     41.2    6
8  24    41.2    8
9  24    0       8
10  0    0       8
11  0    41.2    8
12  0    63.2    8
13  24   63.2    8
14  0    0       0
15  0    0       0
16  0    0       0
17  0    0       0
18  24   28      6
19  0    0       0
20  0    0       0
21  0    0       0
22  0    0       0
23  24   41.2    16
24  24   0       16
25  0    0       16
26  0    41.2    16
27  12   41.2    20.85
28  12   0       20.85
29  0    0       0
30  0    0       0
31  0    45.2    6
32  0    0       0
33  24   41.7    0
34  24   41.7    6.5
35  24   50.7    6.5
36  24   50.7    0
37  23   41.7    0
38  23   41.7    6.5
39  23   50.7    6.5
40  23   50.7    0
41  24   52.7    0
42  24   52.7    6.5
43  24   61.7    6.5
44  24   61.7    0
45  23   52.7    0
46  23   52.7    6.5
47  23   61.7    6.5
48  23   61.7    0
49  26   -1      15
50  26   42.2    15
51  26   -1      15.5
52  26   42.2    15.5
53  -2   -1      15
54  -2   42.2    15
55  -2   -1      15.5
56  -2   42.2    15.5
57  12   -1      20.85
58  12   42.2    20.85
59  12   -1      21.35
60  12   42.2    21.35
61  24   41.2    15
62  0    42.2    16
63  0    41.2    15
64  24   42.2    16
65  24   0       15
66  24   42.2    15
67  0    0       15
68  0    -1      16
69  24   -1      15
70  24   -1      16
71  0    -1      15
72  0    42.2    15
999  999,999,999
------------------------------


------------------------------
Lines
(point-pairs)

LINEG1:
8,23
1,12
12,13
2,13
1,31
8,13
1,2
2,3
3,18
3,8
5,18
5,6
9,10
24,28
23,27
26,27
25,28
9,24
5,9
8,9
6,7
10,11
11,26
7,11
8,11
4,12
4,11
6,10
10,25
4,31
53,55 55,59 59,51 51,49 49,69
69,70 70,57 57,68 68,71 71,53
71,67 68,25 57,28 70,24 69,65
67,25 65,24
50,52 52,60 60,56,56,54 54,72
72,62 62,58 58,64 64,66 66,50
66,61 64,23 58,27 62,26 72,63
61,23 63,26
59,60 49,50 51,52 53,54 55,56
23,24 25,26
999,999

LINEG2:
33,34 34,35 35,36 37,38 38,39 39,40
41,42 42,43 43,44 45,46 46,47 47,48
999,999

LINEG3:
999,999

LINEG4:
999,999

LINEG5:
999,999
------------------------------


---------------------------------------------------------------
Autocubes

--start notes--


--end notes--



Rotation for light source:   0 = 0    1 = 90    2 = 180    3 = 270


      x1,y1,z1          x6,y6,z6          spacing      endcube    rot,col
      --------          --------          -------      -------    -------
                                                       (21-39)   
AUTOCUBE20:
       0 0 0          0     0     0          2            21        0,0
 


Points 401 - 598
Use line labels 401, 411, 421 .... 591

AUTOCUBE40:
401  0,0,0                21.85   .125  .458     0,2
411  0,0,0                21.85   .125  .458     0,2
421  0,0,0                23.875  .125  .458     0,3
431  0,0,0                23.875  .125  .458     0,3
441  0,0,0                17.675  .125  .458     0,2
451  0,0,0                17.675  .125  .458     0,2
461  0       0     0      .292    .292   2.67    0,2
471  7.19    0     0      7.482   .292   2.67    0,2
481  14.38   0     0      14.672  .292   2.67    0,2
491  21.57   0     0      21.862  .292   2.67    0,2
501  0       0     0      .292    .292   2.67    0,2
511  7.82    0     0      8.112   .292   2.67    0,2
521  15.64   0     0      15.932  .292   2.67    0,2
531  0       0     0      .292    .292   2.67    0,2
541  5.86    0     0      6.152   .292   2.67    0,2
551  11.72   0     0      12.012  .292   2.67    0,2
999  999,999,999       999,999,999         0,0
---------------------------------------------------------------


--------------------------------------------
Autoplanes

Enter points for planes consistent
with cross-hatch and framing lines.

Use line labels starting at 1.
Maximum of 2000 plane entries, since
autocube planes begin at 2001.

Plane   t1,b1,t2,b2          direction,color

--------------------------------------------
AUTOPLANE:
1   3,8,3,18      3,5
2   18,5,8,9      3,5
3   44,43,2,13    3,5
4   1,2,12,13     2,5
5   51,52,59,60   2,4
6   49,50,51,52   3,2
7   12,13,11,8    6,10
8   11,8,26,23    2,13
9   26,23,27,27   2,13
10  8,9,23,24     3,13
11  50,66,52,64   2,2
12  52,60,64,58   2,2
13  58,62,60,56   2,2
14  72,54,62,56   2,2
15  27,26,58,62   5,5
16  63,72,26,62   3,3
17  33,34,37,38   2,5
18  36,35,40,39   4,5
19  41,42,45,46   2,5
20  44,43,48,47   4,5
21  33,36,37,40   6,6
22  34,35,38,39   5,5
23  41,44,45,48   6,6
24  42,43,46,47   5,5
25  37,40,38,39   3,4
26  45,48,46,47   3,4
27  3,8,33,34     3,5
28  36,35,41,42   3,5
29  44,43,2,13    3,5
30  34,43,8,13    3,5
31  49,50,69,66   5,4
32  53,54,71,72   5,4
33  1,12,31,4     1,5
34  7,6,11,10     1,5
35  6,5,10,9      4,5
36  11,10,26,25   1,13
37  10,9,25,24    4,13
38  25,24,28,28   4,13
39  71,67,68,25   3,2
40  65,69,24,70   1,2
41  25,28,68,57   5,2
42  28,24,57,70   5,2
43  53,71,55,68   4,2
44  69,49,70,51   4,2
45  68,57,55,59   4,2
46  57,70,59,51   4,2
47  53,54,55,56   1,2
48  59,60,55,56   5,6
999  999,999,999,999   0,0
--------------------------


---------------------------------------
Autoframing lines

Plane, number of framing lines
-------------
AUTOFRAMING1:
4   10
10  8
8   8
9   6
5   12
25  4
26  4
37  8
38  6
48  12
36  8
999,999
-------------
-------------
AUTOFRAMING2:
4   15
999,999
-------------
---------------------------------------


--------------------------------------------------------------
curves

example for points = 20 per section:
                                     
    Point numbers    Plane numbers
    -------------    -------------   <-- (num of points/2) - 1
     1 -  20          1 -   9      
    21 -  40         21 -  29      
    41 -  60         41 -  49       

    For mx,my,mz (this data file), add 600 to point
    and plane numbers.  

    Points: 601 - 800

==============================================================
data entry:

-------------
DARKESTCOLOR:
15
-------------

                      radius            offset           weight
     start, arc      Z      Y        X    Y     Z     left  inc    stretch

CURVDATA:
20
      88.78  -1.22  1041.2  1041.2   24  -1000  0       0    0       0
      88.78  -1.22  1041.2  1041.2   24  -1000  2.83    0    0       0
20
      88.78  -1.22  1041.2  1041.2   24  -1000  2.83    0    0       0
      20  -70        19.2  6         24   30    2.83    0    0       0
20
      20  -70        19.2  6         24   30    2.83    0    0       0
      20  -70        19.2  6         24   30    4.83    0    0       0
20
      20  -70        19.2  6         24   30    4.83    0    0       0
      3   -87        10    6.9       24  27.6   4.83    0    0       0
20
      3   -87        10    6.9       24  27.6   4.83    0    0       0
      3   -87        10    6.9       24  27.6   6.17    0    0       0
999
      0    90        10     10       0     0      0     0    0       0
      0    90        10     10       0     0      0     0    0       0
Leave the two rows under the 999 in place.  Data reader needs dummy values.



---------------------------------------
Transformations

Paste sections in any order from
the area below the STOP marker.
Okay to repeat sections.

Start your pasting here:
------------------------


-----------------------------------------
 first, last, zangle, tranx, trany, tranz

TRAN
ZROTATETRANSLATE:
401  408      90      24     41.39     8.75
411  418      90      24     41.39     9.916
421  428      0       .125   63.02     8.75
431  438      0       .125   63.02     9.916
441  448      90      .125   45.47     8.75
451  458      90      .125   45.47     9.916
999,999   999,999,999,999
-----------------------------------------

-----------------------------------------
first, last, zangle, tranx, trany, tranz

TRAN
ZROTATETRANSLATE:
461    498    90     23.89   41.2    8
501    528    0     .125     62.72   8
531    558    90    .417     45.49   8
999,999   999,999,999,999
-----------------------------------------


---------------- End pasting here.
TRAN
STOP



***********************************
End of data read.  Paste sections
from below.  You can include dashed 
lines for ease of readability.
***********************************



--------------------------------
first, last, tranx, trany, tranz

TRAN
TRANSLATE:
999,999              999,999,999
--------------------------------

--------------------------------
first, last, tranx, trany, tranz

TRAN
STEP10TRANSLATE:
999,999              999,999,999
--------------------------------


----------------------------------------
first, last, xangle, tranx, trany, tranz

TRAN
XROTATETRANSLATE:
999,999      999             999,999,999
----------------------------------------

----------------------------------------
first, last, yangle, tranx, trany, tranz

TRAN
YROTATETRANSLATE:
999,999      999             999,999,999
----------------------------------------

----------------------------------------
first, last, zangle, tranx, trany, tranz

TRAN
ZROTATETRANSLATE:
999,999      999             999,999,999
----------------------------------------



--------------------------------
first, last, multX, multY, multZ

TRAN
RESIZE:
999,999              999,999,999
--------------------------------



--------------------------------------
start    start             how
first    last     angle    many   lift
-----    -----    -----    ----   ----
TRAN
YWRAP:
999,999                    999,999,999
--------------------------------------

--------------------------------------
start    start             how
first    last     angle    many   lift
-----    -----    -----    ----   ----
TRAN
YWRAP:
999,999                    999,999,999
--------------------------------------

--------------------------------------
start    start             how
first    last     angle    many   lift
-----    -----    -----    ----   ----
TRAN
ZWRAP:
999,999                    999,999,999
--------------------------------------



----------------------------
SINGLE POINT TRANSFORMATIONS

----------------------------
Point number, New value
TRAN
XTRANSFORMATIONS:
999,999
----------------------------

----------------------------
Point number, New value
TRAN
YTRANSFORMATIONS:
999,999
----------------------------

----------------------------
Point number, New value
TRAN
ZTRANSFORMATIONS:
999,999
----------------------------


To: RogCAD home


Two images:


The data file above generates:



With additional data files and auto-surfacing:



To: RogCAD home