Сценарии 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..
если вы работаете с несколькими моделями, аналогичным образом создайте список объектов модели.