Cómo usar caracteres especiales en Abaqus/Scripting

Escrito por Miguel

6 Feb, 2021

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!

Puedes descargar mi GUÍA GRATUITA

«LAS 5 CLAVES PARA DOMINAR ABAQUS CON PYTHON»

¡DESCARGAR GUÍA AHORA!

Quizás también te interese…

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada.

Los datos de carácter personal que se proporcionan rellenando el presente formulario serán tratados por la Escuela TecnoDigital como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que se solicitan es la gestión de los comentarios realizados en este blog.
Legitimación: Consentimiento del interesado. No se podrá atender la solicitud si no se introducen los datos de carácter personal que aparecen en el formulario como obligatorios.
Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir tus datos a través de media@escuelatecnodigital.com, así como el derecho a presentar una reclamación ante una autoridad de control.
Puedes consultar la información adicional y detallada sobre Protección de Datos en mi página web: https://escuelatecnodigital.com, así como consultar la política de privacidad.