home *** CD-ROM | disk | FTP | other *** search
-
-
- _______________
-
- { These procedures generate AUTOCAD readable files in .DXF -format
-
- init (filename) opens the file and outputs the first introductory
- remarks to it. The filename should have the extension .DXF.
-
- movea(x,y) moves the pen to a position x,y without drawing
-
- drawa(x,y) draws a line from the current position to x,y
-
- finit closes the file
-
- }
-
- type dxaugrafiletype=string[20];
-
- var xmomaugraf,ymomaugraf:real;
- dxaugrafile:text;
-
- procedure init(filename:dxaugrafiletype);
- {open the file for output }
-
- begin
- assign(dxaugrafile,filename);
- rewrite(dxaugrafile);
- xmomaugraf:=0.;
- ymomaugraf:=0.;
- writeln(dxaugrafile,'0');
- writeln(dxaugrafile,'SECTION');
- writeln(dxaugrafile,'2');
- writeln(dxaugrafile,'ENTITIES');
- end;
-
- procedure finit;
- {close the file}
- begin
- writeln(dxaugrafile,'0');
- writeln(dxaugrafile,'ENDSEC');
- writeln(dxaugrafile,'0');
- writeln(dxaugrafile,'EOF');
- close(dxaugrafile);
- end;
-
- procedure movea(x,y:real);
- { moves the current pointer to a new position }
- begin
- xmomaugraf:=x;
- ymomaugraf:=y;
- end;
-
- procedure drawa(x,y:real);
- { Draws a line from the current position to x,y }
- begin
- writeln(dxaugrafile,'0');
- writeln(dxaugrafile,'LINE');
- writeln(dxaugrafile,' 8');
- writeln(dxaugrafile,'0');
- writeln(dxaugrafile,' 10');
- writeln(dxaugrafile,xmomaugraf:8:6);
- writeln(dxaugrafile,' 20');
- writeln(dxaugrafile,ymomaugraf:8:6);
- writeln(dxaugrafile,' 11');
- writeln(dxaugrafile,x:8:6);
- writeln(dxaugrafile,' 21');
- writeln(dxaugrafile,y:8:6);
- xmomaugraf:=x;
- ymomaugraf:=y;
- end;
-
- _____________________________
-
- C
- C These subroutines produce output to a file that can be read by
- C the AUTOCAD package as .DXF files with the command DXFIN.
- C
- C CALL INIT(filename,ichannel) opens the file on channel
- C ICHANNEL and outputs the first introductory lines
- C to it. Filename should have the extension '.DXF'.
- C
- C CALL MOVEA(X,Y) moves the pen to a position X,Y without
- C drawing
- C
- C CALL DRAWA(X,Y) draws a line from the last current position
- C to X,Y
- C
- C CALL FINIT closes the file
- C
- C
- SUBROUTINE INIT(FILNAM,ICHAN)
- C
- C *** Program was written for Fortran 77 - modify the following
- C line for FIV.
- CHARACTER*20 FILNAM
- COMMON /AUTOGR/ICHAN1,XMOM,YMOM
- C
- C OPENING THE FILE FOR DXF
- OPEN(ICHAN,FILE=FILNAM,STATUS='UNKNOWN' )
- ICHAN1=ICHAN
- XMOM=0
- YMOM=0
- C
- WRITE(ICHAN,1000)
- 1000 FORMAT('0',/'SECTION'/,'2',/'ENTITIES')
- RETURN
- END
-
-
- SUBROUTINE FINIT
- COMMON /AUTOGR/ICHAN1,XMOM,YMOM
- WRITE(ICHAN1,1000)
- 1000 FORMAT('0'/ 'ENDSEC' /'0'/'EOF'/)
- CLOSE(ICHAN1)
- RETURN
- END
-
- SUBROUTINE MOVEA(X,Y)
- C
- C MOVES THE CURRENT POINTER TO A NEW POSITION
- COMMON /AUTOGR/ICHAN1,XMOM,YMOM
- XMOM=X
- YMOM=Y
- RETURN
- END
-
- SUBROUTINE DRAWA(X,Y)
- C
- C DRAWS A LINE FROM THE CURRENT POSITION TO X,Y
- COMMON /AUTOGR/ICHAN1,XMOM,YMOM
- WRITE(ICHAN1,1000) XMOM,YMOM,X,Y
- 1000 FORMAT('0' / 'LINE' /' 8'/ '0' / ' 10' /F15.7 /' 20' /
- % F15.7/ ' 11'/ F15.7 / ' 21' / F15.7)
- XMOM=X
- YMOM=Y
- RETURN
- END
-