Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > Как создать пружину/демпфер в Abaqus?(с использованием Python)

Как создать пружину/демпфер в Abaqus?(с использованием Python)

Ответ
Поиск в этой теме
Непрочитано 11.11.2014, 02:40 #1
Как создать пружину/демпфер в Abaqus?(с использованием Python)
ИванМоскалев
 
Регистрация: 08.10.2013
Сообщений: 45

Добрый день. При написании программы наткнулся на одну проблему, над которой очень долго мучаюсь и не могу придумать выхода из нее.
Вот код программы. Кратко суть программы в том, что она создает стержень, закрепленный снизу,задается переменное(в тексте оно постоянное) ускорения и осуществляется динамический расчет. Но мне нужно запихать еще сюда демпфер. И вот тут начинается проблема. Когда пытаюсь присвоить переменным значения этих точек, то первая точка ReferencePoint-находится и все хорошо с ней, но вот вторую точку не могу присвоить и все тут! Подскажите, пожалуйста, что делать дальше..буду очень благодарен!
Ошибка в выделенной строке следующая:"TypeError: xVertices; found Vertex, expecting GeomSequence"


from abaqus import *
from part import *
from material import *
from section import *
from assembly import *
from step import *
from amplitude import *
from interaction import *
from abaqusConstants import *
from load import *
from mesh import *
from job import *
from sketch import *
from visualization import *
from connectorBehavior import *
from xyPlot import *
mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=20.0)
mdb.models['Model-1'].sketches['__profile__'].Line(point1=(0, -1.0),point2=(0.0,0.0))
mdb.models['Model-1'].Part(dimensionality=TWO_D_PLANAR, name='Part-1', type=DEFORMABLE_BODY)
mdb.models['Model-1'].parts['Part-1'].BaseWire(sketch=mdb.models['Model-1'].sketches['__profile__'])
mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((100000,0.32), ))
mdb.models['Model-1'].RectangularProfile(name='Profile-1',a=1,b=1)
mdb.models['Model-1'].BeamSection(name='Section-1', integration=DURING_ANALYSIS, profile='Profile-1', material='Material-1')
et=mdb.models['Model-1'].parts['Part-1'].edges.findAt(((0.0,-0.5,0.0),))
rew = Region(edges=et)
mdb.models['Model-1'].parts['Part-1'].SectionAssignment(region=rew, sectionName='Section-1')
elemType=ElemType(elemCode=B21,elemLibrary=STANDARD)
mdb.models['Model-1'].parts['Part-1'].setElementType(elemTypes=(elemType,), regions=rew)
mdb.models['Model-1'].parts['Part-1'].seedPart(size=1)
mdb.models['Model-1'].parts['Part-1'].generateMesh()
myViewport = session.Viewport(name='Cantilever Beam Example',origin=(20, 20), width=150, height=120)
myAssembly = mdb.models['Model-1'].rootAssembly
#myViewport.assemblyDisplay.setValues(mesh=ON)
#myViewport.assemblyDisplay.meshOptions.setValues(meshTechnique=ON)
#myViewport.setValues(displayedObject=myAssembly)
mdb.models['Model-1'].ImplicitDynamicsStep(name='Step-1',previous='Initial',timePeriod=30,timeIncrementationMethod=FIXED,maxNumInc=600,initialInc=0.05)
myAssembly = mdb.models['Model-1'].rootAssembly
myInstance = myAssembly.Instance(name='beamInstance',part=mdb.models['Model-1'].parts['Part-1'], dependent=ON)
Bassse = myInstance.vertices.findAt(((0.0,-1.0,0.0),))
bassse = Region(vertices=Bassse)
mdb.models['Model-1'].EncastreBC(name='FixBase',createStepName='Step-1',region=bassse)
mass = myInstance.vertices.findAt(((0.0,0.0,0.0),))
Ma = Region(vertices=mass)
mdb.models['Model-1'].rootAssembly.engineeringFeatures.PointMassInertia(name='mass-1',region=Ma,mass2=1000)
mdb.models['Model-1'].parts['Part-1'].ReferencePoint(point=(0.0,-1.0,0.0))
fi = mdb.models['Model-1'].parts['Part-1'].referencePoints.findAt(((0.0,-1.0,0.0)))
Fi = Region(referencePoints=((fi),))
tw = mdb.models['Model-1'].parts['Part-1'].vertices.findAt(((0.0,0.0,0.0)))
Tw = Region(xVertices=tw)
myAssembly.engineeringFeatures.TwoPointSpringDashpot(axis=NODAL_LINE, name='Springs/Dashpots-1', regionPairs=(Fi,Tw), springStiffness=216.0)
Просмотров: 5642
 
Непрочитано 11.11.2014, 13:52
#2
metod


 
Регистрация: 09.10.2007
Москва
Сообщений: 451


А что данная задача не может быть сделана в CAE?
metod вне форума  
 
Непрочитано 11.11.2014, 14:13
#3
Dmitry88

Конструирование, проектирование и расчеты
 
Регистрация: 10.06.2014
Москва
Сообщений: 85


Человек сам себе усложняет решение задачи.))
Dmitry88 вне форума  
 
Автор темы   Непрочитано 11.11.2014, 16:50
#4
ИванМоскалев


 
Регистрация: 08.10.2013
Сообщений: 45


Цитата:
Сообщение от Dmitry88 Посмотреть сообщение
Человек сам себе усложняет решение задачи.))


Дело в том, что нужно будет перебрать около 500 различных жесткостей этой системы и параметров воздействий и вручную выполнять такое количество однообразных расчетов достаточно утомительно и проще написать маленькую программку


----- добавлено через ~39 мин. -----
Цитата:
Сообщение от metod Посмотреть сообщение
А что данная задача не может быть сделана в CAE?
ответил выше

Последний раз редактировалось ИванМоскалев, 11.11.2014 в 17:29.
ИванМоскалев вне форума  
 
Непрочитано 11.11.2014, 21:15
#5
metod


 
Регистрация: 09.10.2007
Москва
Сообщений: 451


ну так получается, что должно быть 500 запусков CAE?
metod вне форума  
 
Непрочитано 11.11.2014, 21:56
#6
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


ansys apdl?
СергейД вне форума  
 
Непрочитано 11.11.2014, 22:10
#7
Meknotek

Проектирование заборов уже в прошлом
 
Регистрация: 29.10.2009
Рязань
Сообщений: 2,089


Побуду немного "кэпом", но функция(конструктор) ждет аргумент типа GeomSequence, а не объект типа Vertex (если я правильно понял из документации, Vertex - одиночная вершина, а GeomSequence - последовательность объектов (в т.ч. вершин). vertices - как раз и есть экземпляр субкласса GeomSequences, метод которого (findAt) похоже возвращает одиночный Vertex

причем парой строк выше Вы для Region задаете параметр в виде кортежа из одного элемента, может тут аналогично нужно?

Последний раз редактировалось Meknotek, 11.11.2014 в 22:35.
Meknotek вне форума  
 
Автор темы   Непрочитано 11.11.2014, 22:52
#8
ИванМоскалев


 
Регистрация: 08.10.2013
Сообщений: 45


Так-то логично то,что Вы говорите,но я пробовал изначально vertices, но тогда он пишет что не найдено такого объекта,вот я и перепробовал кучу всяких возможных вариантов. Пробовал еще создать вторую ReferencePoint(ее можно создать),но потом когда ищу ее снова ничего не находит.

----- добавлено через 39 сек. -----
Цитата:
Сообщение от Meknotek Посмотреть сообщение
Побуду немного "кэпом", но функция(конструктор) ждет аргумент типа GeomSequence, а не объект типа Vertex (если я правильно понял из документации, Vertex - одиночная вершина, а GeomSequence - последовательность объектов (в т.ч. вершин). vertices - как раз и есть экземпляр субкласса GeomSequences, метод которого (findAt) похоже возвращает одиночный Vertex

причем парой строк выше Вы для Region задаете параметр в виде кортежа из одного элемента, может тут аналогично нужно?
Так-то логично то,что Вы говорите,но он находит в этой точке объект Вертекс.Или я Вас не понял? Пробовал еще создать вторую ReferencePoint(ее можно создать),но потом когда ищу ее снова ничего не находит.

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от metod Посмотреть сообщение
ну так получается, что должно быть 500 запусков CAE?
Именно так,а то и больше.

Последний раз редактировалось ИванМоскалев, 11.11.2014 в 23:22.
ИванМоскалев вне форума  
 
Непрочитано 11.11.2014, 23:22
#9
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


все это проще сделать в ансис. была ситуация с вариантным просчетом модели в цикле около 11 тысяч раз.
на выходе был итоговый массив с основными результатами.
СергейД вне форума  
 
Непрочитано 11.11.2014, 23:37
#10
Meknotek

Проектирование заборов уже в прошлом
 
Регистрация: 29.10.2009
Рязань
Сообщений: 2,089


Цитата:
Сообщение от ИванМоскалев Посмотреть сообщение
Так-то логично то,что Вы говорите,но я пробовал изначально vertices, но тогда он пишет что не найдено такого объекта,вот я и перепробовал кучу всяких возможных вариантов. Пробовал еще создать вторую ReferencePoint(ее можно создать),но потом когда ищу ее снова ничего не находит..
Какие варианты Вы пробовали и какие ошибки Вам выдавал интерпретатор?
Meknotek вне форума  
 
Автор темы   Непрочитано 11.11.2014, 23:37
#11
ИванМоскалев


 
Регистрация: 08.10.2013
Сообщений: 45


Цитата:
Сообщение от СергейД Посмотреть сообщение
все это проще сделать в ансис. была ситуация с вариантным просчетом модели в цикле около 11 тысяч раз.
на выходе был итоговый массив с основными результатами.
Не спорю!Но лицензия есть только на Абакус

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от Meknotek Посмотреть сообщение
Какие варианты Вы пробовали и какие ошибки Вам выдавал интерпретатор?
Вот сейчас сделал так:
tw = mdb.models['Model-1'].parts['Part-1'].vertices.findAt(((0.0,0.0,0.0)))
Tw = Region(vertices=tw)

Выдает:"TypeError: vertices; found Vertex, expecting GeomSequence"

Потом через RP

myAssembly.ReferencePoint(point=(0.0,0.0,0.0))
k=myInstance.referencePoints.findAt(((0.0,0.0,0.0)))
Ki = Region(referencePoints=((k),))


Выдает:"TypeError: referencePoints[0]; found None, expecting tuple"

Так пробовал.Больше ничего не смог придумать.
ИванМоскалев вне форума  
 
Непрочитано 11.11.2014, 23:48
#12
Meknotek

Проектирование заборов уже в прошлом
 
Регистрация: 29.10.2009
Рязань
Сообщений: 2,089


Цитата:
Сообщение от ИванМоскалев Посмотреть сообщение
Вот сейчас сделал так:
tw = mdb.models['Model-1'].parts['Part-1'].vertices.findAt(((0.0,0.0,0.0)))
Tw = Region(vertices=tw)

Выдает:"TypeError: vertices; found Vertex, expecting GeomSequence"
а если попробовать:
Tw = Region(vertices=(tw,))
?
Цитата:
Сообщение от ИванМоскалев Посмотреть сообщение
Потом через RP
myAssembly.ReferencePoint(point=(0.0,0.0,0.0))
k=myInstance.referencePoints.findAt(((0.0,0.0,0.0)))
Ki = Region(referencePoints=((k),))

Выдает:"TypeError: referencePoints[0]; found None, expecting tuple"
ну тут похоже переменная k почему-то равна None (findAt ничего не нашел?)
Meknotek вне форума  
 
Автор темы   Непрочитано 11.11.2014, 23:52
#13
ИванМоскалев


 
Регистрация: 08.10.2013
Сообщений: 45


Цитата:
Сообщение от Meknotek Посмотреть сообщение
а если попробовать:
Tw = Region(vertices=(tw,))
?

ну тут похоже переменная k почему-то равна None (findAt ничего не нашел?)
Получается что так..Просто создать точку вот таким образом:"mdb.models['Model-1'].parts['Part-1'].referencePoints.findAt(((0.0,-1.0,0.0)))" можно только один раз, поэтому я создаю ее через rootAssembly и т.д. и ищу ее там же,но не пойму почему он не находит ничего. А если через обычный vertices,то находит Vertex и его не взять ни xVertices ни просто vertices. Какая-то странная ситуация на самом деле

В случае
tw = mdb.models['Model-1'].parts['Part-1'].vertices.findAt(((0.0,0.0,0.0)))
Tw = Region(vertices=(tw,))


Отвечает:"TypeError: vertices; found tuple, expecting GeomSequence"

Последний раз редактировалось ИванМоскалев, 12.11.2014 в 00:03.
ИванМоскалев вне форума  
 
Непрочитано 12.11.2014, 00:06
#14
Meknotek

Проектирование заборов уже в прошлом
 
Регистрация: 29.10.2009
Рязань
Сообщений: 2,089


Цитата:
Сообщение от ИванМоскалев Посмотреть сообщение
В случае
tw = mdb.models['Model-1'].parts['Part-1'].vertices.findAt(((0.0,0.0,0.0)))
Tw = Region(vertices=(tw,))


Отвечает:"TypeError: vertices; found tuple, expecting GeomSequence"
а если передать ...vertices (напрямую) что выдаст?
Meknotek вне форума  
 
Автор темы   Непрочитано 12.11.2014, 00:10
#15
ИванМоскалев


 
Регистрация: 08.10.2013
Сообщений: 45


Цитата:
Сообщение от Meknotek Посмотреть сообщение
а если передать ...vertices (напрямую) что выдаст?
Не понял Вас??Как понять напрямую?
ИванМоскалев вне форума  
 
Непрочитано 12.11.2014, 00:39
#16
Meknotek

Проектирование заборов уже в прошлом
 
Регистрация: 29.10.2009
Рязань
Сообщений: 2,089


Я например попробовал так:
tw = mdb.models['Model-1'].parts['Part-1'].vertices[0:1]
(просто чтобы получить последовательность из одного Vertex)

все равно дальше не идет
Meknotek вне форума  
 
Автор темы   Непрочитано 12.11.2014, 01:24
#17
ИванМоскалев


 
Регистрация: 08.10.2013
Сообщений: 45


Цитата:
Сообщение от Meknotek Посмотреть сообщение
Я например попробовал так:
tw = mdb.models['Model-1'].parts['Part-1'].vertices[0:1]
(просто чтобы получить последовательность из одного Vertex)

все равно дальше не идет
Сделал вот таким образом еще:

myAssembly.engineeringFeatures.TwoPointSpringDashpot(axis=NODAL_LINE,dashpotBehavior=OFF, dashpotCoefficient=0.0, name='Springs/Dashpots-1', regionPairs=((Ma,Fi),),springBehavior=ON , springStiffness=216.0)

Ma-Раньше найдена.

Но отвечает:"AbaqusException: No valid region pairs have been supplied for the springs/dashpots."
ИванМоскалев вне форума  
 
Непрочитано 12.11.2014, 01:53
#18
Meknotek

Проектирование заборов уже в прошлом
 
Регистрация: 29.10.2009
Рязань
Сообщений: 2,089


У Вас fi получается "пустым" набором. Так и должно быть?
>>>print fi
({})
Meknotek вне форума  
 
Автор темы   Непрочитано 12.11.2014, 02:23
#19
ИванМоскалев


 
Регистрация: 08.10.2013
Сообщений: 45


Цитата:
Сообщение от Meknotek Посмотреть сообщение
У Вас fi получается "пустым" набором. Так и должно быть?
>>>print fi
({})
О!!!!Спасибо огромное!На самом деле это я с дуру начал вводить RP,хотя можно было обойтись уже найденными точками!В итоге сделал вот так:

myAssembly.engineeringFeatures.TwoPointSpringDashpot(axis=NODAL_LINE,dashpotBehavior=OFF, dashpotCoefficient=0.0, name='Springs/Dashpots-1', regionPairs=((Ma,bassse),),springBehavior=ON , springStiffness=216.0)

Спасибо Вам огромнейшее,что повозились со мной!
ИванМоскалев вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > Как создать пружину/демпфер в Abaqus?(с использованием Python)

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в лире 9.6 r3 создать схему с использованием пластических шарниров (к примеру в обычной раме) BoykoD1 Лира / Лира-САПР 2 10.03.2011 17:35
Как создать маркер c использованием acadЛИСП? Serge_BN LISP 25 15.09.2009 09:14