home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pascal / dxfpas.zip / EXAMPLE2.PAS < prev    next >
Pascal/Delphi Source File  |  1992-06-29  |  3KB  |  121 lines

  1. PROGRAM EXAMPLE2;
  2.  
  3. {This program serves as an example of how to write a Turbo Pascal program that
  4.  utilizes DXFREAD.TPU}
  5.  
  6. USES DXFREAD;   {Allows program to use DXFREAD}
  7.  
  8. PROCEDURE DO_POINT(LAYER:STRING);
  9.  
  10. VAR
  11.   X,Y,Z,ELEV,THICK:REAL;
  12.  
  13. BEGIN
  14.   GET_POINT(X,Y,Z,ELEV,THICK);
  15.   WRITELN;
  16.   WRITELN('POINT IN LAYER ',LAYER);
  17.   WRITELN('DRAWN AT ',X,',',Y,',',Z);
  18.   WRITELN('THE ELEVATION IS ',ELEV,' AND THE THICKNESS IS',THICK);
  19. END;
  20.  
  21.  
  22. PROCEDURE DO_LINE(LAYER:STRING);
  23.  
  24. VAR
  25.   X1,Y1,Z1,X2,Y2,Z2,ELEV,THICK:REAL;
  26.  
  27. BEGIN
  28.   GET_LINE(X1,Y1,Z1,X2,Y2,Z2,ELEV,THICK);
  29.   WRITELN;
  30.   WRITELN('LINE IN LAYER ',LAYER);
  31.   WRITELN('DRAWN FROM ',X1,',',Y1,',',Z1);
  32.   WRITELN('DRAWN TO ',X2,',',Y2,',',Z2);
  33.   WRITELN('THE ELEVATION IS ',ELEV,' AND THE THICKNESS IS ',THICK);
  34. END;
  35.  
  36.  
  37.  
  38. PROCEDURE DO_ARC(LAYER:STRING);
  39.  
  40. VAR
  41.   X,Y,Z,RAD,ANG1,ANG2,ELEV,THICK:REAL;
  42.  
  43. BEGIN
  44.   GET_ARC(X,Y,Z,RAD,ANG1,ANG2,ELEV,THICK);
  45.   WRITELN;
  46.   WRITELN('ARC IN LAYER ',LAYER);
  47.   WRITELN('CENTER POINT AT',X,',',Y,',',Z, 'WITH A RADIUS OF ',RAD);
  48.   WRITELN('FROM ',ANG1,' DEGREES TO ',ANG2,' DEGREES');
  49.   WRITELN('THE ELEVATION IS ',ELEV,' AND THE THICKNESS IS ',THICK);
  50. END;
  51.  
  52.  
  53. PROCEDURE DO_CIRCLE(LAYER:STRING);
  54.  
  55. VAR
  56.   X,Y,Z,RAD,ELEV,THICK:REAL;
  57.  
  58. BEGIN
  59.   GET_CIRCLE(X,Y,Z,RAD,ELEV,THICK);
  60.   WRITELN;
  61.   WRITELN('ARC IN LAYER ',LAYER);
  62.   WRITELN('CENTER POINT AT',X,',',Y,',',Z, 'WITH A RADIUS OF ',RAD);
  63.   WRITELN('THE ELEVATION IS ',ELEV,' AND THE THICKNESS IS ',THICK);
  64. END;
  65.  
  66.  
  67. PROCEDURE DO_PLINE(LAYER:STRING);
  68.  
  69. VAR
  70.   X,Y,Z,BEGIN_WIDTH,END_WIDTH,ELEV,THICK : REAL;
  71.   MESH,MCLOSED,NCLOSED : BOOLEAN;
  72.   M,N:INTEGER;
  73.   ENTID:BYTE;
  74.   ENTNAME:STRING;
  75.  
  76. BEGIN
  77.   WRITELN('GET PLINE');
  78.   GET_PLINE(MESH,MCLOSED,NCLOSED,M,N,BEGIN_WIDTH,END_WIDTH,ELEV,THICK);
  79.   WRITELN;
  80.   IF NOT MESH THEN
  81.       BEGIN
  82.         REPEAT;
  83.           GET_ENT(ENTID,ENTNAME,LAYER);
  84.           IF (ENTID=10) THEN
  85.           BEGIN
  86.             GET_VERTEX(X,Y,Z,BEGIN_WIDTH,END_WIDTH,ELEV,THICK);
  87.             WRITELN('VERTEX POINT AT COORDINATE ',X,',',Y,',',Z);
  88.           END;
  89.         UNTIL ENTID=11;  {END OF POLYLINE}
  90.       END;
  91. END;
  92.  
  93.  
  94. PROCEDURE MAIN;
  95.  
  96. VAR
  97.   ENTID:BYTE;
  98.   ENTNAME,LAYER : STRING;
  99.   FILENAME : STRING;
  100.  
  101. BEGIN
  102.   WRITELN('ENTER NAME OF INPUT DXF FILE .');
  103.   READLN(FILENAME);
  104.   OPEN_DXF(FILENAME);
  105.   REPEAT;
  106.     GET_ENT(ENTID,ENTNAME,LAYER);
  107.     CASE ENTID OF
  108.       1 : DO_POINT(LAYER);
  109.       2 : DO_LINE(LAYER);
  110.       4 : DO_ARC(LAYER);
  111.       5 : DO_CIRCLE(LAYER);
  112.       9 : DO_PLINE(LAYER);
  113.     END; {CASE}
  114.   UNTIL ENTID=0;
  115.   CLOSE_DXF;
  116. END;
  117.  
  118. BEGIN
  119.   MAIN;
  120. END.
  121.