En M08 convertiste el modelo en macros reutilizables. En M09 cerrarás la ruta principal
automatizando la decisión de diseño: barreras varias alturas con
*DO, consolidar un CSV de decisión y seleccionar la menor sección admisible sin
tocar la GUI.
Tu misión
Evaluarás al menos tres alturas de viga, validarás cada caso frente a teoría y elegirás
automáticamente la alternativa de menor beam_h que cumpla flecha, tensión y
equilibrio.
Pregunta guía: ¿puede el script decidir por ti sin ambigüedad?
Objetivos
Al completar M09 podrás:
- Orquestar un barrido paramétrico con
*DOy arrays. - Reconstruir el modelo en cada iteración sin estado residual.
- Distinguir
validation_pass(M07–M08) defeasible(límites de diseño). - Consolidar un CSV único como tabla de decisión.
- Seleccionar automáticamente el diseño admisible de menor sección.
- Demostrar reproducibilidad en dos ejecuciones limpias.
- Documentar hipótesis, validación y limitaciones en una memoria breve.
Prerrequisitos y descargas
- M08: driver con submacros
build,solveyextract. - M07: tolerancias de flecha, tensión interior y equilibrio.
- M01: referencias analíticas y límites de diseño (
uy_limit,stress_limit).
09_start.mac— punto de partida.09_parametric_study.mac— driver base (3 diseños).09_parametric_core.mac— núcleo del barrido.09_build.mac— reconstrucción por caso.09_solve.mac— solución.09_extract.mac— validación por caso.09_bug_hunt.mac— cinco fallos de barrido.09_challenge.mac— reto de cuatro diseños.09_expected_results.csv— contrato de autocorrección.09_project_report.md— plantilla de memoria.height-displacement.svg— tendencia altura–flecha.automated-decision-flow.svg— flujo de decisión.
Cómo usar esta lección
| Ruta | Duración | Recorrido |
|---|---|---|
| Primera victoria | 30–35 min | Predicción, barrido de tres alturas y primera selección automática. |
| Completa | 70–75 min | Además, caza de errores, reto de cuatro diseños, memoria y cierre de la ruta principal. |
Mapa de la sesión
- Misión: objetivos, descargas y predicción para tres alturas.
- Modelo mental: automatizar la decisión, no solo el cálculo.
- Demostración: criterios, barrido sin estado residual, CSV y selección.
- Caza de errores: estado residual, veredictos mezclados y selección incorrecta.
- Reto: cuatro diseños y reproducibilidad en dos ejecuciones limpias.
- Dominio: prueba final que cierra la ruta principal M00–M09.
Predicción — Tres alturas, tres decisiones
Con b = 0.05 m, L = 1 m, E = 210 GPa y F = −1000 N:
I = b·h³/12
uy_ref = F·L³/(3·E·I)
sigma_ref = F·(0.8L)·(h/2)/I ! sección interior| Caso | h (m) | mesh_h (m) | |uy_ref| (mm) | σ_ref (MPa) | Admisible (analítico) |
|---|---|---|---|---|---|
| 1 | 0.08 | 0.04 | 0.744 | 15.0 | no (> 0.25 mm) |
| 2 | 0.10 | 0.05 | 0.381 | 9.6 | no |
| 3 | 0.12 | 0.06 | 0.220 | 6.9 | sí |
La predicción analítica ya descarta los dos primeros diseños. El barrido FE debe confirmarlo
con validation_pass y marcar solo el caso 3 como feasible.
Modelo mental — Automatizar la decisión, no solo el cálculo
validation_pass y feasible responden preguntas distintas.
Un barrido que solo imprime contornos no automatiza decisiones. Necesitas una tabla con
veredictos explícitos y una regla de selección legible en el script: la menor
beam_h admisible.
Paso 1 — Definir entradas y criterios
beam_l=1.0
beam_b=0.05
young=210E9
tip_force=-1000
uy_limit=0.00025 ! 0.25 mm
stress_limit=150E6 ! 150 MPa
n_cases=3
Documenta unidades SI y límites antes del *DO. Los criterios de validación FE
(flecha vs analítico, equilibrio) siguen siendo los de M07–M08; los de diseño
(uy_limit, stress_limit) son adicionales.
Paso 2 — Barrido con *DO sin estado residual
*DO,case_id,1,n_cases
! fija beam_h y mesh_h = h/2
/INPUT,09_build,mac,,,,1
/INPUT,09_solve,mac,,,,1
/INPUT,09_extract,mac,,,,1
! almacena resultados en arrays
*ENDDO
Cada iteración debe reconstruir geometría y malla. En 09_build.mac se limpia la
malla previa con VCLEAR y VDELE antes de crear un nuevo
BLOCK. Sin esa limpieza, el segundo caso falla con «Volume is meshed and cannot
be changed».
Paso 3 — CSV como tabla de decisión
*CFOPEN,m09_results,csv
*VWRITE
('case_id,beam_h,...,validation_pass,feasible')
*DO,i,1,n_cases
*VWRITE,i,h_store(i),...,val_pass_store(i),feasible_store(i)
*ENDDO
*CFCLOSSolo el driver escribe el CSV. Si cada submacro escribe su propio archivo, la última iteración sobrescribe las anteriores y la selección pierde sentido.
Paso 4 — Seleccionar el diseño mínimo apto
selected_case=0
selected_h=0
*DO,i,1,n_cases
*IF,feasible_store(i),EQ,1,THEN
*IF,selected_case,EQ,0,THEN
selected_case=i
selected_h=h_store(i)
*ELSE
*IF,h_store(i),LT,selected_h,THEN
selected_case=i
selected_h=h_store(i)
*ENDIF
*ENDIF
*ENDIF
*ENDDO
Para el barrido base, la selección esperada es selected_case=3,
selected_h=0.12 m. Comprueba también la tendencia:
|uy(i+1)| < |uy(i)| al aumentar la altura.
Caza de errores
Abre 09_bug_hunt.mac. Cinco defectos típicos de barridos paramétricos:
| Error | Síntoma | Comprobación | Causa | Solución mínima |
|---|---|---|---|---|
| 1 | Topología imposible | Conteos de nodos | Sin reconstruir entre casos | VCLEAR + VDELE en build |
| 2 | CSV de una sola fila | Archivo de salida | CSV en extract | Escribir solo desde el driver |
| 3 | Selección h=0.08 | feasible |
Confundir validation_pass |
Filtrar por límites de diseño |
| 4 | Bucle inconsistente | /STATUS,PARM |
/CLEAR dentro del *DO |
Limpiar geometría, no la sesión |
| 5 | Selección h=0.14 | selected_h |
Elegir la mayor altura admisible | min(beam_h) con feasible=1 |
Reto verificable — Cuatro diseños, dos ejecuciones
Ejecuta el barrido base dos veces desde sesiones limpias y compara
m09_results.csv. Después añade un cuarto diseño sin duplicar bloques de
construcción o solución:
/CLEAR,START
/FILNAME,m09_challenge,1
/UNITS,SI
n_cases=4
/INPUT,09_parametric_core,mac
El cuarto caso (h = 0.14 m) también es admisible analíticamente, pero la
selección debe seguir siendo h = 0.12 m por ser la menor
sección apta.
Autoevaluación
¿Qué diferencia hay entre validation_pass y feasible?
validation_pass confirma que el modelo FE es coherente (topología, equilibrio,
comparación analítica). feasible añade los límites de diseño de flecha y
tensión.
¿Por qué reconstruir el modelo en cada iteración?
Porque acumular geometría o selecciones residuales contamina casos posteriores y rompe la reproducibilidad del barrido.
¿Qué diseño debe seleccionar el barrido base?
Caso 3, h = 0.12 m: es el primero que cumple |uy| ≤ 0.25 mm y
es la menor altura admisible entre los tres evaluados.
¿Dónde debe escribirse m09_results.csv?
En el driver, tras completar el barrido. Un único punto de escritura evita sobrescrituras parciales.
¿Qué compruebas además de los límites de diseño?
La tendencia física: al aumentar h, la flecha en punta debe disminuir en
magnitud.
Evidencia de aprendizaje
- Driver
09_parametric_study.maccon barrido de tres diseños. - Submacros
09_build,09_solvey09_extract. m09_results.csvconvalidation_pass,feasibley selección.- Gráfica altura–desplazamiento y memoria breve completada.
- Reproducibilidad demostrada en dos ejecuciones limpias.
- Reto de cuatro diseños con selección coherente (
h = 0.12 m).
Checklist de salida
- ☐ Documenté entradas, unidades y límites de diseño.
- ☐ Implementé barrido con
*DOsin estado residual. - ☐ Distinguí
validation_passdefeasible. - ☐ Escribí un único CSV consolidado desde el driver.
- ☐ Seleccioné
min(beam_h)admisible. - ☐ Verifiqué tendencia física de la flecha.
- ☐ Repetí la ejecución desde sesión limpia.
- ☐ Completé la memoria breve del proyecto.
Trazabilidad técnica
La lección utiliza Command Reference 2024 R1 para *DO,
*DIM, *CFOPEN, *VWRITE y /INPUT, y
hereda tolerancias de validación de M07–M08. Validado en MAPDL Student 2025 R2
(v252) con KEYOPT(2)=3.
Cierre de la ruta principal
Al completar M09 habrás recorrido M00–M09: desde la primera simulación reproducible hasta un proyecto automatizado con decisión verificable. Las especializaciones M10–M17 amplían física y técnicas avanzadas, pero la ruta principal del curso queda cerrada aquí.