¿Qué son DXF y DWG?
DWG (Drawing, Dibujo) es el formato binario nativo de AutoCAD, el software CAD (Diseño Asistido por Computadora) líder mundial de Autodesk. Creado en 1982 cuando AutoCAD se lanzó, DWG se ha convertido en el estándar de facto para dibujos técnicos en arquitectura, ingeniería y construcción (AEC) a nivel global.
DXF (Drawing Exchange Format, Formato de Intercambio de Dibujos) es un formato de intercambio documentado también creado por Autodesk en 1982 como alternativa abierta a DWG — diseñado para permitir que otros sistemas CAD importen y exporten dibujos AutoCAD. DXF es de texto (ASCII) por defecto. Porque su especificación es pública, DXF es compatible con prácticamente todas las aplicaciones CAD del mundo.
Ambos formatos almacenan geometría vectorial 2D y 3D: líneas, arcos, círculos, polilíneas, splines, superficies, sólidos, bloques, texto, dimensiones, capas, sombreados y referencias de imágenes ráster.
Historia y Versiones del Formato DWG
DWG es propietario — Autodesk no publica su especificación. Las versiones principales corresponden a versiones de AutoCAD:
| Versión DWG | Versión AutoCAD | Año |
|---|---|---|
| 2000 (AC1015) | AutoCAD 2000-2002 | 1999 |
| 2004 (AC1018) | AutoCAD 2004-2006 | 2003 |
| 2007 (AC1021) | AutoCAD 2007-2009 | 2006 |
| 2010 (AC1024) | AutoCAD 2010-2012 | 2009 |
| 2013 (AC1027) | AutoCAD 2013-2017 | 2012 |
| 2018 (AC1032) | AutoCAD 2018-2024 | 2017 |
Los primeros seis bytes de un archivo DWG contienen la cadena de versión: AC1032 para el formato DWG 2018.
Estructura DXF
Los archivos DXF se organizan en secciones, cada una compuesta por códigos de grupo (enteros) y valores asociados:
0 ← código de grupo (tipo de entidad)
SECTION ← valor
2
HEADER ← nombre de sección
9
$ACADVER ← variable de cabecera
1
AC1032 ← versión
0
ENDSEC
0
SECTION
2
ENTITIES
0
LINE ← entidad de línea
8
Capa_1 ← nombre de capa
10
100.0 ← punto X inicio
20
200.0 ← punto Y inicio
11
300.0 ← punto X fin
21
200.0 ← punto Y fin
0
ENDSEC
0
EOF
Secciones DXF
| Sección | Contenido |
|---|---|
| HEADER | Variables del dibujo ($ACADVER, $INSUNITS, límites, etc.) |
| TABLES | Capas, tipos de línea, estilos de texto, estilos de dimensión |
| BLOCKS | Definiciones de bloque (componentes de geometría reutilizables) |
| ENTITIES | Toda la geometría del dibujo (líneas, arcos, texto, inserciones) |
| OBJECTS | Objetos no gráficos (diccionarios, grupos, composiciones) |
Tipos de Entidades Comunes
| Entidad | Descripción |
|---|---|
| LINE | Segmento de línea 2D/3D |
| ARC | Arco circular |
| CIRCLE | Círculo completo |
| LWPOLYLINE | Polilínea ligera (2D, la más común) |
| SPLINE | Curva spline NURBS |
| TEXT | Texto de una sola línea |
| MTEXT | Texto multilínea |
| INSERT | Referencia de bloque (instancia de una definición BLOCK) |
| HATCH | Área rellena con patrón |
| DIMENSION | Anotación de dimensión |
Sistemas de Coordenadas y Unidades
DXF/DWG almacena coordenadas en unidades del mundo de punto flotante. El sistema de unidades se establece mediante $INSUNITS en el HEADER:
| Código | Unidad |
|---|---|
| 1 | Pulgadas |
| 2 | Pies |
| 4 | Milímetros |
| 5 | Centímetros |
| 6 | Metros |
Espacio Modelo vs. Espacio Papel: AutoCAD mantiene dos entornos — el Espacio Modelo (donde se dibuja la geometría real a escala del mundo real) y el Espacio Papel/Composición (donde los ventanales enmarcan la geometría del modelo para trazar a escalas específicas).
Capas, Colores y Tipos de Línea
Las capas son la estructura organizativa principal en los dibujos CAD:
- Cada entidad pertenece a una capa.
- Las capas tienen color (ACI 0-255, o RGB True Color), tipo de línea, grosor de línea y estado de trazado.
- Las convenciones estándar de nombrado de capas (ISO, AIA, BS1192) garantizan la interoperabilidad.
Bloques y Referencias Externas (Xrefs)
Bloques: colecciones de geometría nombradas almacenadas en la sección BLOCKS e instanciadas mediante entidades INSERT. Usados para símbolos repetidos (puertas, ventanas, tornillos, árboles). Los bloques pueden tener atributos — campos de texto que se pueden rellenar por instancia.
Xrefs (Referencias Externas): un dibujo puede referenciar otros archivos DWG como si fueran bloques, sin incrustar la geometría. Usado para adjuntar planos base, dibujos estructurales y superposiciones MEP en flujos de trabajo colaborativos AEC.
Lectura de DXF Programáticamente
ezdxf (Python, código abierto):
import ezdxf
doc = ezdxf.readfile("plano.dxf")
msp = doc.modelspace()
# Iterar todas las entidades LINE
for entidad in msp.query("LINE"):
inicio = entidad.dxf.start # Vec3(x, y, z)
fin = entidad.dxf.end
capa = entidad.dxf.layer
print(f"Línea: {inicio} → {fin} en capa '{capa}'")
# Crear un nuevo DXF
doc = ezdxf.new(dxfversion="R2018")
msp = doc.modelspace()
msp.add_line((0, 0), (100, 50), dxfattribs={"layer": "MI_CAPA"})
doc.saveas("salida.dxf")
Conversión de DXF y DWG
- DWG → DXF: AutoCAD "Guardar como DXF", o herramientas gratuitas: DWG TrueView, ODA File Converter.
- DXF → DWG: Las mismas herramientas.
- DXF/DWG → PDF: Diálogo de trazado de AutoCAD (controlador PDF), Inkscape (solo DXF).
- DXF/DWG → SVG: Inkscape (importación DXF), ezdxf + matplotlib.
- PDF → DXF: PDF2CAD (comercial), Able2Extract, o Inkscape (solo para PDFs vectoriales).
DXF vs. DWG: ¿Cuál Usar?
| Escenario | Recomendación |
|---|---|
| Compartir con usuarios sin AutoCAD | DXF — compatibilidad universal |
| Edición de ida y vuelta en AutoCAD | DWG — sin pérdida de datos |
| Programación / scripting | DXF — especificación abierta, muchas librerías |
| Bloques dinámicos / xrefs | DWG — no se preservan completamente en DXF |
| Archivo / almacenamiento a largo plazo | DXF — formato abierto |
| BIM (Building Information Modeling) | IFC en su lugar — semántica más rica |
Buenas Prácticas
- Guarda DXF como ASCII (no binario) para máxima compatibilidad.
- Especifica la versión DXF explícitamente — R2010 o R2013 es un buen equilibrio.
- Purga elementos no usados antes de exportar: el comando
PURGEelimina capas, bloques y tipos de línea no utilizados. - Audita el dibujo antes de exportar:
AUDITcorrige errores de la base de datos. - Vincula xrefs antes de distribuir archivos DWG para evitar referencias rotas.
- Usa nombrado estándar de capas (ISO 13567 o estándares de capas AIA) para proyectos colaborativos.
- Establece
$INSUNITScorrectamente para evitar desajustes de escala al importar. - Usa ezdxf para scripting Python — es la mejor librería DXF de código abierto.
- Archiva DXF junto con DWG para accesibilidad a largo plazo.
- Prueba la importación en el software del destinatario antes de distribuir.
Conversiones relacionadas
Conversiones frecuentes del catálogo: