2016-11-10 8 views
1

Я попытался подключить точки через провода, используя скрипт. Произошло предупреждение об ошибке NameError.Предупреждение NameError для wireType в ABAQUS

код я попытался запустить в Abaqus:

a = mdb.models['Model-1'].rootAssembly 
v11 = a.instances['r-mesh-2'].vertices 
v12 = a.instances['s-mesh-1'].vertices 
v13 = a.instances['r-mesh-1'].vertices 
v14 = a.instances['s-mesh-1-lin-2-1'].vertices 
a.WirePolyLine(points=((v11.findAt(coordinates=(2.595, 0.22, -35.7)), 
    v12.findAt(coordinates=(2.595, 0.2, -35.7))), (v11.findAt(coordinates=(
    2.445, 0.22, -35.7)), v12.findAt(coordinates=(2.445, 0.2, -35.7))), (
    v13.findAt(coordinates=(1.095, 0.22, -35.7)), v12.findAt(coordinates=(
    1.095, 0.2, -35.7))), (v13.findAt(coordinates=(0.945, 0.22, -35.7)), 
    v12.findAt(coordinates=(0.945, 0.2, -35.7))), (v11.findAt(coordinates=(
    2.595, 0.22, -35.1)), v14.findAt(coordinates=(2.595, 0.2, -35.1)))), 
    mergeType=IMPRINT, meshable=OFF) 
a = mdb.models['Model-1'].rootAssembly 
e1 = a.edges 
edges1 = e1.findAt(((2.595, 0.215, -35.1),), ((0.945, 0.215, -35.7),), ((
    1.095, 0.215, -35.7),), ((2.445, 0.215, -35.7),), ((2.595, 0.215, -35.7), 
    )) 
a.Set(edges=edges1, name='Wire-1-Set-1') 

Вот ошибка: NameError: имя «IMPRINT» не определен

В другой раз я намеренно изменил ту часть кода, как " mergeType = 'IMPRINT', тогда ошибка будет: TypeError: mergeType; найденная строка, ожидающая IMPRINT, MERGE или SEPARATE

Как решить проблему?

благодаря

ответ

2

Модуль дает вам ошибку, ожидая определенную константу из другого модуля. Импорт модуля с необходимыми константами:

from abaqusConstants import * 

Затем используйте mergeType=IMPRINT, ..., как вы уже делаете. Или вы могли бы избежать загрязнения пространства имен и псевдоним вместо этого:

import abaqusConstants as ac 

И затем использовать mergeType=ac.IMPRINT, ....

+0

Спасибо за ваше предложение! Я новичок в ABAQUS и Python, может быть много основ, о которых я не знаю. Поэтому я не уверен, правильно ли я это понимаю. Я сохранил первую часть кода в виде нового файла: ab.py. Затем выполните . И затем используйте mergeType = ab.IMPRINT, ... Теперь я получаю сообщение об ошибке . Каков правильный способ сделать это? – open0121

+0

Решенный! поставьте в верхней части кода ... – open0121

+0

Я рад слышать, что этот ответ решил проблему. Вы можете пометить ее как таковую для будущих пользователей, нажав галочку ниже ее оценки, чтобы принять ее. – TigerhawkT3