⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxfortran_example.f90

📁 DXF producer by Fortran
💻 F90
字号:
!  
!  
!  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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -