Los resultados salen del programa en forma de informe en PDF, imágenes, impresiones y dibujos DXF. Además, el programa se puede manejar sin ratón desde la consola de Python de la ventana, la línea de comandos, la API de Python o un agente de IA conectado mediante el servidor MCP. Los tres últimos tienen su propio capítulo de referencia; aquí solo se presentan desde el programa de escritorio.
2.12.1El informe en PDF#
File → Generate Report… genera un PDF en formato A4 con el último cálculo y todos los métodos que se ejecutaron en él; si todavía no se ha calculado, el programa lo rechaza con un mensaje. El nombre de archivo propuesto es el del proyecto seguido de _report.pdf. El informe consta de ocho secciones:
- Project Summary: título, archivo, autor, empresa, fechas y comentarios;
- General Settings: unidades, unidades de tiempo y de permeabilidad y dirección de rotura;
- Analysis Options: los métodos, el número de dovelas, la tolerancia, el máximo de iteraciones y las opciones de las superficies;
- Material Properties;
- Global Minimums: para cada método, el factor de seguridad y la superficie crítica (centro y radio si es un círculo, los dos puntos extremos y el área total de las dovelas);
- Valid / Invalid Surfaces: los recuentos por método, con los intentos de generación;
- Slice Data de la superficie crítica de cada método;
- List of Coordinates de los contornos.
El título, el autor y la empresa proceden de Analysis → Project Settings → Project Summary.
- Un proyecto nuevo trae como valores por defecto de Author y Company, en Project Summary, el nombre y la institución del autor del programa. Cámbialos; de lo contrario, el informe citará a otra persona.
- El informe solo contiene tablas, sin dibujo del modelo; añade uno con File → Export Image….
- No incluye las notas del análisis ni registra la norma de diseño: si hay una aplicada, el valor que rotula como Factor of Safety (FS) es un factor de sobredimensionamiento (Sección 2.11).
- El pie de página indica la licencia GPL-3.0, pero el programa tiene licencia AGPL-3.0-or-later.
2.12.2Imágenes#
- File → Export Image… guarda en PNG todo lo que hay dibujado en la vista del modelo (la extensión completa, no solo la parte visible en pantalla) sobre fondo blanco. Pide la Width in pixels (1920 por defecto; de 200 a 12 000), y la altura se calcula a partir de las proporciones del modelo.
- Edit → Copy Image copia al portapapeles la vista tal como está en pantalla, como mapa de bits.
- La ventana Interpret tiene sus propios File → Export Image… (PNG o JPEG de su vista) y Edit → Copy Image (Sección 2.8).
Edit → Picture Format ofrece Bitmap y Vector (SVG), pero en la versión 0.1.235 da igual lo que se elija: Copy Image siempre copia un mapa de bits al portapapeles.
2.12.3Impresión#
File → Page Setup… permite elegir el papel y los márgenes, y File → Print Preview… muestra el modelo completo dibujado en esa página; la impresión se lanza desde la ventana de vista previa. En la versión 0.1.235, File → Print… (Ctrl+P) solo muestra un mensaje.
2.12.4Dibujos DXF#
File → Export DXF… exporta el modelo a un dibujo DXF para CAD. En el diálogo se elige la unidad de las coordenadas (m, cm, mm, km, ft o in; el modelo está en metros y la unidad se anota en el archivo), el Load arrow size, como porcentaje de la diagonal del modelo (2 %), y lo que se incluye en el dibujo: Boundaries (geometry), Supports, Loads (as arrows), Finite element mesh (desactivada por defecto, porque escribe una línea por cada lado de elemento), Critical slip surface (tras un cálculo) y Annotations (title, factor of safety). La geometría va a las capas que reconoce el importador de DXF, de modo que el dibujo se puede editar y volver a importar. Las cargas, la malla, la superficie de rotura y las anotaciones van a capas distintas, cuyos nombres empiezan por OGR_X_ y que el importador ignora, así que una flecha de carga no puede volver como contorno. La importación de un DXF se describe en la Sección 2.2.
2.12.5La consola de Python#
Window → Terminal (Ctrl+`) abre una consola de Python dentro de la ventana, conectada al modelo abierto. En ella se definen estos nombres:
| Nombre | Qué es |
|---|---|
project | El proyecto abierto en la ventana, que es el mismo objeto que se está editando. Se actualiza con New Project, Open Project y Load Demo Slope. |
canvas | La vista del modelo. |
mainwindow | La ventana principal. |
ogr_core, ogr_slip2d | Los paquetes del modelo y del análisis. |
np | NumPy. |
help_ogr() | Muestra estos nombres, algunos ejemplos y las teclas de uso. |
Enter ejecuta lo escrito, Shift+Enter añade una línea nueva a la misma entrada, Ctrl+↑ y Ctrl+↓ recorren el historial y Ctrl+L borra la consola. Para ejecutar el análisis tal como está configurado el proyecto, igual que hace Compute, usa el ejecutor de análisis:
>>> [m.name for m in project.materials]
>>> from ogr_slip2d.analysis_runner import run_analysis
>>> out = run_analysis(project) # los métodos activados en el proyecto
>>> {mid: r.critical.fos for mid, r in out.results.items() if r.critical}
>>> out.warnings # las notas del análisisLos cambios que se hacen en project desde la consola no pasan por Edit → Undo, y la vista no se redibuja sola: hay que llamar a canvas.refresh_scene(). Un cálculo lanzado desde aquí se ejecuta en el propio hilo de la ventana, por lo que esta no responde hasta que termina. Una búsqueda construida a mano a partir de su clase, como en el ejemplo de help_ogr(), usa los valores por defecto de esa clase y no los ajustes del proyecto; run_analysis sí usa los del proyecto.
2.12.6La línea de comandos#
ogr-slip2d-cli ejecuta un proyecto guardado sin abrir la ventana. Calcula el análisis que describe el proyecto con el mismo ejecutor que el programa de escritorio; cada opción sustituye en memoria un ajuste del proyecto, y el archivo no se modifica.
ogr-slip2d-cli. La referencia completa está en la Sección 5.2.| Comando | Qué hace |
|---|---|
info project.ogr | Muestra un resumen del proyecto y de sus materiales. |
compute project.ogr | Ejecuta el análisis, muestra todas las notas y una tabla con el valor crítico de cada método, y guarda el resultado de cada método en formato HDF5 (project.h5, o un archivo por método). Opciones: --method, --slices, --nx, --ny (intervalos de la rejilla), --dr (Radius Increment), --search, --samples (Number of Surfaces de las búsquedas Slope, Block y Path) y --output. |
methods | Lista los nueve métodos y el equilibrio que satisface cada uno. |
strength-models | Lista los modelos de resistencia y sus parámetros. |
new-demo out.ogr | Guarda el talud de demostración como proyecto. |
Si el proyecto contiene algo que el análisis no puede respetar, se rechaza con los motivos y el código de salida 3, como hace Compute en la ventana. La versión 0.1.235 no incluye ningún comando para los análisis estadísticos. --search acepta los identificadores de búsqueda grid, slope, auto_refine, block, path, simulated_annealing y particle_swarm; un identificador que no reconoce no provoca ningún rechazo, y el cálculo se hace con una Grid Search.
2.12.7API de Python#
Los paquetes del programa se pueden importar desde Python. La manera más breve de analizar un proyecto guardado es recurrir al mismo ejecutor que usan la ventana y la línea de comandos:
from ogr_core.project import Project
from ogr_slip2d.analysis_runner import run_analysis
project = Project.load("slope.ogr")
out = run_analysis(project) # rechaza, con los motivos, lo que Compute rechaza
for method_id, result in out.results.items():
crit = result.critical
print(method_id, crit.fos if crit else "no valid surface")
for note in out.warnings:
print("Note:", note)Para construir y editar modelos desde código, la capa de operaciones ogr_api ofrece las mismas operaciones que las herramientas del servidor MCP, con validación, función de deshacer y los cálculos largos como tareas en segundo plano; la carpeta examples/ del repositorio contiene un script de ejemplo resuelto. La API de Python se describe en la Sección 5.3.
2.12.8Agentes de IA#
El servidor MCP, ogr-slip2d-mcp, permite que un agente de IA construya, ejecute y lea modelos con las mismas operaciones (requiere el extra [mcp]; véase la Sección 1.1). Al arrancar, el programa de escritorio abre un puente para agentes (Tools → Agent bridge (MCP), que solo admite conexiones locales y exige un token), de modo que un servidor iniciado con ogr-slip2d-mcp --attach trabaja sobre la ventana abierta: cada edición del agente aparece en pantalla y se puede deshacer. Para impedir el acceso de los agentes, arranca el programa con ogr-slip2d --no-agent-bridge o desmarca la opción del menú. Cómo conectar un agente se explica en la página de IA y MCP, y todas las herramientas se enumeran en la Sección 5.1.