Объект Contour представляет контур в окне картины поля, который используется для вычисления интегралов, построения графиков и таблиц распределения величин вдоль контура. Каждое окно картины поля (объект FieldWindow) может иметь только один контур (объект Contour). Когда окно картины поля (объект FieldWindow) только создается, объект Contour пустой. Объект Contour доступен чрез свойство Contour объекта FieldWindow.
Объект Contour имеет методы для добавления линий, рёбер и блоков к контуру. Они очень похожи на соответствующие команды графического интерфейса пользователя ELCUT. В дополнение объект Contour имеет несколько свойств только для чтения, для получения информации о контуре: начальной и конечной точках, длине и площади, и т.д.
Методы редактирования контура |
|
|
Добавляет линию (отрезок прямой или дугу) к контуру.
Если контур пустой, то первый вызов метода AddLineTo просто запоминает точку p как начальную точку контура. Линия будет создана при следующем вызове метода AddLineTo. | |
|
AddEdge (labelName типа String, near типа Point) |
Добавляет ребро модели к контуру. При добавлении ребра действуют те же правила, что и при работе через графический интерфейс пользователя. Ребро может быть определено через его метку (параметр labelName), или через ближайшую точку (параметр near), или обоими способами сразу. Если параметры не указаны, или есть неопределенность, то будет добавлено первое попавшееся подходящее ребро. Метод AddEdge1 эквивалентен вызову метода AddEdge, когда второй параметр не указан. Он предназначен для удобства использования в упрощенных скриптовых языках, где возможны синтаксические трудности при вызове метода с опущенным параметром. |
|
AddBlock (labelName типа String, near типа Point) AddBlock1 (labelName типа String) |
Добавляет блок модели к контору. При добавлении блока действуют те же правила, что и при работе через графический интерфейс пользователя. Блок может быть определен через его метку (параметр labelName), или через ближайшую точку (параметр near), или обоими способами сразу. Если параметры не указаны, или есть неопределенность, то будет добавлен первый попавшийся подходящий блок. Метод AddBlock1 эквивалентен вызову метода AddBlock, когда второй параметр не указан. Он предназначен для удобства использования в упрощенных скриптовых языках, где возможны синтаксические трудности при вызове метода с опущенным параметром В отличие от графического интерфейса пользователя, повторное добавление блока ничего не меняет в контуре. Чтобы исключить блок из контура, используйте метод DeleteBlock или DeleteBlock1. |
|
DeleteBlock (labelName типа String, near типа Point) DeleteBlock1 (labelName типа String) |
Удаляет блок модели из контура. Блок может быть определен через его метку (параметр labelName), или через ближайшую точку (параметр near), или обоими способами сразу. Метод DeleteBlock1 эквивалентен вызову метода DeleteBlock, когда второй параметр не указан. Он предназначен для удобства использования в упрощенных скриптовых языках, где возможны синтаксические трудности при вызове метода с опущенным параметром Если параметры не указаны, или есть неопределенность, то будет удален первый попавшийся подходящий блок. |
|
Delete (EntireContour типа Boolean) |
Если параметр EntireContour имеет значение False или не указан, то удаляется последнее добавленное ребро, линия или блок. Иначе удаляется контур целиком. |
|
Изменяет направление контура. | |
Информационные свойства |
|
|
Свойство Parent. Тип FieldWindow
|
Возвращает объект FieldWindow, которому принадлежит контур. |
|
Свойство StartPoint. Тип Point
|
Возвращает начальную точку контура. |
|
Возвращает конечную точку контура. |
|
|
Свойство Lenght. Тип Double
|
Возвращает длину контура. |
|
Свойство Square. Тип Double
|
Возвращает площадь замкнутого контура, если такой есть. Иначе возвращает ноль. |
|
Свойство Closed. Тип Boolean
|
Возвращает True, если контур замкнут, т.е. когда начальная и конечная точки контура совпадают. |
|
Свойство Connectivity. Тип Integer
|
Возвращает число компонентов связности контура. Для пустого контура возвращает ноль. Компонентов связности может быть больше одного, только если контур состоит из нескольких несвязанных блоков. |
В следующем примере строятся два контура для модели синхронного двигателя.
Первый контур состоит из блоков, представляющих левую часть обмотки полюса. Они помечены как "Winding+". Этот контур используется для вычисления магнитного потока полюса.
Второй контур является окружностью, состоящей из двух дуг, и расположенной по середине воздушного зазора между ротором и статором. Этот контур используется для вычисления момента.
dim Wnd As ELCUT.FieldWindow 'окно результатов решения
' Получение объекта FieldWindow
set Wnd = Res.Windows(1)
' Получение нового объекта Contour
dim Cnt as ELCUT.Contour
set Cnt = Wnd.Contour
cnt.Delete True ' Удаление старого контура (если есть)
cnt.AddBlock "Winding+"
dim Flux as Double
Flux = Res.GetIntegral(qfInt_FluxLinkage, Cnt).Abs
const PI as Double = 3.1415926 ' The PI constant
dim Ra As Double ' Диаметр воздушного зазора
ra = 74.5
cnt.Delete True ' Удаление старого контура
cnt.AddLineTo PointXY(Ra, 0), 0
cnt.AddLineTo PointXY(-Ra, 0), 3.1415926
cnt.AddLineTo PointXY(Ra, 0), 3.1415926
dim Torque as Double
torque = Res.GetIntegral(qfInt_MaxwellTorque, Cnt).Abs