Soporte al Usuario de COSMOS/™ -- Nota Técnica Nº G17

Macros de Usuario para Geostar

Productos: COSMOS/M GEOSTAR
Versión: Todas las Versiones
Categoría: Preprocesado
Ultima revisión: Diciembre-2003


Las siguientes Macros son un ejemplo de la total automatización que se puede realizar con GEOSTAR. Si tienes una Macro interesante y la quieres compartir con el resto de usuarios de GEOSTAR envíanosla y encantados la publicaremos en esta página. Para utilizar las macros simplemente copiar y pegar el texto de la macro en un fichero creado con el Block de Notas y leer la macro en GEOSTAR con la orden FILE.

 

1. Creación Automática de Puntos (PT) en Nodos:
Esta Macro utiliza la orden PTND para crear automáticamente un Punto (PT) en la posición de cada uno de los nodos incluidos en una selección. Esta macro se creó en su día porque necesitaba generar elementos TRUSS3D a partir de una selección de nodos. Lo más sencillo es colocar un PT en cada nodo y a continuación generar curvas por extrusión con la orden CREXTR y finalmente mallar las curvas con elementos TRUSS3D con la orden M_CR ...

C*
C* Esta MACRO crea automáticamente PTs en una selección de nodos.
C*
C* Pasos a seguir:
C*     1. Incluir los nodes en un Set de Selección
C*     (usar SELWIN, SELREF, etc..).
C*     2. Grabar la macro en el directorio de trabajo como "
macro_pt2nd.GEO".
C*     3. Ejecutar la macro con "
FILE,macro_pt2nd.GEO".
C*
PARASSIGN,i,INT,1
#LOOP ENDLABEL NDMAX
  #IF (LISTSEL(ND|i))
    PTND,,i
  #ENDIF
  PARASSIGN,i,INT,i+1
#LABEL ENDLABEL

 

2. Definición Automática de Grados de Libertad Acoplados (CPDOF):
La siguiente Macro utiliza la orden CPDOF para acoplar automáticamente Grados de Libertad de Desplazamiento de Translación o Rotación (UX, UY, UZ, RX, RY, RZ) o Temperatura (TEMP) entre un nodo "maestro" y los nodos incluidos en un Set de Selección activo. La macro crea un set por cada GDL y por cada uno de los nodos de la selección. Para asignar más GDL a cada nodo simplemente editar la macro y modificar el Grado de Libertad que se desee y ejecutar de nuevo la Macro. Al finalizar ejecutar la orden CPDOFLIST para listar todos los Grados de Liberta acoplados.

C*****
C***** Esta MACRO crea automáticamente Grados de Libertad acoplados entre nodos.
C***** Nótese que el máximo nº de sets de acoplamiento soportados por CPDOF en
C***** "Geostar 64K" es de 10.000 sets.
C*****
C*****
C***** Pasos a seguir:
C*****     1. Incluir TODOS los nodes a acoplar en un Set de Selección
C*****     (usar SELWIN, SELREF, etc..).
C*****     2. Asignar a la variable "MASTER" el nº del nodo maestro.
C*****     3. En la orden CPDOF editar el GDL a acoplar (UX, UY, UZ, RX, RY, TZ, TEMP).
C*****     4. Grabar el fichero en el directorio de trabajo como "
macro_cpdof.GEO".
C*****     5. Ejecutar la macro con "
FILE,macro_cpdof.GEO".
C*****
C***** Asignar el nº del nodo maestro a la variable "MASTER".
C*****
PARASSIGN,MASTER,INT,xx
PARASSIGN,ICOUNT,INT,1
#LOOP ENDLABEL NDMAX
#IF (LISTSEL(ND|ICOUNT) && ICOUNT != MASTER)
C*****
C***** Definir el GDL a acoplar
C*****
CPDOF,,UX,2,MASTER,ICOUNT
#ENDIF
PARASSIGN,ICOUNT,INT,ICOUNT+1
#LABEL ENDLABEL

 

3. Mover un grupo de nodos radialmente alrededor de un eje:
Esta macro utiliza la orden NMODIFY para modificar las coordenadas de TODOS los nodos incluidos en una selección moviéndolos de forma relativa desde su posición actual a una nueva posición definida en coordenadas cilíndricas modificando automáticamente el valor de la coordenada-X (es decir, el radio) de cada nodo.

Las siguientes imágenes muestran el funcionamiento de la Macro: primero se crea una selección de nodos. A continuación se define un sistema de coordenadas cilíndricas con el eje-X (radio) orientado correctamente. Y por último se edita la macro definiendo los valores CSYS y RADIUS con la etiqueta del sistema de coordenadas cilíndrico y la distancia (es deicr, el radio) a la que se desea queden todos los nodos situados respecto al eje-Z local:


Modelo original antes de ejecutar la Macro

 


Estado del Modelo tras ejecutar la Macro

 

C*----------------------------------------------------------------
C*  This macro force selected nodes to be exactly located at a

C*   specified distance from an axis. The nodes should be

C*   selected and the selection set activated prior to running

C*   this macro. Also, the proper cylindrical coordinate system

C*   should have been defined and activated
C*    
C*  Created:  March 20, 2003
C*    by:  Joerg Martienssen
C*  Last revised:  March 20, 2003
C*    by:  Julien Boissat
C*----------------------------------------------------------------


PARASSIGN,CSYS,INT,XX;  C* Definir el sistema de Coordenadas Cilíndricas.
PARASSIGN,RADIUS,REAL,
XX;  C* Definir la distancia (el Radio) donde se moverán los nodos.
PARASSIGN,K,INT,0,
#LOOP LP1 NDMAX
 PARASSIGN,K,int,K+1,
 #if (EXIST(ND|k) && listsel(ND|k))
    NMODIFY,k,k,1,0,radius,YND(k|csys),ZND(k|csys),csys
 #endif
#LABEL LP1

 

4. Cálculo de la Energía Total de Deformación de un grupo de elementos:
Esta Macro calcula la Energía Total de Deformación Unitaria así como la Densidad de Energía de Deformación Unitaria y el Volumen de la selección de elementos activa. Aunque el valor de la Energía Total de Deformación Unitaria aparece escrito al final del fichero .OUT, es interesante disponer de esta macro como herramienta alternativa en caso de tener que calcular la energía total de deformación de unos pocos elementos en vez del modelo completo.

C*----------------------------------------------------------------
C* Compute total strain energy of elements for load case 1
C* in selected elements.
C*  Created by:  Ruben Bons
C*----------------------------------------------------------------

PARASSIGN,STRENERGY,REAL,0
PARASSIGN,i,INT,0
#loop lp1 elmax
  PARASSIGN,i,INT,i+1
  #if ( EXIST(EL|I) && LISTSEL(EL|I) )
    PARASSIGN,VOL,REAL,Volume(I)
    PARASSIGN,STRDENS,REAL,SED(1|I)
    PARASSIGN,STRENERGY,REAL,(Strenergy + (Vol*Strdens))
  #endif
#label lp1
 

Ir a la Página de Inicio

Productos | Soporte | Descargas | Consultoría | Formación | Conferencias | Noticias | Libros | Links

Copyright © 2001 Ibérica de Ingeniería, Simulación y Análisis, S.L. -- http://www.iberisa.com --
Revisado: jueves, 14 febrero 2008.