Formato DXF: Guía Técnica Completa
DXF (Drawing Interchange Format, también Drawing Exchange Format) es un formato de archivo de datos CAD desarrollado por Autodesk en 1982 para AutoCAD. Fue creado para permitir la interoperabilidad de datos entre AutoCAD y otros programas CAD. DXF es un formato basado en texto (ASCII) o binario que almacena dibujos técnicos 2D y 3D con datos geométricos precisos, dimensiones, capas, texto y atributos.
Estructura del Archivo DXF
Un archivo DXF ASCII está organizado en secciones, cada una comenzando con el código de grupo 0 y el nombre de sección "SECTION", terminando con "ENDSEC":
Sección HEADER
Contiene variables del sistema AutoCAD que afectan a la interpretación del dibujo:
$ACADVER: Cadena de versión DXF (ej. "AC1015" = R2000)$INSUNITS: Unidades del dibujo (1=pulgadas, 4=mm, 6=metros, 14=centímetros)$EXTMIN/$EXTMAX: Extensiones del dibujo (caja delimitadora)
Sección TABLES
Define objetos con nombre usados en todo el dibujo:
- Tabla LTYPE: Definiciones de tipos de línea
- Tabla LAYER: Definiciones de capas — nombre, número de color (colores ACI 1–255), tipo de línea, estado encendido/apagado/congelado
- Tabla STYLE: Definiciones de estilo de texto — archivo de fuente, altura, ángulo oblicuo
- Tabla DIMSTYLE: Parámetros de estilo de dimensión
Sección ENTITIES
El contenido principal del dibujo — todos los objetos geométricos:
LINE: PUNTO_INICIO (10,20), PUNTO_FINAL (10,30), CAPA, TIPO_LÍNEA, COLOR
CIRCLE: CENTRO (10,20), RADIO 5.0, atributos de capa
LWPOLYLINE (Polilínea Ligera): Una entidad única que representa una secuencia conectada de segmentos de línea y arco.
SPLINE: Curva spline NURBS. Grado, vector de nudos, puntos de control.
TEXT: PUNTO_INSERCIÓN, ALTO, CADENA_TEXTO, ángulo de rotación, estilo, indicadores de justificación.
HATCH: Patrón de relleno dentro de un límite cerrado. Nombre del patrón, escala, rotación.
INSERT: Referencia a una definición de bloque. Punto de inserción, escala, rotación.
Lectura y Escritura de DXF
# Python: leer DXF con la biblioteca ezdxf
import ezdxf
doc = ezdxf.readfile("dibujo.dxf")
msp = doc.modelspace()
# Iterar todas las líneas
for entidad in msp.query("LINE"):
inicio = entidad.dxf.start # Objeto Vec3
fin = entidad.dxf.end
print(f"Línea: {inicio} -> {fin}")
# Iterar todas las capas
for capa in doc.layers:
print(f"Capa: {capa.dxf.name}, Color: {capa.dxf.color}")
# Crear un nuevo archivo DXF
doc = ezdxf.new("R2010")
msp = doc.modelspace()
msp.add_line((0, 0), (100, 100), dxfattribs={"layer": "MUROS"})
msp.add_circle((50, 50), radius=25, dxfattribs={"color": 1})
doc.layers.add("MUROS", color=7)
doc.saveas("salida.dxf")
# Convertir DXF a SVG con Inkscape
inkscape entrada.dxf --export-filename=salida.svg
# Convertir DXF a PDF
inkscape entrada.dxf --export-filename=salida.pdf
DXF vs DWG
| Característica | DXF | DWG |
|---|---|---|
| Formato | Texto ASCII (o binario) | Binario propietario |
| Legibilidad | Legible por humanos (ASCII) | No legible sin herramientas |
| Compatibilidad | Universal (todas las aplicaciones CAD) | Nativo AutoCAD; otros vía ODA |
| Tamaño de archivo | ~3–5× mayor que DWG | Binario compacto |
| Soporte completo de características de AutoCAD | ~95% | 100% |
Cuándo usar DXF: Para intercambiar dibujos con software no Autodesk, máquinas CNC, cortadoras láser, cortadoras de vinilo, impresoras 3D. Cuándo usar DWG: Para intercambio AutoCAD-a-AutoCAD, preservando todas las características propietarias.
Versiones de DXF y Compatibilidad
Para máxima compatibilidad con software más antiguo y de terceros (controladores CNC, aplicaciones GIS, programas CAD más antiguos), exporta como DXF R12 (1992) o DXF R14/2000. Si necesitas preservar características modernas como curvas verdaderas (splines, elipses) o bloques con atributos, usa DXF 2000 o 2004.
Conversiones relacionadas
Conversiones frecuentes del catálogo: