Fuera del mundo anglosajón es habitual el uso de los llamados caracteres especiales. En español, algunos de los caracteres especiales más habituales son las vocales acentuadas (á, é, í, ó, ú) y la ñ.
Por lo general, siempre que trabajamos con software, ya sea de simulación o de cualquier otra especialidad, se recomienda encarecidamente evitar caracteres especiales y ceñirse exclusivamente a los 128 primeros caracteres de la tabla ASCII (no extendida). En caso contrario, la aplicación no reconocerá dichos caracteres y tendremos un comportamiento inesperado.
Caracteres especiales en Abaqus
Abaqus no permite el uso directo de caracteres especiales, es decir, no podemos llamar a nuestro modelo «Máquina«, ya que no reconocerá el carácter ‘á‘. Igualmente, no podremos utilizar caracteres especiales al nombrar ningún objeto como: parts, sets, surfaces, materials, sections, instances, jobs… Para más detalles sobre las restricciones en los nombres de los objetos en Abaqus aquí tienes un enlace a la documentación
En cambio, sí podemos utilizar rutas que contengan caracteres especiales. Supongamos que utilizamos un script de Python en el que empezamos creando una carpeta que utilizaremos como directorio de trabajo:
Python
# Usual imports to run Abaqus from abaqus import * from abaqusConstants import * from caeModules import * from driverUtils import executeOnCaeStartup import os executeOnCaeStartup() # Create new directory and use it as working directory wdir = 'Análisis_máquina_año2020' # Create folder if it does not exist yet if not os.path.exists(wdir): os.makedirs(wdir) # Set working directory in Abaqus os.chdir(wdir)
Con este script creamos una nueva carpeta en el directorio actual, siempre que no exista previamente. Y a continuación, establecemos el directorio de trabajo de Abaqus en dicha carpeta. Sin embargo, este script no funcionará porque el string wdir contiene caracteres especiales (á y ñ). Para resolverlo debemos introducir dos modificaciones:
Python
# -*- coding: utf-8 -*- # Usual imports to run Abaqus from abaqus import * from abaqusConstants import * from caeModules import * from driverUtils import executeOnCaeStartup import os executeOnCaeStartup() # Create new directory and use it as working directory wdir = u'Análisis_máquina_año2020' # Create folder if it does not exist yet if not os.path.exists(wdir): os.makedirs(wdir) # Set working directory in Abaqus os.chdir(wdir)
En primer lugar, indicamos al intérprete de Python que el script utiliza la codificación utf-8 en la línea número 1, es decir, podemos incluir caracteres de la clasificación Unicode (mucho más extensa que ASCII y contiene los caracteres especiales que nos interesan). En segundo lugar, al definir el string wdir, le indicamos que utiliza caracteres Unicode añadiendo la letra u antes de la primera comilla. El uso de comillas simples o dobles no supone ninguna diferencia. Con estas modificaciones, el script funcionará como esperamos.
Especificar rutas de Windows en scripts
Al trabajar con rutas de directorios de Windows en scripts en Python, no sólo para Abaqus, nos vemos obligados a utilizar el caracter ‘\’ (backslash). Sin embargo, en Python el backslash está reservado para representar ‘escape characters’, que son caracteres con otra utilidad dentro de Python. Los escape characters están formados por el backslash \ seguido de uno o más caracteres, como por ejemplo, el salto de línea (\n), las comillas dobles (\"), las comillas simples (\’), e incluso el propio backslash (\\).
Con lo cual, para escribir la ruta de un directorio en Windows en un string de Python lo haremos de la siguiente forma:
Python
wdir = u'D:\\ABAQUS\\Análisis_máquina_año2020'
Donde tendríamos el símbolo \, habrá que escribir \\.
En caso de no utilizar caracteres especiales, podríamos no indicar que se trata de un string Unicode (u), y en su lugar especificar que es un ‘raw string’ (r). En este tipo de strings no se interpretan los escape characters, con lo cual podríamos escribirlo como:
Python
# Raw string wdir = r'D:\ABAQUS\Analisis_maquina_2020' # Equivalent regular string wdir2 = 'D:\\ABAQUS\\Analisis_maquina_2020'
¡Espero que estos consejos te sirvan de ayuda!
0 comentarios