Объект Spline представляет функцию, которая описывает какой-либо параметр, зависящий от величины поля. В задаче магнитостатики объект Spline представляет кривую намагничивания материала (B-H кривая). В задаче теплопередачи Spline используется для описания теплопроводности как функции температуры или объемной мощности тепловыделения как функции температуры.
Объект Spline можно получить используя свойства объектов LabelBlockMS или LabelBlockHT. Объект Spline является коллекцией точек (объект Point), у которых свойство X является аргументом функции, а свойство Y - значением функции. Точки объекта Spline отсортированы в порядке возрастания аргумента.
Как и любая другая коллекция, коллекция Spline имеет свойство Count, которое возвращает количество точек в сплайне, и метод Item, который возвращает выбранную точку (объект Point) из коллекции по её номеру в коллекции. Метод Find возвращает номер точки в коллекции, ближайшей к заданному аргументу. Методы Add и Remove позволяют добавить и удалить точку из коллекции. Метод Modify позволяет изменить значение функции в точке, принадлежащей коллекции Spline. Невозможно изменить аргумент точки, принадлежащей коллекции Spline. Если нужно это сделать, сначала удалите точку, а потом добавьте новую.
Следующая таблица содержит все методы и свойства объекта Spline
|
Выбор точек коллекции |
|
|
Метод Item |
Возвращает точку (объект Point) по её номеру, считая с единицы. |
|
Свойство Count (только для чтения) |
Возвращает количество точек в сплайне. |
|
Метод Find (arg) |
Возвращает номер точки в коллекции, с аргументом, ближайшим (в сторону увеличения) к заданному параметру arg. |
|
Метод ValueAt (arg, derivate) |
Возвращает значение аппроксимирующей функции и её производной для заданного аргумента. |
|
Общие свойства |
|
|
Свойство ProblemType (только для чтения) |
Возвращает тип задачи в которой задан сплайн (в формате qfProblemTypes). |
|
Свойство SplineType (только для чтения) |
Возвращает тип объекта Spline в формате qfSplineType |
|
Работа с точками |
|
|
Метод Add (p типа Point)
|
Добавляет новую точку (задается параметром p) в сплайн.
|
|
Метод Remove (index) |
Удаляет точку из сплайна (объект Spline). |
|
Метод Modify (index, val) |
Устанавливает новую величину значения функции в точке сплайна. |
|
Метод CheckSpline |
Проверяет функцию, заданную сплайном, с физической точки зрения. Возвращает код ошибки, если кривая функции не имеет физического смысла. |
В следующем примере создается новая метка "ALNICO magnet1" для задачи магнитостатики. Затем задается коэрцитивная сила магнита и создается новый сплайн. Потом сплайн заполняется точками и присваивается объекту, хранящему физические данные метки. Потом этот объект присваивается метке.
dim lb As ELCUT.Label
dim lbMS As ELCUT.LabelBlockMS
set lb = prb.Labels(qfBlock).Add
lb.Name = "ALNICO magnet1"
set lbMS = lb.Content
With lbMS
.Polar = False
.Coercive = ELC.PointRA(44000, 0)
Dim curve As Spline
Set curve = .CreateBHCurve ' Создание нового сплайна
' Не надо вводить координаты первой точки (0, -44000) -
' она создается автоматически
curve.Add ELC.PointXY(0.121905, -39206)
curve.Add ELC.PointXY(0.21943, -35370)
curve.Add ELC.PointXY(0.266805, -33453.1)
curve.Add ELC.PointXY(0.348365, -29091.2)
curve.Add ELC.PointXY(0.408495, -24729.2)
curve.Add ELC.PointXY(0.456152, -20367.2)
curve.Add ELC.PointXY(0.495103, -16005.2)
curve.Add ELC.PointXY(0.527358, -11643.3)
curve.Add ELC.PointXY(0.557411, -7281.3)
curve.Add ELC.PointXY(0.584952, -2572.67)
curve.Add ELC.PointXY(0.6, 0)
End With
on Error GoTo BadSpline
curve.CheckSpline ' Проверка сплайна
lbMS.Spline = curve ' Присвоение созданного сплайна содержимому метки
lb.Content = lbMS
badSpline:
' продолжение