Herramienta interna para calcular la capacidad de producción de hornos a partir de un checklist estándar y un inventario estándar, desarrollada en Python.
El sistema compara los materiales requeridos para un horno contra la existencia actual y responde de forma clara:
- cuántos hornos completos pueden salir hoy
- qué material bloquea el siguiente horno
- qué faltantes existen para completar el siguiente horno
- qué faltantes existen para alcanzar un objetivo de
Nhornos
Incluye:
- aplicación Windows (.exe) para usuarios no técnicos
- interfaz gráfica (GUI)
- actualización automática mediante launcher
- uso por línea de comandos (CLI) para usuarios técnicos
- generación de reporte en Excel y log de ejecución
- cálculo de capacidad de producción con inventario actual
- identificación del material más limitante
- simulación de faltantes para el siguiente horno
- simulación de faltantes para un objetivo de N hornos
- exclusión de materiales no limitantes con
incluir_en_capacidad = NO - soporte para consumos fraccionales en unidades como
Metro - agregación automática de materiales repetidos en el checklist
- validación de columnas requeridas y detección de incidencias
- exportación de resultados a Excel
- launcher con actualización automática por GitHub Releases
- Ir a Releases: https://github.com/linhermx/assemble/releases
- Descargar:
assemble_launcher.exe
No necesitas instalar Python ni dependencias.
- Ejecuta
assemble_launcher.exe - El launcher:
- revisa si hay una versión más reciente
- pregunta si deseas actualizar
- Acepta y el sistema se actualiza automáticamente
Después se abre la aplicación principal.
- Selecciona el checklist estándar
- Selecciona el inventario estándar
- Selecciona la carpeta de salida
- Define el objetivo de hornos
- Haz clic en Analizar capacidad
Salidas generadas:
reporte_capacidad_hornos.xlsxrun_log.txt
La aplicación espera dos archivos Excel con hojas y columnas específicas.
Hoja requerida: checklist
| Columna | Descripción |
|---|---|
modelo_nombre |
Nombre del modelo de horno |
seccion |
Área o subconjunto al que pertenece el material |
descripcion_material |
Nombre del material |
unidad_consumo |
Unidad base del consumo |
cantidad_por_horno |
Cantidad requerida para fabricar 1 horno |
incluir_en_capacidad |
SI o NO para definir si limita la capacidad |
observaciones |
Campo libre opcional |
Hoja requerida: inventario
| Columna | Descripción |
|---|---|
descripcion_material |
Nombre del material |
unidad |
Unidad base de existencia |
existencia |
Existencia disponible |
descripcion_materialdebe coincidir entre checklist e inventariounidad_consumoyunidaddeben coincidir para el mismo materialcantidad_por_hornoyexistenciaaceptan enteros y decimales- para materiales fraccionales se usa la unidad declarada en el archivo
- ejemplo:
0.68enMetrosignifica0.68 metros - ejemplo:
3.5enMetrosignifica3.5 metros
- si falta aunque sea un material obligatorio, no sale otro horno completo
- la capacidad final se toma del material con menor capacidad por existencia
- si un material aparece varias veces en el checklist, primero se suma su consumo total por horno
- los materiales con
incluir_en_capacidad = NOquedan fuera del cálculo - si un material obligatorio no existe en inventario, se toma
existencia = 0y se reporta como incidencia - si checklist e inventario usan unidades distintas para el mismo material, se reporta incidencia
- el cálculo de faltantes para objetivo usa la cantidad total requerida contra la existencia actual
- Python 3.10+
- Windows
Dependencias principales:
pandasopenpyxlxlsxwriterrequests
Se recomienda usar un entorno virtual (venv).
git clone https://github.com/linhermx/assemble.git
cd assemble
.\scripts\setup_venv.ps1
.\venv\Scripts\Activate.ps1O manualmente:
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -r requirements-dev.txt.\scripts\run_gui.ps1O directamente:
python .\assemble_gui.pypython .\assemble_launcher.pySi no existe una release publicada, el launcher cae localmente a assemble_gui.py.
python .\assemble_cli.py `
--checklist "examples\goliat_premium_standardized\checklist_goliat_premium_estandar.xlsx" `
--inventory "examples\goliat_premium_standardized\inventario_global_estandar.xlsx" `
--outdir "salida" `
--target 10 `
--overwrite| Parámetro | Descripción |
|---|---|
--checklist |
Ruta al checklist estándar |
--inventory |
Ruta al inventario estándar |
--outdir |
Carpeta de salida. Default: salida |
--target |
Objetivo de hornos a simular. Default: 1 |
--overwrite |
Sobrescribe el reporte si ya existe |
El archivo reporte_capacidad_hornos.xlsx incluye estas hojas:
ResumenChecklist agregadoLimitantesFaltantes siguienteFaltantes objetivoExcluidosDetalle checklistIncidencias
El archivo run_log.txt resume:
- modelo analizado
- hornos completos posibles hoy
- siguiente horno objetivo
- material más limitante
- faltantes para el siguiente horno
- faltantes para el objetivo
- incidencias detectadas
- Preparar el checklist estándar
- Preparar el inventario estándar
- Ejecutar la aplicación
- Revisar el resumen principal
- Analizar faltantes para el siguiente horno
- Simular faltantes para el objetivo
- Descargar y compartir el reporte
.\scripts\build_windows.ps1
.\scripts\build_launcher.ps1Los binarios se generan en dist/:
assemble_windows.exeassemble_launcher.exe
Ambos scripts crean .\venv automáticamente si todavía no existe.