Код: Выделить всё
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]
< 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
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
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 < 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