Сценарии Python в ABAQUS

У меня есть скрипт Python для создания модели ABAQUS и запуска задания.

Я хочу создать цикл над переменной

Индекс =1:1:4,

создайте четыре разные модели и запустите четыре задания для каждой модели.

Модель называется Model-1, например, в следующей строке:

##-----------------------------------------------------------------------
mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=sqrlen) 
##-----------------------------------------------------------------------

При создании цикла я создаю строку следующим образом:

##-----------------------------------------------------------------------
index='1'
modelname='\''+'Model' + index+ '\'' 

# Square Part is created
mdb.models[modelname].ConstrainedSketch(name='__profile__', sheetSize=sqrlen)
##------------------------------------------------------------------------- 

Когда я запускаю скрипт в ABAQUS, он выдает ошибку, говорящую "Model1" следующим образом:

##------------------------------------------------------------------------- 

  File "d:/abaqus_working_directory/scripting_example/simulation/scripting_loop.py", line 22, in <module>
    mdb.models[modelname].ConstrainedSketch(name='__profile__', sheetSize=sqrlen)  #### sqrlen
KeyError: 'Model1'
Exit from main file  [Kernel]: d:/abaqus_working_directory/scripting_example/simulation/scripting_loop.py
##------------------------------------------------------------------------- 

Я хочу использовать строковое имя модели (со значением = "Модель-1") вместо написания "Модель-1" в скрипте Python

mdb.models['Model-1'].ConstrainedSketch(name=....)
mdb.models[modelname].ConstrainedSketch(name=...)

когда это называется.

Любая помощь высоко ценится.

С уважением, Я.

2 ответа

Вы смешиваете два разных имени, Model-1 а также Model1

В создании цикла включите - в modelname, Вы можете сделать что-то вроде этого:

##-----------------------------------------------------------------------
index='1'
modelname='\''+'Model-' + index+ '\'' 

# Square Part is created
mdb.models[modelname].ConstrainedSketch(name='__profile__', sheetSize=sqrlen)
##------------------------------------------------------------------------- 

Кроме того, вы должны использовать

modelname='Model-' + index

так как это даст вам строку без лишних кавычек.

Не работать с именами строк вообще. В начале сценария определите:

 model=mdb.models['Model-1']

тогда сделайте например:

 model.ConstrainedSketch..

если вы работаете с несколькими моделями, аналогичным образом создайте список объектов модели.

Другие вопросы по тегам