sábado, 17 de abril de 2010

Descripción técnica de un archivo DXF

El archivo DXF (siglas en ingles de Drawing Exchange Format) es uno de los archivos más comunes que el GIS usa, para el intercambio de dibujos entre herramientas (llámese programas) de georeferenciación espacial. Usualmente creado desde una plataforma CAD, el usuario puede crear topologías (puntos, líneas, polígonos, texto, etc.) para luego llevarlos a otra herramienta GIS para crearle una base de datos y añadir información temática de interés.



¿Qué programas se pueden crear, editar y visualizar un DXF?: Usualmente se crea mediante el AutoCAD y es guardado con la extensión NombredelArchivo.DXF y ahora también por la mayoría de los programas GIS (por no decir todos los programas) y el notepad.exe (se verá un listado con códigos propios del DXF).

¿Está vinculada a una base de datos?: el DXF no tiene una base de datos vinculada, es un archivo que solo contiene / muestra topologías (puntos, líneas, polígonos, texto, etc.).

Estructura de un archivo DXF: el DXF al abrirlo con un editor de texto (como el Notepad.exe) veremos una serie de códigos en su estructura, tales como:

Secciones:

HEADER.- que muestra información general del DXF.

CLASSES.-un listado de las clases existentes en el DXF como BLOCKS (bloques existentes en el dibujo), ENTITIES (puntos, líneas, polilíneas, textos, tolo lo que se pueda dibujar) y OBJECTS (nombre de capas, tipo de línea, texto y punto, tolo lo que no se pueda dibujar).

TABLES.- muestra la definición de las tablas en el DXF, de los cuales tenemos:

APPID: tabla con las identificaciones de la aplicación.

BLOCK_RECORD: tabla de los bloques en el DXF.

DIMSTYLE : tabla con los estilos de dimensionamiento.

LAYER: tabla con las capas.

LTYPE: tabla con los estilos de línea.

STYLE : tabla con los estilos de texto.

UCS : tabla con los sistemas de coordenadas propios del DXF.

VIEW: tabla de las vistas.

VPORT: tabla con las vistas en el layout (ventana grafica).

BLOCKS.- muestra los bloques en el DXF.

ENTITIES.- puntos, líneas, polilíneas, textos, tolo lo que se pueda dibujar.

OBJECTS.- nombre de capas, tipo de línea, texto y punto, tolo lo que no se pueda dibujar.

De todos ellos, haremos mas hincapié a la sección ENTITIES, ya que ahí se encuentran los elementos que se pueden dibujar.

Creación de un DXF mediante el Notepad.exe: el DXF es un archivo de tipo secuencial por lo mismo que se puede ver su contenido con el Notepad.exe. Por ejemplo, si queremos ver esta línea:


con el notepad.exe, veremos (los corchetes no son propios del DXF y solo están puestos para detallar el contenido y la negrita es para resaltar algunos códigos que son fijos y que no se deben alterar):

0 [el 0 funciona como indicador del objeto que le sigue]

SECTION [inicio de la SECTION]

2 [identificador de sección que sigue]

ENTITIES [inicio de ENTITIES]

0 [el 0 funciona como indicador del objeto que le sigue]

LINE [inicio de la línea]

8 [identificador de la capa de la línea]

LINEA_01 [nombre de la capa asiganada a la línea]

62 [identificador del color de la línea]

30 [color de la línea]

6 [identificador del estilo de línea]

CONTINUOUS [tipo de línea]

10 [identificador de la coordenada inicial X]

0 [valor de la coordenada inicial X]

20 [identificador de la coordenada inicial Y]

25 [valor de la coordenada inicial Y]

30 [identificador de la coordenada inicial Z]

0 [valor de la coordenada inicial Z]

11 [identificador de la coordenada final X]

10 [valor de la coordenada final X]

21 [identificador de la coordenada final Y]

5 [valor de la coordenada final Y]

31 [identificador de la coordenada final Z]

0 [valor de la coordenada final Z]

0 [identificador de cierre de la sección ENTITIES]

ENDSEC [cierre de la sección ENTITIES]

0 [identificador de cierre del archivo]

EOF [cierre del archivo DXF]



Ahora modificando las cantidades de algunos, se puede agregar, eliminar características de esta línea.


Los códigos más principales para la construcción de entidades en un DXF son:


0: identificador de inicio de cualquier sección o entidad.

8: identificador de la capa de la entidad, la línea de texto que sigue debe ser el nombre de la capa de la entidad.

62: identificador del color de la entidad, la línea de texto que sigue debe ser un numero del color de la entidad.

6: identificador de tipo de una entidad Línea, entidad Polilinea y entidad Circulo, la línea de texto que sigue debe ser un nombre de tipo de entidad línea o entidad polilinea.

10, 20,30: identificador de coordenadas X, Y, Z respectivamente, la línea de texto que sigue debe ser un número con el valor de dichas coordenadas. Para el caso de la entidad Línea son usadas para las coordenadas de inicio, para las coordenadas finales usar 11, 21,31 (ya que la entidad Línea tiene 2 coordenadas que la definen)

40: tiene 2 funciones, para la entidad Círculo y Arco es el radio, y para la entidad Texto es la altura, la línea de texto que sigue debe ser o el valor del radio de la entidad Circulo o de una entidad Arco o bien el valor de la altura de una entidad Texto.

50: es el ángulo de rotación de la entidad Texto y el ángulo de inicio de la entidad Arco, la línea de texto que sigue debe ser un valor de ángulo de rotación de la entidad Texto o el ángulo de inicio de la entidad Arco.

51: es el ángulo final de la entidad Arco, la línea de texto que sigue debe ser un del ángulo final de la entidad Arco.

Para el caso de la entidad Polilinea, al tener muchos vértices, se usa la entidad VERTEX, indicando los vértices que la componen. Ejemplo:

8

POLILINEA_01

62

1

0

VERTEX

8

0

62

1

6

CONTINUOUS

10

10

20

10

30

0

0

VERTEX

Al finalizar la polilíneas, acabar con SEQEND, y dar inicio con la siguiente.


Por ejemplo, para hacer un circulo, escribimos en el Notepad.exe


0
SECTION
2
ENTITIES
0
CIRCLE
8
CIRCULO_01
62
43
6
CONTINUOUS
10
10
20
25
30
0
40
10
0
CIRCLE
8
CIRCULO_02
62
123
6
CONTINUOUS
10
20
20
25
30
0
40
5
0
ENDSEC
0
EOF


Y para un texto seria asi:

0
SECTION
2
ENTITIES
0
TEXT
8
TEXTO_01
62
29
10
20
20
20
30
0
40
1
1
MI_DXF
50
15
7
STANDARD
0
TEXT
8
TEXTO_01
62
89
10
30
20
40
30
0
40
2
1
RECURSOS_WEB_GIS
50
0
7
STANDARD
0
ENDSEC
0
EOF

Esperando que sea de su provecho, si tuvieran alguna consulta o comentario, lo pueden hacer al correo recursos.web.gis@gmail.com ó a ingeografos@hotmail.com. Gracias y saludos.

ª