Saltar al contenido
Marc & Structures
Índice
Demostración ~10 min · ~42 min restantes

Invocar y separar responsabilidades

Invoca con ARG válidos, separa construcción, solución y extracción en submacros.

Paso 1 — Invocar con un contrato explícito

/CLEAR,START
*USE,08_macro_debug.mac,0.10,-1000,0.05,1

*USE carga la macro y asigna ARG1ARG4. El driver traduce esos argumentos a parámetros con nombre y rechaza valores inválidos antes de construir nada:

beam_h=ARG1
tip_force=ARG2
mesh_h=ARG3
case_id=ARG4

*IF,beam_h,LE,0,THEN
  /COM,ERROR: ARG1 beam_h must be positive
  /STATUS,PARM
  /EOF
*ENDIF

No ejecutes /CLEAR dentro del driver. Vaciaría la base de datos y la pila de macros. Limpia la sesión antes de llamar a *USE.

Paso 2 — Separar construcción, solución y extracción

/INPUT,08_build,mac,,,,1
/INPUT,08_solve,mac,,,,1
/INPUT,08_extract,mac,,,,1

Cada fase asume precondiciones y las comprueba. 08_build.mac crea geometría, malla y componentes; 08_solve.mac aplica D/F y resuelve; 08_extract.mac activa el set, valida frente a teoría y escribe el CSV.

Las divisiones de malla se obtienen con NINT(dim/mesh_h). Así mesh_h es un argumento real del contrato, no un valor hardcodeado en el monolito. La construcción fija KEYOPT(2)=3 en SOLID185: con KEYOPT(2)=0 la tensión de flexión queda artificialmente baja (~22 %) en esta malla.