dxfortran_example.f90

来自「DXF producer by Fortran」· F90 代码 · 共 174 行

F90
174
字号
!  
!  
!  by:csilva@ualg.pt 
!  
!  
PROGRAM DXFortran_example

USE DXFortranSTD

IMPLICIT NONE

CHARACTER(len=15), DIMENSION(:,:), ALLOCATABLE  :: layer_def    ! Layers def 
CHARACTER  (len=8 )                             :: Layer ,Color ! Other vars 

INTEGER                                         :: FileID

REAL                                            :: x, y, z, Height, Factor, Angle, Radius
INTEGER                                         :: Alignh, Alignv, i
CHARACTER  (len=8 )                             :: Style
CHARACTER  (len=50)                             :: text


x       =  50.0
y       = 100.0
z       =   0.0
text    = "DXFortran"
Factor  = 1.0
Angle   = 0.0
! - Align left   : <Alignh> = 0         - Align none   : <Alignv> = 0
! - Align center : <Alignh> = 1         - Align bottom : <Alignv> = 1
! - Align right  : <Alignh> = 2         - Align middle : <Alignv> = 2
!                                       - Align top    : <Alignv> = 3
Alignh  = 1
Alignv  = 2
! Text Styles: STANDARD, ROMANS, ROMAND, ROMANT.
Style   = "ROMANT"

!-----------------------------------+
! Layer defenition
!-----------------------------------+
ALLOCATE(layer_def(4,3))

layer_def(1,1)= "0"              !+ Layer name (0 default layer)
layer_def(1,2)= "continuous"     !+ Linetype
layer_def(1,3)= "7"              !+ Color
layer_def(2,1)= "layer1"
layer_def(2,2)= "continuous" 
layer_def(2,3)= "1"
layer_def(3,1)= "layer2"
layer_def(3,2)= "continuous" 
layer_def(3,3)= "2"
layer_def(4,1)= "layer3"
layer_def(4,2)= "continuous" 
layer_def(4,3)= "3"

Layer   = "layer1"
Color   = "bylayer"
FileID  = 10


OPEN (FileID  , FILE = "DXFortran_example.dxf") 

!
!+ Begin DXF Example file
!
CALL dfBegin(FileID,layer_Def)
    !
    !+++ Polyline example
    !
Layer   = "0"
CALL dfBeginPline (FileID, Layer, Color)
CALL dfPlVertex   (FileID, Layer, Color,   0.0,   0.0, Z)
CALL dfPlVertex   (FileID, Layer, Color, 100.0,   0.0, Z)
CALL dfPlVertex   (FileID, Layer, Color, 100.0, 100.0, Z)
CALL dfPlVertex   (FileID, Layer, Color,   0.0, 100.0, Z)
CALL dfPlVertex   (FileID, Layer, Color,   0.0,   0.0, Z)
CALL dfEndPline   (FileID, Layer, Color)
    !
    !+++ Text Example
    !
Color   ="5"
x       =  50.0
y       =  95.0
z       =   0.0
text    = "DXFortran"
Height  = 6.0
Factor  = 1
Angle   = 0.0
Alignh  = 1             ! Align center
Alignv  = 2             ! Align middle 
Style   = "ROMAND"      ! Text Styles: STANDARD, ROMANS, ROMAND, ROMANT.
CALL dfText (FileID, Layer, Color, X, Y, Z, Text, Height, &
                  Factor, Angle, Alignh, Alignv, Style)
y       =  89.0
text    = "UNIVERSIDADE DO ALGARVE "
Height  = 3.0
Factor  = 1
Angle   = 0.0
Style   = "ROMANT"      ! Text Styles: STANDARD, ROMANS, ROMAND, ROMANT.
CALL dfText (FileID, Layer, Color, X, Y, Z, Text, Height, &
                  Factor, Angle, Alignh, Alignv, Style)
y       =  84.0
text    = "Escola Superior de Tecnologia"
Height  = 2.5
Factor  = 1
Angle   = 0.0
Style   = "ROMAND"      ! Text Styles: STANDARD, ROMANS, ROMAND, ROMANT.
CALL dfText (FileID, Layer, Color, X, Y, Z, Text, Height, &
                  Factor, Angle, Alignh, Alignv, Style)
y       =  80.0
text    = "Area Departamental de Engenharia Civil"
Height  = 2.0
Factor  = 1
Angle   = 0.0
Style   = "ROMANS"      ! Text Styles: STANDARD, ROMANS, ROMAND, ROMANT.
CALL dfText (FileID, Layer, Color, X, Y, Z, Text, Height, &
                  Factor, Angle, Alignh, Alignv, Style)
    !
    !+ Circle example
    !
Color = "bylayer"
Layer   = "layer1"
Radius  = 5.5
DO i=1,5
    CALL dfCircle (FileID, Layer, Color, 10.0 + Radius*i, 15.0, Z, Radius-i) 
END DO
    !
    !+ Donut example
    !
Layer   = "layer2"
Radius  = 5.5
DO i=1,5
    CALL dfDonut(FileID, Layer, Color,0.0, (Radius-i)*2.0, 10.0 + Radius*i, 30.0)
END DO
    !
    !+ 3D Face example
    !
Layer   = "layer3"
Do i=1,3
    CALL df3DFace (FileID, Layer, "bylayer", Color, &
               50.0+10.0*i, 20.0, 0.0,& 
               60.0+10.0*i, 20.0, 0.0,&
               60.0+10.0*i, 10.0, 0.0,&
               50.0+10.0*i, 10.0, 0.0)
END DO
    !
    !+ Point example
    !
Color = "4"
DO i=-50, 50
    CALL dfpoint (FileID, Layer, Color, REAL(i)+50.0, REAL(i)**2./100.0+40.0, 0.0)
END DO
    !
    !+ Solid example
    !
DO i=1,4
    CALL dfSolid(FileID,Layer,"bylayer","bylayer", &
                 20.0+10.0*i,60.0,&
                 30.0+10.0*i,60.0,&
                 30.0+10.0*i,50.0,&
                 20.0+10.0*i,50.0,&
                 0.0,0.0)
END DO
!
!+ End DXF Example file
!
CALL dfEnd(FileID)

CLOSE(FileID)
DEALLOCATE(layer_def)

STOP
END PROGRAM DXFortran_example

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?