¿Qué hace autocad-plot-dwg-to-pdf?
Habilidad de Codex para trazado de ventanas de DWG en AutoCAD, selección A3/A4, normalización de PDF vectorial en blanco y negro y reintentos COM estables.
Requisitos
- Sistema operativo: Windows (AutoCAD COM requiere Windows)
- AutoCAD: Versión 2018 o superior (COM habilitado)
- Dependencias:
pyautocad>= 0.2.0pywin32pythonnet(para acceso a COM)ghostscript(para normalizar PDF, opcional para blanco y negro puro)
Instalación
pip install ryanknkn-autocad-plot-dwg-to-pdf
Uso Rápido
from ryanknkn_autocad_plot_dwg_to_pdf import plot_current_dwg_to_pdf
# Traza el DWG actual en AutoCAD con parámetros por defecto (A3, blanco y negro)
pdf_path = plot_current_dwg_to_pdf()
print(f"PDF generado: {pdf_path}")
# Con selección de tamaño A4 y 300 DPI
pdf_path = plot_current_dwg_to_pdf(
paper_size="A4",
dpi=300,
output_dir=r"C:\salida",
black_and_white=True,
retries=5
)
Funcionalidades Principales
1. Trazado por Ventana (Window Plot)
La habilidad detecta automáticamente los límites del layout actual y configura el trazado por ventana, evitando márgenes excesivos.
2. Selección de Tamaño de Papel (A3 / A4)
Acepta paper_size="A3" (420x297 mm) o "A4" (297x210 mm). Se genera error si el tamaño no coincide exactamente.
3. Normalización a PDF Vectorial en Blanco y Negro
- Usa el estilo de trazado
monochrome.ctbpara convertir todos los colores a negro. - Opcional: con
ghostscriptse fuerza la salida a escala de grises sin capas vec.
4. Reintentos COM Estables
Al abrir el documento DWG, se realizan hasta 5 intentos (configurables) para conectar con AutoCAD, con espera exponencial (time.sleep(1), time.sleep(2), etc.).
Parámetros de la Función Principal
| Parámetro | Tipo | Default | Descripción |
|---|---|---|---|
paper_size | str | "A3" | Tamaño de papel: "A3" o "A4" |
dpi | int | 150 | Resolución en DPI para el PDF de salida |
output_dir | str | Directorio actual | Carpeta donde se guardará el PDF |
black_and_white | bool | True | Forzar blanco y negro (usa monochrome.ctb) |
retries | int | 5 | Número máximo de reintentos de conexión COM |
Ejemplo con Ghostscript (Normalización)
import subprocess
def normalize_to_grayscale(input_pdf, output_pdf):
cmd = [
"gswin64c",
"-sDEVICE=pdfwrite",
"-dCompatibilityLevel=1.4",
"-dPDFSETTINGS=/prepress",
"-dAutoRotatePages=/None",
"-dUseCIEColor",
"-sColorConversionStrategy=Gray",
"-dProcessColorModel=/DeviceGray",
"-sOutputFile=" + output_pdf,
input_pdf
]
subprocess.run(cmd, check=True)
Notas
- Asegúrate de tener AutoCAD cerrado antes de la primera ejecución; el COM lo abrirá automáticamente.
- Si hay múltiples layouts, solo se traza el layout activo.
- La normalización con Ghostscript requiere instalación por separado (https://www.ghostscript.com/).
Licencia
MIT