Как применить сценарий модели Abaqus?Python

Программы на Python
Anonymous
Как применить сценарий модели Abaqus?

Сообщение Anonymous »

Я написал пользовательский сценарий Abaqus python, который определяет структуру пирса, состоящую из луча, колонны и основания с использованием твердых экстразий. Сценарий успешно создает эти части, но я не уверен, как правильно применить к ним сетку.

Код: Выделить всё

def create_beam(model, beam_length, beam_width, beam_height):
beam_sketch = model.ConstrainedSketch(name='BeamSketch', sheetSize=50.0)
beam_sketch.rectangle(point1=(0.0, 0.0), point2=(beam_length, beam_width))
beam_part = model.Part(name='Beam', dimensionality=THREE_D, type=DEFORMABLE_BODY)
beam_part.BaseSolidExtrude(sketch=beam_sketch, depth=beam_height)
return beam_part
< /code>
Я хочу применить сетку к каждой части, обеспечивая правильный выбор типа элемента и элементы управления сеткой для точных результатов моделирования. < /p>
Сценарий следует за этими структурированными шагами. : < /p>

[*]  [b] импорт, требуемые модули abaqus < /strong> < /p>
< /li>

< li>   определить ключевые геометрические параметры [/b] 

[*]  [b] Создайте модель и назначьте ей имя ('PierModel'
) [/b]

[*] Создание деталей (балки, столбцы и основания) с использованием выделенных функций

[*] собирать пирс, позиционируя компоненты [/b]
< br/> [*] Примените сетку ко всем частям (это область, где мне нужна помощь)


параметры ключей в скрипте < /strong> < /h3>

Код: Выделить всё

beam_length = 24.0 # Length of the
beam beam_height = 5.0 # Height of the beam
beam_width = 6.0 # Width of the beam column_radius = 2.0 # Radius of each column
column_height = 20.0# Height of each column base_length = 8.0 # Length of each base
base_width = 4.0 # Width of each base
base_height = 4.0 # Height of each base
< /code>
Модель следует стандартным методам создания и сборки деталей Abaqus. Ниже приведен разбивка каждой функции. < /P>

  пошаговый разбил кода < /strong> < /h2>
  1. Создание луча [/b] 
beam [b] [/b] создается с использованием прямоугольного эскиза и экструдирован до его высоты. 
def create_beam(model, beam_length, beam_width, beam_height): beam_sketch = model.ConstrainedSketch(name='BeamSketch', sheetSize=50.0) beam_sketch.rectangle(point1=(0.0, 0.0), point2=(beam_length, beam_width)) beam_part = model.Part(name='Beam', dimensionality=THREE_D, type=DEFORMABLE_BODY) beam_part.BaseSolidExtrude(sketch=beam_sketch, depth=beam_height) return beam_part
🔹 Вопрос: какова лучшая стратегия сетки для прямоугольного твердого луча для обеспечения точного структурного анализа? < Br />
2. Создание столбцов
Колонны являются цилиндрическими и создаются с использованием экструдированного экранизации круговой эскизы.

Код: Выделить всё

def create_column(model, column_radius, column_height): column_sketch = model.ConstrainedSketch(name='ColumnSketch', sheetSize=50.0) column_sketch.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(column_radius, 0.0)) column_part = model.Part(name='Column', dimensionality=THREE_D, type=DEFORMABLE_BODY) column_part.BaseSolidExtrude(sketch=column_sketch, depth=column_height) return column_part
🔹 Вопрос: Должен ли я использовать тетраэдрические или гексаэдрические элементы для цилиндрических столбцов Meshing? Как я могу обеспечить однородное распределение сетки < /strong> для точных результатов? < /P>

3. Создание базы
База - еще одно прямоугольное твердое вещество, которое служит основой структуры.

Код: Выделить всё

def create_base(model, base_length, base_width, base_height): base_sketch = model.ConstrainedSketch(name='BaseSketch', sheetSize=50.0) base_sketch.rectangle(point1=(0.0, 0.0), point2=(base_length, base_width)) base_part = model.Part(name='Base', dimensionality=THREE_D, type=DEFORMABLE_BODY) base_part.BaseSolidExtrude(sketch=base_sketch, depth=base_height) return base_part
🔹 Вопрос: Какой подход сетки следует использовать для прямоугольных оснований для обеспечения стабильности при загрузке?

4. Сборка компонентов пирса
Затем части расположены и собираются правильно.

Код: Выделить всё

def assemble_pier(model, beam, columns, bases): assembly = model.rootAssembly assembly.DatumCsysByDefault(CARTESIAN) # Create instances beam_instance = assembly.Instance(name='Beam-1', part=beam, dependent=ON) column_instance_1 = assembly.Instance(name='Column-1', part=columns, dependent=ON) column_instance_2 = assembly.Instance(name='Column-2', part=columns, dependent=ON) base_instance_1 = assembly.Instance(name='Base-1', part=bases, dependent=ON) base_instance_2 = assembly.Instance(name='Base-2', part=bases, dependent=ON) # Position columns column_instance_1.translate(vector=(5, 0, 0)) column_instance_2.translate(vector=(19, 0, 0)) # Position beam beam_instance.translate(vector=(0, 0, column_height)) # Position bases base_instance_1.translate(vector=(5, 0, -base_height)) base_instance_2.translate(vector=(19, 0, -base_height)) return assembly
🔹 Вопрос: должен ли мне применять ограничения связывания между компонентами, чтобы обеспечить правильную передачу нагрузки?

текущая реализация Meshing < /strong> < /h2>
Вот как я сейчас пытаюсь meshing < /strong >: < /p>

Код: Выделить всё

def mesh_parts(model, beam, columns, bases, mesh_size=1.0): for part in [beam, columns, bases]: part.seedPart(size=mesh_size, deviationFactor=0.1, minSizeFactor=0.1) part.setMeshControls(regions=part.cells, elemShape=TET, technique=FREE) part.generateMesh()
< /code>
🔹  Проблемы с текущей сеткой: < /strong> < /p>

[*]   control Control Стратегия: [/b] я использую элементы tet 
с помощью метода Free , но я не уверен, лучший ли это подход.
< br/> [*] hex vs. tet Элементы: я должен попытаться структурированная сетка для луча и оснований?

column meshing: Поскольку столбец цилиндрический, я должен использовать Swept Meshing вместо свободного сетки? br/>
[*] Оптимизация размера сетки: mesh_size = 1.0 слишком грубо или слишком хорошо для этого типа структуры?
< /li>
< /ol>
Что я пробовал: < /strong> < /p>
Я попытался Используйте SeedPart () и generatemesh () , но я не уверен в лучших настройках для размера элемента и типа. () < /code>, но я не уверен в том, как правильно настроить сетку для цилиндрических и прямоугольных твердых веществ.
Pier Model Unceshed < /p>
Что я Нужна помощь с: < /strong> < /p>
  • Как мне определить настройки сетки как для прямоугольных, так и для цилиндрических твердых веществ? < /Li>
    Как лучше всего указать тип элемента для структурного анализа? Пример кода для правильного разъединения моего луча, столбца и базы в сценариях Abaqus Python был бы очень признателен! Стратегии Meshing
    для моей модели пирса моста в Абакусе. Любое понимание выбора типа элемента, методов уточнения сетки или альтернативных подходов было бы невероятно ценным.


Подробнее здесь: https://stackoverflow.com/questions/794 ... del-script

Вернуться в «Python»