home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / PASCAL / DXFPAS.ZIP / EXAMPLE1.PAS < prev    next >
Pascal/Delphi Source File  |  1992-06-29  |  4KB  |  185 lines

  1. PROGRAM EXAMPLE1;
  2.  
  3. {This program serves as an example of how to write a Turbo Pascal program that
  4.  utilizes DXFWRITE.TPU}
  5.  
  6. USES TPCRT,DXFWRITE;   {Allows program to use DXFWRITE} 
  7.  
  8. PROCEDURE DRAW_POINT;
  9.  
  10. VAR
  11.   X,Y:REAL;
  12.   LAYER:STRING;
  13.  
  14. BEGIN
  15.   CLRSCR;
  16.   WRITELN('Enter X coordinate');
  17.   READLN(X);
  18.   WRITELN('Enter Y coordinate');
  19.   READLN(Y);
  20.   WRITELN('Enter Layer name');
  21.   READLN(LAYER);
  22.   DXF2D_POINT(X,Y,LAYER);
  23. END;
  24.  
  25.  
  26. PROCEDURE DRAW_LINE;
  27.  
  28. VAR
  29.   X1,Y1,X2,Y2:REAL;
  30.   LAYER:STRING;
  31.  
  32. BEGIN
  33.   CLRSCR;
  34.   WRITELN('Enter beginning X coordinate');
  35.   READLN(X1);
  36.   WRITELN('Enter beginning Y coordinate');
  37.   READLN(Y1);
  38.   WRITELN('Enter ending X coordinate');
  39.   READLN(X2);
  40.   WRITELN('Enter ending Y coordinate');
  41.   READLN(Y2);
  42.   WRITELN('Enter Layer name');
  43.   READLN(LAYER);
  44.   DXF2D_LINE(X1,Y1,X2,Y2,LAYER);
  45. END;
  46.  
  47. PROCEDURE DRAW_ARC;
  48.  
  49. VAR
  50.   X,Y,RAD,START_ANG,END_ANG:REAL;
  51.   LAYER:STRING;
  52.  
  53. BEGIN
  54.   CLRSCR;
  55.   WRITELN('Enter X coordinate');
  56.   READLN(X);
  57.   WRITELN('Enter Y coordinate');
  58.   READLN(Y);
  59.   WRITELN('Enter length of radius');
  60.   READLN(RAD);
  61.   WRITELN('Enter starting angle');
  62.   READLN(START_ANG);
  63.   WRITELN('Enter ending angle');
  64.   READLN(END_ANG);
  65.   WRITELN('Enter Layer name');
  66.   READLN(LAYER);
  67.   DXF2D_ARC(X,Y,RAD,START_ANG,END_ANG,LAYER);
  68. END;
  69.  
  70. PROCEDURE DRAW_CIRCLE;
  71.  
  72. VAR
  73.   X,Y,RAD:REAL;
  74.   LAYER:STRING;
  75.  
  76. BEGIN
  77.   CLRSCR;
  78.   WRITELN('Enter X coordinate');
  79.   READLN(X);
  80.   WRITELN('Enter Y coordinate');
  81.   READLN(Y);
  82.   WRITELN('Enter length of radius');
  83.   READLN(RAD);
  84.   WRITELN('Enter Layer name');
  85.   READLN(LAYER);
  86.   DXF2D_CIRCLE(X,Y,RAD,LAYER);
  87. END;
  88.  
  89. PROCEDURE DRAW_PLINE;
  90.  
  91. VAR
  92.   X,Y,BEGIN_WIDTH,END_WIDTH:REAL;
  93.   LAYER:STRING;
  94.   I,COUNT:INTEGER;
  95.   CHOICE:CHAR;
  96.   CLOSED:BOOLEAN;
  97.  
  98. BEGIN
  99.   CLRSCR;
  100.   {Widths of polylines set to 0, could be entered with ponts.}
  101.   BEGIN_WIDTH:=0.0; 
  102.   END_WIDTH:=0.0;   
  103.   WRITELN('Enter Layer name');
  104.   READLN(LAYER);
  105.   WRITELN('Is the polyline Open or Closed? Enter O or C.');
  106.   REPEAT;
  107.     READLN(CHOICE);
  108.     CHOICE:=UPCASE(CHOICE);
  109.   UNTIL (CHOICE='O') OR (CHOICE='C');
  110.   IF CHOICE='C' THEN CLOSED:=TRUE ELSE CLOSED:=FALSE;
  111.   BEGIN2D_PLINE(LAYER,CLOSED);
  112.   WRITELN('How many points do you want to enter?');
  113.   READLN(COUNT);
  114.   FOR I:=1 TO COUNT DO BEGIN
  115.                          WRITELN('Enter X coordinate');
  116.                          READLN(X);
  117.                          WRITELN('Enter Y coordinate');
  118.                          READLN(Y);
  119.                          DXF2D_PLINE(X,Y,BEGIN_WIDTH,END_WIDTH);
  120.                        END;
  121.   END_PLINE;
  122. END;
  123.  
  124. PROCEDURE SET_ELEV;
  125.  
  126. BEGIN
  127.   CLRSCR;
  128.   WRITELN('Enter new default elevation');
  129.   READLN(DXFELEV);
  130. END;
  131.  
  132.  
  133. PROCEDURE SET_THICK;
  134.  
  135. BEGIN
  136.   CLRSCR;
  137.   WRITELN('Enter new default thickness');
  138.   READLN(DXFTHICK);
  139. END;
  140.  
  141.  
  142. PROCEDURE MAIN;
  143.  
  144. VAR
  145.   FILENAME:STRING;
  146.   DONE:BOOLEAN;
  147.   CHOICE:BYTE;
  148.  
  149. BEGIN
  150.   CLRSCR;
  151.   WRITELN('Enter .DXF filename to use as output file.  Must have .DXF suffix');
  152.   READLN(FILENAME);
  153.   INIT_DXFFILE(FILENAME);
  154.   DONE:=FALSE;
  155.   REPEAT;
  156.     CLRSCR;   
  157.     WRITELN('Which do you want to do?');
  158.     WRITELN('1 => Draw Point');
  159.     WRITELN('2 => Draw Line');
  160.     WRITELN('3 => Draw Arc');
  161.     WRITELN('4 => Draw Circle');
  162.     WRITELN('5 => Draw Pline');
  163.     WRITELN('6 => Change Default Elevation');
  164.     WRITELN('7 => Change Default Thickness');
  165.     WRITELN('8 => Quit');
  166.     REPEAT;
  167.       READLN(CHOICE);
  168.     UNTIL (CHOICE>=1) AND (CHOICE <=8);
  169.     CASE CHOICE OF
  170.       1 : DRAW_POINT;
  171.       2 : DRAW_LINE;
  172.       3 : DRAW_ARC;
  173.       4 : DRAW_CIRCLE;
  174.       5 : DRAW_PLINE;
  175.       6 : SET_ELEV;
  176.       7 : SET_THICK;
  177.       8 : DONE:=TRUE;
  178.     END; {Case}
  179.   UNTIL DONE;
  180.   CLOSE_DXFFILE;
  181. END;
  182.  
  183. BEGIN
  184.   MAIN;
  185. END.