Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Также был разработан модуль для Sigma, обеспечивающий поддержку препроцессора без необходимости исключения возможности программной реализации граничных условий. Этот модуль будет включен в следующую стабильную сборку Sigma

Импорт из Sigma

В препроцессоре реализована возможность импорта пластины из Sigma. Импорт происходит путем чтения информации о модели из. sfm файла, используемого Sigma.

Так как пластине в Sigma хранится уже с разбиением на зоны, это разбиение также импортируется в препроцессор. Однако ничто не мешает пользователю удалить имеющиеся зоны и задать собственное разбиение (возможно, предварительно изменив геометрию пластины).

Ниже представлен пример импорта пластины из Sigma.


Представление модели в Sigma

Представление модели в препроцессоре


Модуль визуализации

Важную роль в такой системе как препроцессор играют средства визуализации модели: на экране пользователя могут одновременно отображаться тысячи конечных элементов со своими номерами, свойствами и даже с номерами узлов. Прибавить к этому нагрузки, закрепления, сетку координат – на модуль визуализации ложится сложная задача отображения такого количества графических элементов. Стандартная для WinForms библиотека отображения GDI+ показала свою непригодность для решения такого типа задач. К тому же необходимо было добиться плавного изменения картинки при масштабировании или перемещении модели.

Для этих целей был разработан специальный класс Visualizer, использующий библиотеку Tao Framework. Этот класс послужил инструментом для визуализации модели в препроцессоре, модуле триангуляции фронтальным методом и даже был интегрирован в систему Pandora для дальнейшей её разработки.

НЕ нашли? Не то? Что вы ищете?

Класс содержит методы для отображения всех типов объектов, используемых в препроцессоре. Приведем лишь некоторые из них, являющиеся по мнению автора основными:

DrawPointsArray: отображение всех типов точек/узлов;

DrawLinesArray: отображение всех типов прямых линий;

DrawArc: отрисовка дуги путем её интерполяции короткими отрезками;

DrawCircle: отрисовка окружности;

DrawArea: отрисовка зон пластины;

DrawString: визуализация текстовой строки;

DrawForces: визуализация нагрузок;

DrawBound: визуализация закреплений;

DrawElements: отображение сетки КЭ.

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

Быстродействие модуля обеспечивается за счет реализации буферной логики: каждая операция отображения заносится в память и хранится там до тех пор, пока не будет вызвана функция DrawRecord, которая и «выбрасывает» содержимое буфера на экран. Причем каждая операция визуализации имеет один из двух типов:

Визуализация геометрического объекта;

Визуализация объекта с наложением текстур (используется для отображения текста).

Каждая из этих операций использует свой тип данных для хранения данных.

Структура DrawingOperation

Структура используется для отображения геометрических объектов. Ниже приведена спецификация этой структуры.

private struct DrawingOperation

  {

  public int paramsList;

  public int mode;

  public float[] pts;

  public float[] cls;

  public int count;

  public DrawingOperation(int drawMode, float[] vertexCordArray, int paramsListId, float[] vertexColorArray = null)

  {

  cls = vertexColorArray;

  paramsList = paramsListId;

  mode = drawMode;

  count = vertexCordArray. Length / 2;

  pts = vertexCordArray;

  }

  }

По названию членов класса и параметров конструктора несложно догадаться об их назначении. Для отображения данных, хранимой в такой структуре, достаточно вызвать стандартный метод OpenGL для отрисовки массива объектов:

Gl. glDrawArrays(drawOp. mode, 0, drawOp. count);


Структура TexturedDrawingOperation

Структура используется для визуализации текстовых строк.

private struct TexturedDrawingOperation

  {

  public int texId;

  public float[] pts, tex;

  public int count;

  public TexturedDrawingOperation(int textureId, float[] vertexCordArray, float[] textureCordArray)

  {

  texId = textureId;

  count = vertexCordArray. Length / 2;

  pts = vertexCordArray;

  tex = textureCordArray;

  }

  }

Для визуализации строки с помощью такой структуры необходимо вызвать стандартный метод OpenGL для отрисовки объектов и указать необходимость использования буфера текстур:

Gl. glBindTexture(Gl. GL_TEXTURE_2D, tOp. texId);

Gl. glTexCoordPointer(2, Gl. GL_FLOAT, 0, tOp. tex);

Gl. glDrawArrays(Gl. GL_QUADS, 0, tOp. count);


Общий порядок действий при работе с препроцессором

Список использованной литературы Разработка обучающих подсистем САПР, , Учебное пособие, МАИ, Москва, 1990 Метод конечных элементов в технике, О. Зенкевич, Москва, "МИР", 1975 Метод конечных элементов. Основы, Р. Галлагер, Москва, "МИР", 1984 Метод конечных элементов и САПР, Ж.-К. Сабоннадьер, Ж.-Л. Кулон, "МИР", 1989 Разработка САПР. Проблемы и принципы создания САПР. 1 книга
, , Москва, "Высшая школа", 1990 Разработка САПР. Графические системы САПР. 7 книга
, Москва, "Высшая школа", 1990 Применение метода конечных элементов, Сегерлинд, Москва «МИР», 1979 Триангуляция Делоне и её применение, , Издательство Томского Университета, 2002 Вычислительная геометрия: триангуляция, 2008, http://rain. ifmo. ru/cat Разработка САПР. Лабораторный практикум на базе учебно-исследовательской САПР. 10 книга, , Москва, "Высшая школа", 1991 Методические указания к дипломному проектированию по курсу «Охрана труда», Москва, 1983 Охрана труда. – М.: Высшая школа, 1989. Безопасность жизнедеятельности. /Под ред. - М.: Знание, 2000 Безопасность жизнедеятельности. Общие вопросы БЖД в условиях производства и природные аспекты БЖД / ИГЭУ. Иваново, 2000. Безопасность жизнедеятельности.: Учеб. для вузов / , и др.; Под общ. Ред. , – М.: Высш. шк., 1999. Дипломные работы выпускников кафедры 609 МАИ: , «Моделирование систем. Конспект лекций», OpenGL Суперкнига, Третье издание, айт-мл. и Бенджамин Липчак, Москва 2006. http:///papers/triangulate/ : триангуляция Делоне методом Пола Бурка http://www. s-hull. org/ : триангуляция Делоне алгоритмом S-Hull http://ru. wikipedia. org/

ример подготовки исходных в препроцессоре с последующим расчетом в sigma.

Создадим новый проект, в результате появится следующее окно:


Нанесем опорные точки пластины с помощью управляющего элемента «добавить точки» и нажмем кнопку масштабирования «по центру»:

Соединим точки линиями, а с использованием точек 1,2 и 3 построим дугу. Для этого выберем точку 3 начальной точкой дуги, точку 2 – конечной, а точка 1 станет её центром:

Нанесем дополнительные точки и линии, чтобы обозначить конфигурацию зон:


Разобьем линии 1, 5, 15, 16 и 17, добавив на каждую из них по точке примерно по центру. Центры этих линий соединим отрезками:

Образуем 8 зон, кликнув по центру каждого из образовавшихся четырехугольников:

Получено разбиение на зоны. На этом этапе можно экспортировать модель в Sigma для расчет с использованием программного метода задания закрепления и наложения нагрузок. Сделаем же это!

Пластина рассчиталась корректно. Запомним максимальное эквивалентное напряжение: 14777,6; и вернемся в препроцессор.

Триангуляция пластины фронтальным методом.

Для этого откроем модуль триангуляции фронтальным методом.        Зададим в секции «Узлы» шаг 1.5 и нажмем кнопку «Равномерное        распределение. Можно увидеть, как узлы равномерно распределились        по границам зон:



Попробуем изменить функцию плотности, сгустив сетку в районах приложения нагрузок. В настройках выберем использование функции плотности, а значение функции плотности по умолчанию зададим равным 2:

Зададим функцию плотности со значением 0,5 и радиусом 5 в областях показанных на рисунке:



Наконец, нажмем кнопку «Построить» в секции «Сетка» и затем – кнопку «Сохранить сетку». В препроцессоре увидим результат своих стараний:

На этом этапе можно проанализировать сетку и при необходимости провести её оптимизацию. Но предположим, что сетка нас устраивает. Используя управляющий элемент «Закрепления», закрепим пластину как показано на рисунке:


Прикладываем нагрузки: при открытой форме нагрузок щелкаем по линиям 9 и 10. Указываем функцию нагрузки, остальные параметры пока не меняем. Нажимаем «добавить нагрузку»:

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10