Iber model

Friday, April 4, 2025     [ login ]

Forums

Comando Batch Herramientas Iber


2/25/2025 14:51:00
batch y Tcl/Tk en GiD/Iber
De puro Tcl/Tk hay muchos tutoriales en Internet https://wiki.tcl-lang.org/page/Tcl+Tutorial+Index ,
así como la referencia de los comandos https://www.tcl-lang.org/man/tcl8.6/TclCmd/contents.htm 

Pero tampoco necesitas aprender este lenguaje scripting solo para hacer un simple batch,
te basta con saber que para dar valor a una variable tcl es el comando es "set variable valor"

tu batch sería algo como esto
una primera línea de palabras process "Mescape Postprocess escape"· para que GiD cambie de pre a post 
y despues una llamada al proc tcl llamado ::PostRaster::ApplyListEntities que es lo que está implementado en <IBER>\problemtypes\IBER.gid\scripts\ResultsToRaster.tcl para exportar el resultado
este proc tiene un argumento w no usa luego, así que le paso cualquier cosa como la palabra 'nada'


Mescape Postprocess escape
*****tcl PostRaster::ApplyListEntities nada

pero este mirando proc PostRaster::ApplyListEntities no ha sido pensado para ser llamado fácil y limpio, y no se le pasan como argumento sus parámetros, sino que le llegan 'por arte de magia' en variables globales que han sido rellenadas en la GUI en la ventana que permite seleccionar el nombre de análisis, el nombre de resultado, etc.
por ejemplo el nombre de  análisis ha de ponerse en la variable global ::PostRaster(thisanalysis), supongamos que tu resultado deseado está en el nombre de análisis Hydraulic que es uno de los nombres escritos en el fichero de resultados .post.res por el cálculo de Iber
si la variable empieza por :: significa que es global

en Tcl esto es la sintáxis explicada
set ::PostRaster(thisanalysis) Hydraulic
y para el .bch hay que añadirle *****tcl para indicar que lo siguiente es código Tcl

Mescape Postprocess escape
*****tcl set ::PostRaster(thisanalysis) Hydraulic
*****tcl 
::PostRaster::ApplyListEntities nada



Faltarán rellenar mas variables similares a esta, para indicar lo que quieres exportar, el nombre de resultado, etc.

Antes de escribirlo en el batch conviene que lo pruebes interactivamente en GiD, para ver los errores que da por variables no definidas, etc.
puedes escribir comandos Tcl interactivamente en la línea inferior de GiD, con el prefijo -np- (es un truco similar a los ****tcl del batch, -np- viene de NoProcess, que significa que lo siguente no son palabras process de GiD sino Tcl

-np- set ::PostRaster(thisanalysis) Hydraulic
-np- PostRaster::ApplyListEntities nada

esto de un mensaje de "No results have been selected" 
porque faltan por poner valores de variables, 
puede ayudar a seguir el flujo ejecutando el código tcl paso a paso con el debugger (Utilities->Tools->Develop->Debugger)


Hay material explicando cosas de Tcl, en cursos antiguos de GiD de las GiD conventions que hacemos bianualmente
https://downloads.gidsimulation.com/GiD_Convention/2004/courses/gid_basic_and_advanced/09-Depuraci%C3%B3n%20de%20c%C3%B3digo%20tcl.pdf
https://downloads.gidsimulation.com/GiD_Convention/2004/courses/gid_basic_and_advanced/08-Herramienta%20de%20edici%C3%B3n%20de%20malla.pdf
https://downloads.gidsimulation.com/GiD_Convention/2002/courses/gid_advanced_spanish/A3-Extensi%C3%B3n_tcl.pdf

puedes descargarlos los de cualquier año desde aqui https://downloads.gidsimulation.com/#GiD_Convention/ 

Enrique



 Comando Batch Herramientas Iber   Clemente Gotelli Alvial 2/13/2025 09:28
 Comandos Batch   Enrique Escolano 2/20/2025 18:40
     ejemplos   Clemente Gotelli Alvial 2/21/2025 09:39
     batch y Tcl/Tk en GiD/Iber   2/25/2025 14:51
         solucion a tu pregunta con el ejemplo cruce_test   Enrique Escolano 2/25/2025 15:23