Справка по  ActiveField™ 

об ELCUT     Скачать     Контакты

Технология ActiveField
Обзор объектов
Диаграмма иерархии объектов
С чего начать: Объект Application
Как работать с задачами
Как работать с геометрической моделью
Как работать с физическими свойствами
Как анализировать результаты

Объекты

Свойства

Методы

Как работать с геометрической моделью

Работа с геометрической моделью и сеткой конечных элементов осуществляется при помощи объекта Model. Этот объект представляет документ геометрической модели. Для создания нового объекта Model используется метод Add соответствующей коллекции документов.

Dim ELC as ELCUT.Application
    ......
Dim mdl as ELCUT.Model
set mdl = ELC.Models.Add

Другой способ получения объекта Model , который выглядит более естественным, состоит в использовании одноименного свойства Model объекта Problem. Это свойство возвращает геометрическую модель, ассоциированную с задачей в том случае, если она была предварительно загружена в ELCUT. Загрузка модели соответствует выполнению команды Геометрическая модель в меню Задача или просто двойному щелчку мыши на строке Геометрическая модель в окне задачи при интерактивной работе с ELCUT.

В следующем примере создается пустой объект Model от только что созданной задачи:

Dim prbNew As ELCUT.Problem
Dim mdl As ELCUT.Model

Set prbNew = ELC.Problems.Add
prbNew.LoadModel
Set mdl = prbNew.Model

Открытие существующей модели выполняется аналогично. Мы можем проделать это либо при помощи метода Open коллекции моделей, либо используя свойство Model объекта Problem.

Геометрические объекты и коллекции

При работе с геометрической моделью используются следующие геометрические примитивы: вершины, ребра и блоки. Объектная модель ELCUT предоставляет отдельные объекты для каждого типа геометрического примитива: Vertex, Edge и Block соответственно. Эти три объекта наследуют свои методы и свойства от базового типа Shape. В некоторых ситуациях оказывается более удобным манипулировать объектом типа Shape, не детализируя его конкретный тип.

Различают два различных типа коллекций геометрических объектов, то есть объектов типа Shape. Один их них - коллекция Shapes. В каждой модели имеется одна и только одна коллекция Shapes, которая содержит все примитивы (вершины, ребра и блоки) в модели. Её можно получить используя свойство Shapes объекта Model. Коллекция Shapes предоставляет методы для создания новых вершин и ребер. Например, следующий фрагмент кода создает квадрат, нижняя левая вершина которого лежит в точке (0, 0), а верхняя правая в точке (1, 1):

Dim prb as ELCUT.Problem
    .........
Dim mdl As ELCUT.Model
Set mdl = prb.Model
With mdl.Shapes
    .AddEdge ELC.PointXY(0, 1), ELC.PointXY(1, 1)
    .AddEdge ELC.PointXY(1, 1), ELC.PointXY(1, 0)
    .AddEdge ELC.PointXY(1, 0), ELC.PointXY(0, 0)
    .AddEdge ELC.PointXY(0, 0), ELC.PointXY(0, 1)
End With

Другой тип коллекции геометрических примитивов - коллекция ShapeRange. Коллекция типа ShapeRange включает в себя те объекты типа Shape, которые надо на время объединить с той или иной целью, например для совершения над ними какой-либо операции. Можно создать несколько коллекций ShapeRange в одно и то же время. Более того, иногда бывает трудно предсказать заранее, с объектом какой природы приходится работать - отдельным Shape или коллекцией нескольких примитивов, объединенных в ShapeRange. Например, метод AddEdge коллекции Shapes возвращает коллекцию типа ShapeRange, которая содержит вновь созданное ребро. Эта коллекция может содержать лишь одно ребро, а может и целый набор примыкающих друг к другу ребер, если вновь созданное ребро пересечется с одним или несколькими уже имеющимися в модели ребрами.

Вообще говоря, в ActiveField геометрическая модель создается путем добавления новых вершин и рёбер таким же способом, как это делается интерактивно при помощи клавиатуры и мыши. Так же как и при работе с мышью, вновь созданные вершины и ребра могут притягиваться к существующим, если расстояние окажется меньше размера ячейки прямоугольной сетки привязки. Можно управлять размером ячейки и прочими аспектами вспомогательной сетки при помощи объекта Grid, который можно получить используя одноименное свойство Grid объекта Model.

Создание дочерних коллекций

Основное различие в приемах работы с геометрической моделью с помощью мыши и программно в рамках ActiveField состоит в том, каким образом указываются и выделяются необходимые для той или иной операции объекты (вершины, ребра и блоки). Работая на экране с мышью, обычно выделяют группу интересующих объектов, а затем проводят с ними операцию. Имея дело с объектами ELCUT, делают то же самое при помощи свойств, возвращающих объект типа ShapeRange, который тем или иным способом соотносится со своим родительским объектом Shape (или ShapeRange).

Среди свойств, возвращающих коллекцию геометрических объектов, можно отметить следующие:

Свойство

Возвращает коллекцию геометрических объектов, которая:

Blocks
Edges
Vertices

Содержит все объекты родительской коллекции, которые имеют заданный тип (только блоки, только ребра или только вершины соответственно)

Boundary

Содержит ребра, образующие границу родительского блока (блоков).

InRectangle
InCircle

Содержит все объекты родительской коллекции, которые целиком помещаются внутри заданного прямоугольника (круга).

Nearest

Содержит три объекта (если такие найдутся): один блок, одно ребро и одну вершину, каждый из которых принадлежит родительской коллекции и является ближайшим к указанной точке.

LabeledAs

Содержит все объекты, помеченные указанными метками.

Left
Right

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

Flagged

Содержит все объекты из родительской коллекции, которым присвоено указанное значение при помощи свойства UserData.