От постановки задачи к готовому решению
Синхронная машина с явнополюсным ротором
Неподвижное токовое состояние явнополюсной синхронной машины.
Проверка учебной модели
Исходный учебный пример повторно рассчитан в FEMM 5 15 октября 2026 года. Его модель также построена и решена из учебной Python-программы. Результат проверки.
Проходите этапы по порядку. Файл каждого этапа содержит накопленное состояние модели: его можно открыть отдельно и продолжить с указанного шага. Названия материалов, цепей и файлов приведены по-русски; названия команд интерфейса FEMM сохранены для точного поиска в программе.
Числа в таблицах позволяют сверить результат на указанной сетке. Количество выведенных знаков не задаёт физическую точность модели; для силы и момента проверяйте сетку и устойчивость метода вычисления.
Файлы исходных 11 этапов
Итоговая модель FEMMСохранённое решение FEMMВоспроизведение итоговой модели во встроенном Python
Если нужен промежуточный результат построения, скачайте файл соответствующего этапа ниже.
Проверка сетки · 15 октября 2026 года
Сходимость момента и рекомендуемая сетка
Момент на выбранной сетке: −0,04962 Н·м. Число элементов: 4 714 854.
Линейные размеры блоков уменьшены в 8 раз: в зазоре 0,04375 мм. Разбиение прямых сегментов уточнено; дуги в области зазора дополнительно ограничены по длине хорды, в остальных областях — по угловому шагу 0{,}5^\circ.
Модель с проверенной сеткойСохранённое решение FEMMПроверить момент в FEMM · PythonСеточная серия и угловые шаги · JSON
Этапы 1–11 ниже сохраняют исходную учебную сетку и относящиеся к ней снимки. Для проверки уточнённого момента используйте файлы этого раздела. Геометрия, материалы, токи и активная длина модели сохранены.


| Сетка | Размер блока в зазоре, мм | Элементов | WST, Н·м | Перемена WST |
|---|---|---|---|---|
| Сетка 1 | 0,175 | 317 142 | -0,04945637 | — |
| Сетка 2 | 0,0875 | 1 208 578 | -0,04955668 | 0,202% |
| Сетка 3 · выбрана | 0,04375 | 4 714 854 | -0,04962029 | 0,128% |
Критерии: две последние перемены взвешенного интеграла не более 1%; расхождения контурных оценок и производной коэнергии с ним не более 2%. Дополнительно проверяется устойчивость производной на соседних угловых шагах. Нижний абсолютный допуск — 0,00001 Н·м.
| Метод | Момент, Н·м | Условия проверки |
|---|---|---|
| Взвешенный интеграл Максвелла (WST) | -0,04962 | Интеграл 22; все области ротора, группа 2 |
| Контуры без сглаживания | -0,04973 … −0,0493007 | Точное интегрирование кусочно-постоянного поля на трёх окружностях |
| Контуры со сглаживанием | −0,0497177 … -0,04954 | Три радиуса; 11520 точек на каждой окружности |
| Производная коэнергии | -0,05021 … -0,04981 | Шаги: 0,25, 0,5, 1^\circ |
Угловые шаги и производная коэнергии
Для каждого положительного и отрицательного угла выполнен отдельный полевой расчёт при неизменных токах. В знаменателе центральной разности использован механический угол в радианах. В таблице сохранены все проверенные шаги на выбранной сетке; слишком малый шаг может усиливать ошибку разности коэнергий.
| Шаг, град. | Производная, Н·м | Расхождение с WST | Проверка |
|---|---|---|---|
| 0,25 | -0,04982 | 0,403% | Принят |
| 0,5 | -0,04981 | 0,379% | Принят |
| 1 | -0,05021 | 1,18% | Принят |
Проверено указанное положение ротора и заданные токи. Согласие методов относится к этой двумерной линейной модели; оно не оценивает влияние насыщения, концевых эффектов и отклонений реальной машины. Выведенные дополнительные цифры нужны для повторения расчёта.
Этап 1 из 11
Постановка задачи
- Создайте магнитную задачу через «Файл → Новая» (File → New → Magnetics Problem).
- В окне «Постановка задачи» (Problem Definition) выберите миллиметры, тип «плоскопараллельная» и частоту 0 Гц.
- Введите точность, минимальный угол сетки и остальные значения таблицы. В таблицах используется десятичная запятая; при вводе чисел в FEMM заменяйте её точкой.
- Поле файла предыдущего решения оставьте пустым. В осесимметричной задаче поле глубины не задаёт физическую длину: координаты обозначают радиус r и высоту z. В плоскопараллельной задаче глубина задаёт длину модели перпендикулярно плоскости чертежа.
| Параметр | Значение |
|---|---|
| Частота, Гц | 0 |
| Точность | 10 × 10⁻⁹ |
| Минимальный угол, {}^\circ | 25 |
| Умная сетка: 1 — включена | 1 |
| Глубина плоской задачи, мм | 80 |
| Единицы | миллиметры |
| Тип задачи | плоскопараллельная |
| Координаты | декартовы |
| Гармонический решатель: 0 — последовательные приближения | 0 |
| Предыдущее решение: 0 — отсутствует | 0 |
| Файл предыдущего решения | Не задан |
Сохранённое состояние этапа
Модель после шага 1Встроенный Python: шаг 1
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 1: Постановка задачи
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 1. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 2 из 11
Материалы и характеристика B–H
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Откройте «Свойства → Материалы» (Properties → Materials) и последовательно создайте материалы из таблиц.
- Для каждого материала укажите обе относительные проницаемости, коэрцитивную силу, заданную объёмную плотность тока, проводимость и параметры шихтовки. Удельная электрическая проводимость вводится в МСм/м, а не в См/м.
- Если дана таблица B–H, включите нелинейную характеристику и внесите каждую пару: B в Тл, H в А/м. Числа не заменяются свойствами одноимённого материала из другой библиотеки.
- Список сохраняет все материалы исходника. Столбец использования показывает, какие из них действительно назначены областям данного варианта.
| Параметр | Значение |
|---|---|
| Назначен областям | Да |
| Относительная магнитная проницаемость по x/r | 1 |
| Относительная магнитная проницаемость по y/z | 1 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| Параметр | Значение |
|---|---|
| Назначен областям | Да |
| Относительная магнитная проницаемость по x/r | 1 |
| Относительная магнитная проницаемость по y/z | 1 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| Параметр | Значение |
|---|---|
| Назначен областям | Да |
| Относительная магнитная проницаемость по x/r | 1000 |
| Относительная магнитная проницаемость по y/z | 1000 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| Параметр | Значение |
|---|---|
| Назначен областям | Нет, сохранён в списке исходника |
| Относительная магнитная проницаемость по x/r | 1 |
| Относительная магнитная проницаемость по y/z | 1 |
| Коэрцитивная сила, А/м | 0 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
| B, Тл | H, А/м |
|---|---|
| 0 | 0 |
| 0,25 | 100 |
| 0,5 | 200 |
| 0,9 | 400 |
| 1,2 | 800 |
| 1,45 | 2000 |
| 1,6 | 5000 |
| 1,7 | 10000 |
| Параметр | Значение |
|---|---|
| Назначен областям | Нет, сохранён в списке исходника |
| Относительная магнитная проницаемость по x/r | 1,05 |
| Относительная магнитная проницаемость по y/z | 1,05 |
| Коэрцитивная сила, А/м | 909500 |
| Угол направления коэрцитивной силы, {}^\circ | 0 |
| Действительная часть плотности тока, МА/м² | 0 |
| Мнимая часть плотности тока, МА/м² | 0 |
| Удельная электрическая проводимость, МСм/м | 0 |
| Толщина листа, мм | 0 |
| Угол гистерезиса, {}^\circ | 0 |
| Угол гистерезисного запаздывания по x, {}^\circ | 0 |
| Угол гистерезисного запаздывания по y, {}^\circ | 0 |
| Тип: 0 — без шихтовки | 0 |
| Коэффициент заполнения | 1 |
| Число жил | 0 |
| Диаметр провода, мм | 0 |
Сохранённое состояние этапа
Модель после шага 2Встроенный Python: шаг 2
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 2: Материалы и характеристика B–H
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 2. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 3 из 11
Цепи и токи возбуждения
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Откройте «Свойства → Цепи» (Properties → Circuits) и создайте каждую указанную цепь.
- Выберите последовательное соединение (Series), если в таблице стоит код 1; код 0 соответствует параллельному соединению. Число витков задаётся позже в метке каждой области.
- В этой магнитостатической задаче задайте действительную часть тока из таблицы; мнимая часть равна нулю. Цепи с нулевым током также создайте: они нужны для получения потокосцепления соответствующих обмоток.
- Это неподвижное токовое состояние. Скоростная ЭДС, коммутация и полный привод не возникают от одной карты поля; для них требуются описанные в курсе серии положений и внешние соотношения.
Широкую таблицу можно прокрутить по горизонтали.
| Цепь | Действительная часть тока, А | Мнимая часть тока, А | Тип |
|---|---|---|---|
| Фаза А | 1 | 0 | Последовательная (1) |
| Фаза В | 1 | 0 | Последовательная (1) |
| Фаза С | -2 | 0 | Последовательная (1) |
| Обмотка возбуждения | 2 | 0 | Последовательная (1) |
Сохранённое состояние этапа
Модель после шага 3Встроенный Python: шаг 3
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 3: Цепи и токи возбуждения
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Фаза А", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза В", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза С", complex(-2, 0), 1)
mi_addcircprop("Обмотка возбуждения", complex(2, 0), 1)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 3. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 4 из 11
Граничные условия
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- В «Свойства → Граничные условия» (Properties → Boundary) создайте определения из таблиц.
- Тип 0 — заданный потенциал (Prescribed A); нулевые A_{0}, A_{1} и A_{2} дают A=0. Тип 5 — антипериодическое условие (Anti-periodic).
- На этом этапе условие только определено. Назначайте его конкретным отрезкам и дугам на этапе «Отрезки и дуги» по приведённым там таблицам.
- Имена созданных условий должны совпадать с именами в таблицах отрезков и дуг. Не назначайте внешнее граничное условие внутренним контурам, если это не указано в таблице.
| Параметр | Значение |
|---|---|
| Тип границы | 0 |
| A_{0} | 0 |
| A_{1} | 0 |
| A_{2} | 0 |
| Фаза, {}^\circ | 0 |
| Действительная часть коэффициента c_{0} | 0 |
| Мнимая часть коэффициента c_{0} | 0 |
| Действительная часть коэффициента c_{1} | 0 |
| Мнимая часть коэффициента c_{1} | 0 |
| Относительная магнитная проницаемость при малой глубине проникновения | 0 |
| Удельная электрическая проводимость для условия малой глубины проникновения | 0 |
| Внутренний угол, {}^\circ | 0 |
| Внешний угол, {}^\circ | 0 |
Сохранённое состояние этапа
Модель после шага 4Встроенный Python: шаг 4
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 4: Граничные условия
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Фаза А", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза В", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза С", complex(-2, 0), 1)
mi_addcircprop("Обмотка возбуждения", complex(2, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 4. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 5 из 11
Узлы и размеры геометрии
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Переключитесь в режим узлов. Создавайте точки в порядке строк таблицы, вводя указанные координаты. Номер строки служит ссылкой для последующего соединения точек; это не имя, которое нужно присвоить узлу в FEMM.
- Размеры заданы в миллиметрах. Очень малые координаты порядка 10⁻¹⁴ мм означают вычислительный нуль. Таблицы округлены для чтения; полный набор исходных чисел сохранён в приложенной модели и программе этапа.
- Пока присутствуют только точки. Контуры, материалы областей и токовые назначения ещё не завершены.
Широкую таблицу можно прокрутить по горизонтали.
| № узла | x или r, мм | y или z, мм | Группа |
|---|---|---|---|
| 0 | -170 | -170 | 0 |
| 1 | 170 | -170 | 0 |
| 2 | 170 | 170 | 0 |
| 3 | -170 | 170 | 0 |
| 4 | 60 | 0 | 0 |
| 5 | 59,55 | 7,312 | 0 |
| 6 | 55,23 | 23,44 | 0 |
| 7 | 54,38 | 25,36 | 0 |
| 8 | 47,92 | 36,11 | 0 |
| 9 | 46,63 | 37,76 | 0 |
| 10 | 37,76 | 46,63 | 0 |
| 11 | 36,11 | 47,92 | 0 |
| 12 | 25,36 | 54,38 | 0 |
| 13 | 23,44 | 55,23 | 0 |
| 14 | 7,312 | 59,55 | 0 |
| 15 | 0 | 60 | 0 |
| 16 | -7,312 | 59,55 | 0 |
| 17 | -23,44 | 55,23 | 0 |
| 18 | -25,36 | 54,38 | 0 |
| 19 | -36,11 | 47,92 | 0 |
| 20 | -37,76 | 46,63 | 0 |
| 21 | -46,63 | 37,76 | 0 |
| 22 | -47,92 | 36,11 | 0 |
| 23 | -54,38 | 25,36 | 0 |
| 24 | -55,23 | 23,44 | 0 |
| 25 | -59,55 | 7,312 | 0 |
| 26 | -60 | 0 | 0 |
| 27 | -59,55 | -7,312 | 0 |
| 28 | -55,23 | -23,44 | 0 |
| 29 | -54,38 | -25,36 | 0 |
| 30 | -47,92 | -36,11 | 0 |
| 31 | -46,63 | -37,76 | 0 |
| 32 | -37,76 | -46,63 | 0 |
| 33 | -36,11 | -47,92 | 0 |
| 34 | -25,36 | -54,38 | 0 |
| 35 | -23,44 | -55,23 | 0 |
| 36 | -7,312 | -59,55 | 0 |
| 37 | 0 | -60 | 0 |
| 38 | 7,312 | -59,55 | 0 |
| 39 | 23,44 | -55,23 | 0 |
| 40 | 25,36 | -54,38 | 0 |
| 41 | 36,11 | -47,92 | 0 |
| 42 | 37,76 | -46,63 | 0 |
| 43 | 46,63 | -37,76 | 0 |
| 44 | 47,92 | -36,11 | 0 |
| 45 | 54,38 | -25,36 | 0 |
| 46 | 55,23 | -23,44 | 0 |
| 47 | 59,55 | -7,312 | 0 |
| 48 | 100 | 0 | 0 |
| 49 | 99,25 | 12,19 | 0 |
| 50 | 92,05 | 39,07 | 0 |
| 51 | 90,63 | 42,26 | 0 |
| 52 | 79,86 | 60,18 | 0 |
| 53 | 77,71 | 62,93 | 0 |
| 54 | 62,93 | 77,71 | 0 |
| 55 | 60,18 | 79,86 | 0 |
| 56 | 42,26 | 90,63 | 0 |
| 57 | 39,07 | 92,05 | 0 |
| 58 | 12,19 | 99,25 | 0 |
| 59 | 0 | 100 | 0 |
| 60 | -12,19 | 99,25 | 0 |
| 61 | -39,07 | 92,05 | 0 |
| 62 | -42,26 | 90,63 | 0 |
| 63 | -60,18 | 79,86 | 0 |
| 64 | -62,93 | 77,71 | 0 |
| 65 | -77,71 | 62,93 | 0 |
| 66 | -79,86 | 60,18 | 0 |
| 67 | -90,63 | 42,26 | 0 |
| 68 | -92,05 | 39,07 | 0 |
| 69 | -99,25 | 12,19 | 0 |
| 70 | -100 | 0 | 0 |
| 71 | -99,25 | -12,19 | 0 |
| 72 | -92,05 | -39,07 | 0 |
| 73 | -90,63 | -42,26 | 0 |
| 74 | -79,86 | -60,18 | 0 |
| 75 | -77,71 | -62,93 | 0 |
| 76 | -62,93 | -77,71 | 0 |
| 77 | -60,18 | -79,86 | 0 |
| 78 | -42,26 | -90,63 | 0 |
| 79 | -39,07 | -92,05 | 0 |
| 80 | -12,19 | -99,25 | 0 |
| 81 | 0 | -100 | 0 |
| 82 | 12,19 | -99,25 | 0 |
| 83 | 39,07 | -92,05 | 0 |
| 84 | 42,26 | -90,63 | 0 |
| 85 | 60,18 | -79,86 | 0 |
| 86 | 62,93 | -77,71 | 0 |
| 87 | 77,71 | -62,93 | 0 |
| 88 | 79,86 | -60,18 | 0 |
| 89 | 90,63 | -42,26 | 0 |
| 90 | 92,05 | -39,07 | 0 |
| 91 | 99,25 | -12,19 | 0 |
| 92 | 84,37 | -10,36 | 0 |
| 93 | 85 | 0 | 0 |
| 94 | 84,37 | 10,36 | 0 |
| 95 | 78,24 | 33,21 | 0 |
| 96 | 77,04 | 35,92 | 0 |
| 97 | 67,88 | 51,15 | 0 |
| 98 | 51,15 | 67,88 | 0 |
| 99 | 35,92 | 77,04 | 0 |
| 100 | 33,21 | 78,24 | 0 |
| 101 | 10,36 | 84,37 | 0 |
| 102 | 0 | 85 | 0 |
| 103 | -10,36 | 84,37 | 0 |
| 104 | -33,21 | 78,24 | 0 |
| 105 | -35,92 | 77,04 | 0 |
| 106 | -51,15 | 67,88 | 0 |
| 107 | -67,88 | 51,15 | 0 |
| 108 | -77,04 | 35,92 | 0 |
| 109 | -78,24 | 33,21 | 0 |
| 110 | -84,37 | 10,36 | 0 |
| 111 | -85 | 0 | 0 |
| 112 | -84,37 | -10,36 | 0 |
| 113 | -78,24 | -33,21 | 0 |
| 114 | -77,04 | -35,92 | 0 |
| 115 | -67,88 | -51,15 | 0 |
| 116 | -51,15 | -67,88 | 0 |
| 117 | -35,92 | -77,04 | 0 |
| 118 | -33,21 | -78,24 | 0 |
| 119 | -10,36 | -84,37 | 0 |
| 120 | 0 | -85 | 0 |
| 121 | 10,36 | -84,37 | 0 |
| 122 | 33,21 | -78,24 | 0 |
| 123 | 35,92 | -77,04 | 0 |
| 124 | 51,15 | -67,88 | 0 |
| 125 | 67,88 | -51,15 | 0 |
| 126 | 77,04 | -35,92 | 0 |
| 127 | 78,24 | -33,21 | 0 |
| 128 | 18 | 0 | 2 |
| 129 | 17,87 | 2,194 | 2 |
| 130 | 16,57 | 7,033 | 2 |
| 131 | 16,31 | 7,607 | 2 |
| 132 | 14,38 | 10,83 | 2 |
| 133 | 13,99 | 11,33 | 2 |
| 134 | 11,33 | 13,99 | 2 |
| 135 | 10,83 | 14,38 | 2 |
| 136 | 7,607 | 16,31 | 2 |
| 137 | 7,033 | 16,57 | 2 |
| 138 | 2,194 | 17,87 | 2 |
| 139 | 0 | 18 | 2 |
| 140 | -2,194 | 17,87 | 2 |
| 141 | -7,033 | 16,57 | 2 |
| 142 | -7,607 | 16,31 | 2 |
| 143 | -10,83 | 14,38 | 2 |
| 144 | -11,33 | 13,99 | 2 |
| 145 | -13,99 | 11,33 | 2 |
| 146 | -14,38 | 10,83 | 2 |
| 147 | -16,31 | 7,607 | 2 |
| 148 | -16,57 | 7,033 | 2 |
| 149 | -17,87 | 2,194 | 2 |
| 150 | -18 | 0 | 2 |
| 151 | -17,87 | -2,194 | 2 |
| 152 | -16,57 | -7,033 | 2 |
| 153 | -16,31 | -7,607 | 2 |
| 154 | -14,38 | -10,83 | 2 |
| 155 | -13,99 | -11,33 | 2 |
| 156 | -11,33 | -13,99 | 2 |
| 157 | -10,83 | -14,38 | 2 |
| 158 | -7,607 | -16,31 | 2 |
| 159 | -7,033 | -16,57 | 2 |
| 160 | -2,194 | -17,87 | 2 |
| 161 | 0 | -18 | 2 |
| 162 | 2,194 | -17,87 | 2 |
| 163 | 7,033 | -16,57 | 2 |
| 164 | 7,607 | -16,31 | 2 |
| 165 | 10,83 | -14,38 | 2 |
| 166 | 11,33 | -13,99 | 2 |
| 167 | 13,99 | -11,33 | 2 |
| 168 | 14,38 | -10,83 | 2 |
| 169 | 16,31 | -7,607 | 2 |
| 170 | 16,57 | -7,033 | 2 |
| 171 | 17,87 | -2,194 | 2 |
| 172 | 35 | 0 | 2 |
| 173 | 34,74 | 4,265 | 2 |
| 174 | 32,22 | 13,68 | 2 |
| 175 | 31,72 | 14,79 | 2 |
| 176 | 27,95 | 21,06 | 2 |
| 177 | 27,2 | 22,03 | 2 |
| 178 | 22,03 | 27,2 | 2 |
| 179 | 21,06 | 27,95 | 2 |
| 180 | 14,79 | 31,72 | 2 |
| 181 | 13,68 | 32,22 | 2 |
| 182 | 4,265 | 34,74 | 2 |
| 183 | 0 | 35 | 2 |
| 184 | -4,265 | 34,74 | 2 |
| 185 | -13,68 | 32,22 | 2 |
| 186 | -14,79 | 31,72 | 2 |
| 187 | -21,06 | 27,95 | 2 |
| 188 | -22,03 | 27,2 | 2 |
| 189 | -27,2 | 22,03 | 2 |
| 190 | -27,95 | 21,06 | 2 |
| 191 | -31,72 | 14,79 | 2 |
| 192 | -32,22 | 13,68 | 2 |
| 193 | -34,74 | 4,265 | 2 |
| 194 | -35 | 0 | 2 |
| 195 | -34,74 | -4,265 | 2 |
| 196 | -32,22 | -13,68 | 2 |
| 197 | -31,72 | -14,79 | 2 |
| 198 | -27,95 | -21,06 | 2 |
| 199 | -27,2 | -22,03 | 2 |
| 200 | -22,03 | -27,2 | 2 |
| 201 | -21,06 | -27,95 | 2 |
| 202 | -14,79 | -31,72 | 2 |
| 203 | -13,68 | -32,22 | 2 |
| 204 | -4,265 | -34,74 | 2 |
| 205 | 0 | -35 | 2 |
| 206 | 4,265 | -34,74 | 2 |
| 207 | 13,68 | -32,22 | 2 |
| 208 | 14,79 | -31,72 | 2 |
| 209 | 21,06 | -27,95 | 2 |
| 210 | 22,03 | -27,2 | 2 |
| 211 | 27,2 | -22,03 | 2 |
| 212 | 27,95 | -21,06 | 2 |
| 213 | 31,72 | -14,79 | 2 |
| 214 | 32,22 | -13,68 | 2 |
| 215 | 34,74 | -4,265 | 2 |
| 216 | 52,57 | -24,51 | 2 |
| 217 | 53,39 | -22,66 | 2 |
| 218 | 57,57 | -7,068 | 2 |
| 219 | 58 | 0 | 2 |
| 220 | 57,57 | 7,068 | 2 |
| 221 | 53,39 | 22,66 | 2 |
| 222 | 52,57 | 24,51 | 2 |
| 223 | 28,75 | 23,28 | 2 |
| 224 | 23,28 | 28,75 | 2 |
| 225 | 41,19 | 33,35 | 2 |
| 226 | 33,35 | 41,19 | 2 |
| 227 | 24,51 | 52,57 | 2 |
| 228 | 22,66 | 53,39 | 2 |
| 229 | 7,068 | 57,57 | 2 |
| 230 | 0 | 58 | 2 |
| 231 | -7,068 | 57,57 | 2 |
| 232 | -22,66 | 53,39 | 2 |
| 233 | -24,51 | 52,57 | 2 |
| 234 | -23,28 | 28,75 | 2 |
| 235 | -28,75 | 23,28 | 2 |
| 236 | -33,35 | 41,19 | 2 |
| 237 | -41,19 | 33,35 | 2 |
| 238 | -52,57 | 24,51 | 2 |
| 239 | -53,39 | 22,66 | 2 |
| 240 | -57,57 | 7,068 | 2 |
| 241 | -58 | 0 | 2 |
| 242 | -57,57 | -7,068 | 2 |
| 243 | -53,39 | -22,66 | 2 |
| 244 | -52,57 | -24,51 | 2 |
| 245 | -28,75 | -23,28 | 2 |
| 246 | -23,28 | -28,75 | 2 |
| 247 | -41,19 | -33,35 | 2 |
| 248 | -33,35 | -41,19 | 2 |
| 249 | -24,51 | -52,57 | 2 |
| 250 | -22,66 | -53,39 | 2 |
| 251 | -7,068 | -57,57 | 2 |
| 252 | 0 | -58 | 2 |
| 253 | 7,068 | -57,57 | 2 |
| 254 | 22,66 | -53,39 | 2 |
| 255 | 24,51 | -52,57 | 2 |
| 256 | 23,28 | -28,75 | 2 |
| 257 | 28,75 | -23,28 | 2 |
| 258 | 33,35 | -41,19 | 2 |
| 259 | 41,19 | -33,35 | 2 |
Сохранённое состояние этапа
Модель после шага 5Встроенный Python: шаг 5
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 5: Узлы и размеры геометрии
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Фаза А", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза В", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза С", complex(-2, 0), 1)
mi_addcircprop("Обмотка возбуждения", complex(2, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-170, -170, 0),
(170, -170, 0),
(170, 170, 0),
(-170, 170, 0),
(60, 0, 0),
(59.552769098479317, 7.3121606043088487, 0),
(55.230291207146422, 23.443867709356425, 0),
(54.378467222198999, 25.357095704441967, 0),
(47.918130602837572, 36.108901389122899, 0),
(46.628757687418258, 37.759223462990242, 0),
(37.759223462990249, 46.628757687418258, 0),
(36.108901389122906, 47.918130602837572, 0),
(25.357095704441967, 54.378467222198999, 0),
(23.443867709356422, 55.230291207146422, 0),
(7.3121606043088496, 59.552769098479317, 0),
(3.6738190614671318e-15, 60, 0),
(-7.3121606043088416, 59.552769098479324, 0),
(-23.443867709356425, 55.230291207146415, 0),
(-25.35709570444196, 54.378467222199006, 0),
(-36.108901389122906, 47.918130602837564, 0),
(-37.759223462990235, 46.628757687418258, 0),
(-46.628757687418258, 37.759223462990242, 0),
(-47.918130602837579, 36.108901389122892, 0),
(-54.378467222198999, 25.357095704441971, 0),
(-55.230291207146422, 23.443867709356425, 0),
(-59.552769098479317, 7.3121606043088523, 0),
(-60, 7.3476381229342635e-15, 0),
(-59.552769098479324, -7.312160604308839, 0),
(-55.230291207146422, -23.443867709356415, 0),
(-54.378467222199006, -25.357095704441956, 0),
(-47.918130602837572, -36.108901389122906, 0),
(-46.628757687418251, -37.759223462990256, 0),
(-37.759223462990271, -46.628757687418236, 0),
(-36.108901389122899, -47.918130602837572, 0),
(-25.357095704441949, -54.378467222199006, 0),
(-23.443867709356429, -55.230291207146415, 0),
(-7.3121606043088301, -59.552769098479324, 0),
(-1.1021457184401395e-14, -60, 0),
(7.3121606043088612, -59.552769098479317, 0),
(23.443867709356411, -55.230291207146429, 0),
(25.357095704441978, -54.378467222198999, 0),
(36.108901389122877, -47.918130602837586, 0),
(37.759223462990249, -46.628757687418251, 0),
(46.628757687418236, -37.759223462990271, 0),
(47.918130602837572, -36.108901389122899, 0),
(54.378467222199006, -25.357095704441953, 0),
(55.230291207146415, -23.443867709356432, 0),
(59.552769098479324, -7.3121606043088336, 0),
(100, 0, 0),
(99.254615164132204, 12.186934340514748, 0),
(92.050485345244041, 39.07311284892738, 0),
(90.630778703664987, 42.261826174069945, 0),
(79.863551004729288, 60.181502315204824, 0),
(77.714596145697087, 62.932039104983737, 0),
(62.932039104983751, 77.714596145697087, 0),
(60.181502315204838, 79.863551004729288, 0),
(42.261826174069945, 90.630778703664987, 0),
(39.073112848927373, 92.050485345244041, 0),
(12.18693434051475, 99.254615164132204, 0),
(6.1230317691118863e-15, 100, 0),
(-12.186934340514737, 99.254615164132204, 0),
(-39.07311284892738, 92.050485345244027, 0),
(-42.261826174069931, 90.630778703665001, 0),
(-60.181502315204838, 79.863551004729274, 0),
(-62.93203910498373, 77.714596145697101, 0),
(-77.714596145697087, 62.932039104983737, 0),
(-79.863551004729288, 60.181502315204817, 0),
(-90.630778703664987, 42.261826174069952, 0),
(-92.050485345244041, 39.07311284892738, 0),
(-99.254615164132204, 12.186934340514755, 0),
(-100, 1.2246063538223773e-14, 0),
(-99.254615164132204, -12.18693434051473, 0),
(-92.050485345244041, -39.073112848927352, 0),
(-90.630778703665001, -42.261826174069924, 0),
(-79.863551004729288, -60.181502315204838, 0),
(-77.714596145697072, -62.932039104983758, 0),
(-62.932039104983787, -77.714596145697058, 0),
(-60.181502315204824, -79.863551004729288, 0),
(-42.261826174069917, -90.630778703665001, 0),
(-39.07311284892738, -92.050485345244027, 0),
(-12.186934340514718, -99.254615164132204, 0),
(-1.8369095307335659e-14, -100, 0),
(12.186934340514769, -99.254615164132204, 0),
(39.073112848927352, -92.050485345244056, 0),
(42.261826174069959, -90.630778703664987, 0),
(60.181502315204796, -79.863551004729302, 0),
(62.932039104983751, -77.714596145697072, 0),
(77.714596145697058, -62.932039104983787, 0),
(79.863551004729288, -60.181502315204824, 0),
(90.630778703665001, -42.261826174069924, 0),
(92.050485345244027, -39.073112848927387, 0),
(99.254615164132204, -12.186934340514723, 0),
(84.366422889512378, -10.358894189437514, 0),
(85, -2.0818308014980413e-14, 0),
(84.366422889512364, 10.358894189437548, 0),
(78.242912543457436, 33.212145921588274, 0),
(77.036161898115239, 35.922552247959452, 0),
(67.884018354019886, 51.154276967924105, 0),
(51.154276967924112, 67.884018354019886, 0),
(35.922552247959452, 77.036161898115239, 0),
(33.212145921588267, 78.242912543457436, 0),
(10.358894189437537, 84.366422889512364, 0),
(5.2045770037451033e-15, 85, 0),
(-10.358894189437526, 84.366422889512378, 0),
(-33.212145921588274, 78.242912543457422, 0),
(-35.922552247959445, 77.036161898115253, 0),
(-51.154276967924112, 67.884018354019886, 0),
(-67.884018354019901, 51.154276967924091, 0),
(-77.036161898115239, 35.922552247959459, 0),
(-78.242912543457436, 33.212145921588274, 0),
(-84.366422889512364, 10.358894189437541, 0),
(-85, 1.0409154007490207e-14, 0),
(-84.366422889512378, -10.358894189437521, 0),
(-78.242912543457436, -33.212145921588252, 0),
(-77.036161898115253, -35.922552247959437, 0),
(-67.884018354019886, -51.154276967924112, 0),
(-51.154276967924105, -67.884018354019886, 0),
(-35.92255224795943, -77.036161898115253, 0),
(-33.212145921588274, -78.242912543457422, 0),
(-10.35889418943751, -84.366422889512378, 0),
(-1.561373101123531e-14, -85, 0),
(10.358894189437553, -84.366422889512364, 0),
(33.212145921588245, -78.242912543457436, 0),
(35.922552247959466, -77.036161898115239, 0),
(51.154276967924076, -67.884018354019915, 0),
(67.884018354019886, -51.154276967924105, 0),
(77.036161898115253, -35.92255224795943, 0),
(78.242912543457422, -33.212145921588281, 0),
(18, 0, 2),
(17.865830729543795, 2.1936481812926547, 2),
(16.569087362143925, 7.0331603128069275, 2),
(16.313540166659699, 7.6071287113325896, 2),
(14.37543918085127, 10.832670416736869, 2),
(13.988627306225476, 11.327767038897074, 2),
(11.327767038897075, 13.988627306225476, 2),
(10.832670416736871, 14.37543918085127, 2),
(7.6071287113325896, 16.313540166659699, 2),
(7.0331603128069267, 16.569087362143925, 2),
(2.1936481812926547, 17.865830729543795, 2),
(1.1021457184401395e-15, 18, 2),
(-2.1936481812926525, 17.865830729543799, 2),
(-7.0331603128069275, 16.569087362143925, 2),
(-7.6071287113325878, 16.313540166659699, 2),
(-10.832670416736871, 14.375439180851268, 2),
(-11.327767038897072, 13.988627306225478, 2),
(-13.988627306225476, 11.327767038897074, 2),
(-14.375439180851274, 10.832670416736867, 2),
(-16.313540166659699, 7.6071287113325905, 2),
(-16.569087362143925, 7.0331603128069275, 2),
(-17.865830729543795, 2.193648181292656, 2),
(-18, 2.2042914368802791e-15, 2),
(-17.865830729543799, -2.1936481812926516, 2),
(-16.569087362143925, -7.033160312806924, 2),
(-16.313540166659699, -7.6071287113325869, 2),
(-14.37543918085127, -10.832670416736871, 2),
(-13.988627306225474, -11.327767038897077, 2),
(-11.327767038897081, -13.988627306225471, 2),
(-10.832670416736869, -14.37543918085127, 2),
(-7.6071287113325852, -16.313540166659699, 2),
(-7.0331603128069293, -16.569087362143925, 2),
(-2.1936481812926489, -17.865830729543799, 2),
(-3.3064371553204186e-15, -18, 2),
(2.1936481812926583, -17.865830729543795, 2),
(7.0331603128069231, -16.569087362143929, 2),
(7.6071287113325932, -16.313540166659699, 2),
(10.832670416736862, -14.375439180851275, 2),
(11.327767038897075, -13.988627306225474, 2),
(13.988627306225471, -11.327767038897081, 2),
(14.37543918085127, -10.832670416736869, 2),
(16.313540166659699, -7.6071287113325861, 2),
(16.569087362143925, -7.0331603128069302, 2),
(17.865830729543799, -2.1936481812926503, 2),
(35, 0, 2),
(34.739115307446269, 4.2654270191801613, 2),
(32.217669870835415, 13.675589497124582, 2),
(31.720772546282749, 14.791639160924481, 2),
(27.952242851655249, 21.063525810321689, 2),
(27.200108650993982, 22.02621368674431, 2),
(22.026213686744313, 27.200108650993982, 2),
(21.063525810321693, 27.952242851655249, 2),
(14.791639160924481, 31.720772546282749, 2),
(13.67558949712458, 32.217669870835415, 2),
(4.2654270191801622, 34.739115307446269, 2),
(2.1430611191891602e-15, 35, 2),
(-4.2654270191801578, 34.739115307446276, 2),
(-13.675589497124582, 32.217669870835408, 2),
(-14.791639160924477, 31.720772546282753, 2),
(-21.063525810321693, 27.952242851655246, 2),
(-22.026213686744306, 27.200108650993986, 2),
(-27.200108650993982, 22.02621368674431, 2),
(-27.952242851655253, 21.063525810321686, 2),
(-31.720772546282749, 14.791639160924483, 2),
(-32.217669870835415, 13.675589497124582, 2),
(-34.739115307446269, 4.265427019180164, 2),
(-35, 4.2861222383783204e-15, 2),
(-34.739115307446276, -4.265427019180156, 2),
(-32.217669870835415, -13.675589497124575, 2),
(-31.720772546282753, -14.791639160924476, 2),
(-27.952242851655249, -21.063525810321693, 2),
(-27.200108650993979, -22.026213686744317, 2),
(-22.026213686744324, -27.200108650993968, 2),
(-21.063525810321689, -27.952242851655249, 2),
(-14.79163916092447, -31.720772546282753, 2),
(-13.675589497124584, -32.217669870835408, 2),
(-4.2654270191801507, -34.739115307446276, 2),
(-6.4291833575674806e-15, -35, 2),
(4.2654270191801693, -34.739115307446269, 2),
(13.675589497124573, -32.217669870835415, 2),
(14.791639160924486, -31.720772546282749, 2),
(21.063525810321678, -27.952242851655257, 2),
(22.026213686744313, -27.200108650993979, 2),
(27.200108650993968, -22.026213686744324, 2),
(27.952242851655249, -21.063525810321689, 2),
(31.720772546282753, -14.791639160924472, 2),
(32.217669870835408, -13.675589497124585, 2),
(34.739115307446276, -4.2654270191801533, 2),
(52.565851648125701, -24.511859180960556, 2),
(53.389281500241538, -22.662405452377886, 2),
(57.567676795196682, -7.0684219174985392, 2),
(58, -1.4205433704339576e-14, 2),
(57.567676795196675, 7.0684219174985623, 2),
(53.389281500241552, 22.662405452377861, 2),
(52.565851648125694, 24.511859180960574, 2),
(28.754400573907922, 23.284854468843985, 2),
(23.284854468843989, 28.754400573907922, 2),
(41.188735957219457, 33.353980725641385, 2),
(33.353980725641385, 41.188735957219457, 2),
(24.511859180960567, 52.565851648125694, 2),
(22.662405452377875, 53.389281500241545, 2),
(7.0684219174985543, 57.567676795196675, 2),
(3.551358426084894e-15, 58, 2),
(-7.0684219174985472, 57.567676795196682, 2),
(-22.662405452377879, 53.389281500241538, 2),
(-24.51185918096056, 52.565851648125701, 2),
(-23.284854468843978, 28.754400573907926, 2),
(-28.754400573907922, 23.284854468843985, 2),
(-33.353980725641378, 41.188735957219464, 2),
(-41.188735957219457, 33.353980725641385, 2),
(-52.565851648125694, 24.51185918096057, 2),
(-53.389281500241545, 22.662405452377879, 2),
(-57.567676795196675, 7.0684219174985579, 2),
(-58, 7.1027168521697881e-15, 2),
(-57.567676795196682, -7.0684219174985436, 2),
(-53.389281500241545, -22.662405452377865, 2),
(-52.565851648125701, -24.511859180960556, 2),
(-28.754400573907919, -23.284854468843992, 2),
(-23.284854468843999, -28.754400573907912, 2),
(-41.18873595721945, -33.353980725641392, 2),
(-33.353980725641406, -41.188735957219443, 2),
(-24.511859180960553, -52.565851648125701, 2),
(-22.662405452377882, -53.389281500241538, 2),
(-7.0684219174985357, -57.567676795196682, 2),
(-1.0654075278254682e-14, -58, 2),
(7.0684219174985659, -57.567676795196675, 2),
(22.662405452377861, -53.389281500241552, 2),
(24.511859180960577, -52.565851648125694, 2),
(23.284854468843989, -28.754400573907919, 2),
(28.754400573907912, -23.284854468843999, 2),
(33.353980725641385, -41.18873595721945, 2),
(41.188735957219443, -33.353980725641406, 2),
]
for x, y, group in _nodes:
mi_addnode(x, y)
if group:
mi_selectnode(x, y)
mi_setnodeprop('', group)
mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 5. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 6 из 11
Отрезки и дуги
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- В режиме отрезков соедините пары узлов из первой таблицы. Координаты каждого конца найдите по номеру узла в таблице предыдущего этапа; каждая строка задаёт отдельный отрезок.
- В режиме дуг соедините пары узлов из второй таблицы. Угол отсчитывается от начального узла к конечному против часовой стрелки. Создавайте именно дуги, сохраняя заданный угол.
- Выделите каждый граничный отрезок или дугу и назначьте указанное условие через свойства объекта. Сохраните номера групп.
- Геометрия включает внешнюю воздушную область. На данном этапе ограничения сетки предварительные; точные ограничения будут восстановлены на шаге 9.
Широкую таблицу можно прокрутить по горизонтали.
| № | Начальный узел | Конечный узел | Граница | Группа |
|---|---|---|---|---|
| 0 | 0 | 1 | Нулевой потенциал | 0 |
| 1 | 1 | 2 | Нулевой потенциал | 0 |
| 2 | 2 | 3 | Нулевой потенциал | 0 |
| 3 | 3 | 0 | Нулевой потенциал | 0 |
| 4 | 47 | 92 | Нет | 0 |
| 5 | 5 | 94 | Нет | 0 |
| 6 | 6 | 95 | Нет | 0 |
| 7 | 8 | 97 | Нет | 0 |
| 8 | 11 | 98 | Нет | 0 |
| 9 | 13 | 100 | Нет | 0 |
| 10 | 14 | 101 | Нет | 0 |
| 11 | 16 | 103 | Нет | 0 |
| 12 | 17 | 104 | Нет | 0 |
| 13 | 19 | 106 | Нет | 0 |
| 14 | 22 | 107 | Нет | 0 |
| 15 | 24 | 109 | Нет | 0 |
| 16 | 25 | 110 | Нет | 0 |
| 17 | 27 | 112 | Нет | 0 |
| 18 | 28 | 113 | Нет | 0 |
| 19 | 30 | 115 | Нет | 0 |
| 20 | 33 | 116 | Нет | 0 |
| 21 | 35 | 118 | Нет | 0 |
| 22 | 36 | 119 | Нет | 0 |
| 23 | 38 | 121 | Нет | 0 |
| 24 | 39 | 122 | Нет | 0 |
| 25 | 41 | 124 | Нет | 0 |
| 26 | 44 | 125 | Нет | 0 |
| 27 | 46 | 127 | Нет | 0 |
| 28 | 213 | 216 | Нет | 2 |
| 29 | 175 | 222 | Нет | 2 |
| 30 | 223 | 225 | Нет | 2 |
| 31 | 224 | 226 | Нет | 2 |
| 32 | 180 | 227 | Нет | 2 |
| 33 | 186 | 233 | Нет | 2 |
| 34 | 234 | 236 | Нет | 2 |
| 35 | 235 | 237 | Нет | 2 |
| 36 | 191 | 238 | Нет | 2 |
| 37 | 197 | 244 | Нет | 2 |
| 38 | 245 | 247 | Нет | 2 |
| 39 | 246 | 248 | Нет | 2 |
| 40 | 202 | 249 | Нет | 2 |
| 41 | 208 | 255 | Нет | 2 |
| 42 | 256 | 258 | Нет | 2 |
| 43 | 257 | 259 | Нет | 2 |
Широкую таблицу можно прокрутить по горизонтали.
| № | Начальный узел | Конечный узел | Угол дуги, {}^\circ | Граница | Группа |
|---|---|---|---|---|---|
| 0 | 4 | 5 | 7 | Нет | 0 |
| 1 | 5 | 6 | 16 | Нет | 0 |
| 2 | 6 | 7 | 2 | Нет | 0 |
| 3 | 7 | 8 | 12 | Нет | 0 |
| 4 | 8 | 9 | 2 | Нет | 0 |
| 5 | 9 | 10 | 12 | Нет | 0 |
| 6 | 10 | 11 | 2 | Нет | 0 |
| 7 | 11 | 12 | 12 | Нет | 0 |
| 8 | 12 | 13 | 2 | Нет | 0 |
| 9 | 13 | 14 | 16 | Нет | 0 |
| 10 | 14 | 15 | 7 | Нет | 0 |
| 11 | 15 | 16 | 7 | Нет | 0 |
| 12 | 16 | 17 | 16 | Нет | 0 |
| 13 | 17 | 18 | 2 | Нет | 0 |
| 14 | 18 | 19 | 12 | Нет | 0 |
| 15 | 19 | 20 | 2 | Нет | 0 |
| 16 | 20 | 21 | 12 | Нет | 0 |
| 17 | 21 | 22 | 2 | Нет | 0 |
| 18 | 22 | 23 | 12 | Нет | 0 |
| 19 | 23 | 24 | 2 | Нет | 0 |
| 20 | 24 | 25 | 16 | Нет | 0 |
| 21 | 25 | 26 | 7 | Нет | 0 |
| 22 | 26 | 27 | 7 | Нет | 0 |
| 23 | 27 | 28 | 16 | Нет | 0 |
| 24 | 28 | 29 | 2 | Нет | 0 |
| 25 | 29 | 30 | 12 | Нет | 0 |
| 26 | 30 | 31 | 2 | Нет | 0 |
| 27 | 31 | 32 | 12 | Нет | 0 |
| 28 | 32 | 33 | 2 | Нет | 0 |
| 29 | 33 | 34 | 12 | Нет | 0 |
| 30 | 34 | 35 | 2 | Нет | 0 |
| 31 | 35 | 36 | 16 | Нет | 0 |
| 32 | 36 | 37 | 7 | Нет | 0 |
| 33 | 37 | 38 | 7 | Нет | 0 |
| 34 | 38 | 39 | 16 | Нет | 0 |
| 35 | 39 | 40 | 2 | Нет | 0 |
| 36 | 40 | 41 | 12 | Нет | 0 |
| 37 | 41 | 42 | 2 | Нет | 0 |
| 38 | 42 | 43 | 12 | Нет | 0 |
| 39 | 43 | 44 | 2 | Нет | 0 |
| 40 | 44 | 45 | 12 | Нет | 0 |
| 41 | 45 | 46 | 2 | Нет | 0 |
| 42 | 46 | 47 | 16 | Нет | 0 |
| 43 | 47 | 4 | 7 | Нет | 0 |
| 44 | 48 | 49 | 7 | Нет | 0 |
| 45 | 49 | 50 | 16 | Нет | 0 |
| 46 | 50 | 51 | 2 | Нет | 0 |
| 47 | 51 | 52 | 12 | Нет | 0 |
| 48 | 52 | 53 | 2 | Нет | 0 |
| 49 | 53 | 54 | 12 | Нет | 0 |
| 50 | 54 | 55 | 2 | Нет | 0 |
| 51 | 55 | 56 | 12 | Нет | 0 |
| 52 | 56 | 57 | 2 | Нет | 0 |
| 53 | 57 | 58 | 16 | Нет | 0 |
| 54 | 58 | 59 | 7 | Нет | 0 |
| 55 | 59 | 60 | 7 | Нет | 0 |
| 56 | 60 | 61 | 16 | Нет | 0 |
| 57 | 61 | 62 | 2 | Нет | 0 |
| 58 | 62 | 63 | 12 | Нет | 0 |
| 59 | 63 | 64 | 2 | Нет | 0 |
| 60 | 64 | 65 | 12 | Нет | 0 |
| 61 | 65 | 66 | 2 | Нет | 0 |
| 62 | 66 | 67 | 12 | Нет | 0 |
| 63 | 67 | 68 | 2 | Нет | 0 |
| 64 | 68 | 69 | 16 | Нет | 0 |
| 65 | 69 | 70 | 7 | Нет | 0 |
| 66 | 70 | 71 | 7 | Нет | 0 |
| 67 | 71 | 72 | 16 | Нет | 0 |
| 68 | 72 | 73 | 2 | Нет | 0 |
| 69 | 73 | 74 | 12 | Нет | 0 |
| 70 | 74 | 75 | 2 | Нет | 0 |
| 71 | 75 | 76 | 12 | Нет | 0 |
| 72 | 76 | 77 | 2 | Нет | 0 |
| 73 | 77 | 78 | 12 | Нет | 0 |
| 74 | 78 | 79 | 2 | Нет | 0 |
| 75 | 79 | 80 | 16 | Нет | 0 |
| 76 | 80 | 81 | 7 | Нет | 0 |
| 77 | 81 | 82 | 7 | Нет | 0 |
| 78 | 82 | 83 | 16 | Нет | 0 |
| 79 | 83 | 84 | 2 | Нет | 0 |
| 80 | 84 | 85 | 12 | Нет | 0 |
| 81 | 85 | 86 | 2 | Нет | 0 |
| 82 | 86 | 87 | 12 | Нет | 0 |
| 83 | 87 | 88 | 2 | Нет | 0 |
| 84 | 88 | 89 | 12 | Нет | 0 |
| 85 | 89 | 90 | 2 | Нет | 0 |
| 86 | 90 | 91 | 16 | Нет | 0 |
| 87 | 91 | 48 | 7 | Нет | 0 |
| 88 | 92 | 93 | 7 | Нет | 0 |
| 89 | 93 | 94 | 7 | Нет | 0 |
| 90 | 95 | 96 | 2 | Нет | 0 |
| 91 | 96 | 97 | 12 | Нет | 0 |
| 92 | 98 | 99 | 12 | Нет | 0 |
| 93 | 99 | 100 | 2 | Нет | 0 |
| 94 | 101 | 102 | 7 | Нет | 0 |
| 95 | 102 | 103 | 7 | Нет | 0 |
| 96 | 104 | 105 | 2 | Нет | 0 |
| 97 | 105 | 106 | 12 | Нет | 0 |
| 98 | 107 | 108 | 12 | Нет | 0 |
| 99 | 108 | 109 | 2 | Нет | 0 |
| 100 | 110 | 111 | 7 | Нет | 0 |
| 101 | 111 | 112 | 7 | Нет | 0 |
| 102 | 113 | 114 | 2 | Нет | 0 |
| 103 | 114 | 115 | 12 | Нет | 0 |
| 104 | 116 | 117 | 12 | Нет | 0 |
| 105 | 117 | 118 | 2 | Нет | 0 |
| 106 | 119 | 120 | 7 | Нет | 0 |
| 107 | 120 | 121 | 7 | Нет | 0 |
| 108 | 122 | 123 | 2 | Нет | 0 |
| 109 | 123 | 124 | 12 | Нет | 0 |
| 110 | 125 | 126 | 12 | Нет | 0 |
| 111 | 126 | 127 | 2 | Нет | 0 |
| 112 | 128 | 129 | 7 | Нет | 2 |
| 113 | 129 | 130 | 16 | Нет | 2 |
| 114 | 130 | 131 | 2 | Нет | 2 |
| 115 | 131 | 132 | 12 | Нет | 2 |
| 116 | 132 | 133 | 2 | Нет | 2 |
| 117 | 133 | 134 | 12 | Нет | 2 |
| 118 | 134 | 135 | 2 | Нет | 2 |
| 119 | 135 | 136 | 12 | Нет | 2 |
| 120 | 136 | 137 | 2 | Нет | 2 |
| 121 | 137 | 138 | 16 | Нет | 2 |
| 122 | 138 | 139 | 7 | Нет | 2 |
| 123 | 139 | 140 | 7 | Нет | 2 |
| 124 | 140 | 141 | 16 | Нет | 2 |
| 125 | 141 | 142 | 2 | Нет | 2 |
| 126 | 142 | 143 | 12 | Нет | 2 |
| 127 | 143 | 144 | 2 | Нет | 2 |
| 128 | 144 | 145 | 12 | Нет | 2 |
| 129 | 145 | 146 | 2 | Нет | 2 |
| 130 | 146 | 147 | 12 | Нет | 2 |
| 131 | 147 | 148 | 2 | Нет | 2 |
| 132 | 148 | 149 | 16 | Нет | 2 |
| 133 | 149 | 150 | 7 | Нет | 2 |
| 134 | 150 | 151 | 7 | Нет | 2 |
| 135 | 151 | 152 | 16 | Нет | 2 |
| 136 | 152 | 153 | 2 | Нет | 2 |
| 137 | 153 | 154 | 12 | Нет | 2 |
| 138 | 154 | 155 | 2 | Нет | 2 |
| 139 | 155 | 156 | 12 | Нет | 2 |
| 140 | 156 | 157 | 2 | Нет | 2 |
| 141 | 157 | 158 | 12 | Нет | 2 |
| 142 | 158 | 159 | 2 | Нет | 2 |
| 143 | 159 | 160 | 16 | Нет | 2 |
| 144 | 160 | 161 | 7 | Нет | 2 |
| 145 | 161 | 162 | 7 | Нет | 2 |
| 146 | 162 | 163 | 16 | Нет | 2 |
| 147 | 163 | 164 | 2 | Нет | 2 |
| 148 | 164 | 165 | 12 | Нет | 2 |
| 149 | 165 | 166 | 2 | Нет | 2 |
| 150 | 166 | 167 | 12 | Нет | 2 |
| 151 | 167 | 168 | 2 | Нет | 2 |
| 152 | 168 | 169 | 12 | Нет | 2 |
| 153 | 169 | 170 | 2 | Нет | 2 |
| 154 | 170 | 171 | 16 | Нет | 2 |
| 155 | 171 | 128 | 7 | Нет | 2 |
| 156 | 172 | 173 | 7 | Нет | 2 |
| 157 | 173 | 174 | 16 | Нет | 2 |
| 158 | 174 | 175 | 2 | Нет | 2 |
| 159 | 175 | 176 | 12 | Нет | 2 |
| 160 | 176 | 177 | 2 | Нет | 2 |
| 161 | 177 | 178 | 12 | Нет | 2 |
| 162 | 178 | 179 | 2 | Нет | 2 |
| 163 | 179 | 180 | 12 | Нет | 2 |
| 164 | 180 | 181 | 2 | Нет | 2 |
| 165 | 181 | 182 | 16 | Нет | 2 |
| 166 | 182 | 183 | 7 | Нет | 2 |
| 167 | 183 | 184 | 7 | Нет | 2 |
| 168 | 184 | 185 | 16 | Нет | 2 |
| 169 | 185 | 186 | 2 | Нет | 2 |
| 170 | 186 | 187 | 12 | Нет | 2 |
| 171 | 187 | 188 | 2 | Нет | 2 |
| 172 | 188 | 189 | 12 | Нет | 2 |
| 173 | 189 | 190 | 2 | Нет | 2 |
| 174 | 190 | 191 | 12 | Нет | 2 |
| 175 | 191 | 192 | 2 | Нет | 2 |
| 176 | 192 | 193 | 16 | Нет | 2 |
| 177 | 193 | 194 | 7 | Нет | 2 |
| 178 | 194 | 195 | 7 | Нет | 2 |
| 179 | 195 | 196 | 16 | Нет | 2 |
| 180 | 196 | 197 | 2 | Нет | 2 |
| 181 | 197 | 198 | 12 | Нет | 2 |
| 182 | 198 | 199 | 2 | Нет | 2 |
| 183 | 199 | 200 | 12 | Нет | 2 |
| 184 | 200 | 201 | 2 | Нет | 2 |
| 185 | 201 | 202 | 12 | Нет | 2 |
| 186 | 202 | 203 | 2 | Нет | 2 |
| 187 | 203 | 204 | 16 | Нет | 2 |
| 188 | 204 | 205 | 7 | Нет | 2 |
| 189 | 205 | 206 | 7 | Нет | 2 |
| 190 | 206 | 207 | 16 | Нет | 2 |
| 191 | 207 | 208 | 2 | Нет | 2 |
| 192 | 208 | 209 | 12 | Нет | 2 |
| 193 | 209 | 210 | 2 | Нет | 2 |
| 194 | 210 | 211 | 12 | Нет | 2 |
| 195 | 211 | 212 | 2 | Нет | 2 |
| 196 | 212 | 213 | 12 | Нет | 2 |
| 197 | 213 | 214 | 2 | Нет | 2 |
| 198 | 214 | 215 | 16 | Нет | 2 |
| 199 | 215 | 172 | 7 | Нет | 2 |
| 200 | 216 | 217 | 2 | Нет | 2 |
| 201 | 217 | 218 | 16 | Нет | 2 |
| 202 | 218 | 219 | 7 | Нет | 2 |
| 203 | 219 | 220 | 7 | Нет | 2 |
| 204 | 220 | 221 | 16 | Нет | 2 |
| 205 | 221 | 222 | 2 | Нет | 2 |
| 206 | 223 | 224 | 12 | Нет | 2 |
| 207 | 225 | 226 | 12 | Нет | 2 |
| 208 | 227 | 228 | 2 | Нет | 2 |
| 209 | 228 | 229 | 16 | Нет | 2 |
| 210 | 229 | 230 | 7 | Нет | 2 |
| 211 | 230 | 231 | 7 | Нет | 2 |
| 212 | 231 | 232 | 16 | Нет | 2 |
| 213 | 232 | 233 | 2 | Нет | 2 |
| 214 | 234 | 235 | 12 | Нет | 2 |
| 215 | 236 | 237 | 12 | Нет | 2 |
| 216 | 238 | 239 | 2 | Нет | 2 |
| 217 | 239 | 240 | 16 | Нет | 2 |
| 218 | 240 | 241 | 7 | Нет | 2 |
| 219 | 241 | 242 | 7 | Нет | 2 |
| 220 | 242 | 243 | 16 | Нет | 2 |
| 221 | 243 | 244 | 2 | Нет | 2 |
| 222 | 245 | 246 | 12 | Нет | 2 |
| 223 | 247 | 248 | 12 | Нет | 2 |
| 224 | 249 | 250 | 2 | Нет | 2 |
| 225 | 250 | 251 | 16 | Нет | 2 |
| 226 | 251 | 252 | 7 | Нет | 2 |
| 227 | 252 | 253 | 7 | Нет | 2 |
| 228 | 253 | 254 | 16 | Нет | 2 |
| 229 | 254 | 255 | 2 | Нет | 2 |
| 230 | 256 | 257 | 12 | Нет | 2 |
| 231 | 258 | 259 | 12 | Нет | 2 |
Сохранённое состояние этапа
Модель после шага 6Встроенный Python: шаг 6
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 6: Отрезки и дуги
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Фаза А", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза В", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза С", complex(-2, 0), 1)
mi_addcircprop("Обмотка возбуждения", complex(2, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-170, -170, 0),
(170, -170, 0),
(170, 170, 0),
(-170, 170, 0),
(60, 0, 0),
(59.552769098479317, 7.3121606043088487, 0),
(55.230291207146422, 23.443867709356425, 0),
(54.378467222198999, 25.357095704441967, 0),
(47.918130602837572, 36.108901389122899, 0),
(46.628757687418258, 37.759223462990242, 0),
(37.759223462990249, 46.628757687418258, 0),
(36.108901389122906, 47.918130602837572, 0),
(25.357095704441967, 54.378467222198999, 0),
(23.443867709356422, 55.230291207146422, 0),
(7.3121606043088496, 59.552769098479317, 0),
(3.6738190614671318e-15, 60, 0),
(-7.3121606043088416, 59.552769098479324, 0),
(-23.443867709356425, 55.230291207146415, 0),
(-25.35709570444196, 54.378467222199006, 0),
(-36.108901389122906, 47.918130602837564, 0),
(-37.759223462990235, 46.628757687418258, 0),
(-46.628757687418258, 37.759223462990242, 0),
(-47.918130602837579, 36.108901389122892, 0),
(-54.378467222198999, 25.357095704441971, 0),
(-55.230291207146422, 23.443867709356425, 0),
(-59.552769098479317, 7.3121606043088523, 0),
(-60, 7.3476381229342635e-15, 0),
(-59.552769098479324, -7.312160604308839, 0),
(-55.230291207146422, -23.443867709356415, 0),
(-54.378467222199006, -25.357095704441956, 0),
(-47.918130602837572, -36.108901389122906, 0),
(-46.628757687418251, -37.759223462990256, 0),
(-37.759223462990271, -46.628757687418236, 0),
(-36.108901389122899, -47.918130602837572, 0),
(-25.357095704441949, -54.378467222199006, 0),
(-23.443867709356429, -55.230291207146415, 0),
(-7.3121606043088301, -59.552769098479324, 0),
(-1.1021457184401395e-14, -60, 0),
(7.3121606043088612, -59.552769098479317, 0),
(23.443867709356411, -55.230291207146429, 0),
(25.357095704441978, -54.378467222198999, 0),
(36.108901389122877, -47.918130602837586, 0),
(37.759223462990249, -46.628757687418251, 0),
(46.628757687418236, -37.759223462990271, 0),
(47.918130602837572, -36.108901389122899, 0),
(54.378467222199006, -25.357095704441953, 0),
(55.230291207146415, -23.443867709356432, 0),
(59.552769098479324, -7.3121606043088336, 0),
(100, 0, 0),
(99.254615164132204, 12.186934340514748, 0),
(92.050485345244041, 39.07311284892738, 0),
(90.630778703664987, 42.261826174069945, 0),
(79.863551004729288, 60.181502315204824, 0),
(77.714596145697087, 62.932039104983737, 0),
(62.932039104983751, 77.714596145697087, 0),
(60.181502315204838, 79.863551004729288, 0),
(42.261826174069945, 90.630778703664987, 0),
(39.073112848927373, 92.050485345244041, 0),
(12.18693434051475, 99.254615164132204, 0),
(6.1230317691118863e-15, 100, 0),
(-12.186934340514737, 99.254615164132204, 0),
(-39.07311284892738, 92.050485345244027, 0),
(-42.261826174069931, 90.630778703665001, 0),
(-60.181502315204838, 79.863551004729274, 0),
(-62.93203910498373, 77.714596145697101, 0),
(-77.714596145697087, 62.932039104983737, 0),
(-79.863551004729288, 60.181502315204817, 0),
(-90.630778703664987, 42.261826174069952, 0),
(-92.050485345244041, 39.07311284892738, 0),
(-99.254615164132204, 12.186934340514755, 0),
(-100, 1.2246063538223773e-14, 0),
(-99.254615164132204, -12.18693434051473, 0),
(-92.050485345244041, -39.073112848927352, 0),
(-90.630778703665001, -42.261826174069924, 0),
(-79.863551004729288, -60.181502315204838, 0),
(-77.714596145697072, -62.932039104983758, 0),
(-62.932039104983787, -77.714596145697058, 0),
(-60.181502315204824, -79.863551004729288, 0),
(-42.261826174069917, -90.630778703665001, 0),
(-39.07311284892738, -92.050485345244027, 0),
(-12.186934340514718, -99.254615164132204, 0),
(-1.8369095307335659e-14, -100, 0),
(12.186934340514769, -99.254615164132204, 0),
(39.073112848927352, -92.050485345244056, 0),
(42.261826174069959, -90.630778703664987, 0),
(60.181502315204796, -79.863551004729302, 0),
(62.932039104983751, -77.714596145697072, 0),
(77.714596145697058, -62.932039104983787, 0),
(79.863551004729288, -60.181502315204824, 0),
(90.630778703665001, -42.261826174069924, 0),
(92.050485345244027, -39.073112848927387, 0),
(99.254615164132204, -12.186934340514723, 0),
(84.366422889512378, -10.358894189437514, 0),
(85, -2.0818308014980413e-14, 0),
(84.366422889512364, 10.358894189437548, 0),
(78.242912543457436, 33.212145921588274, 0),
(77.036161898115239, 35.922552247959452, 0),
(67.884018354019886, 51.154276967924105, 0),
(51.154276967924112, 67.884018354019886, 0),
(35.922552247959452, 77.036161898115239, 0),
(33.212145921588267, 78.242912543457436, 0),
(10.358894189437537, 84.366422889512364, 0),
(5.2045770037451033e-15, 85, 0),
(-10.358894189437526, 84.366422889512378, 0),
(-33.212145921588274, 78.242912543457422, 0),
(-35.922552247959445, 77.036161898115253, 0),
(-51.154276967924112, 67.884018354019886, 0),
(-67.884018354019901, 51.154276967924091, 0),
(-77.036161898115239, 35.922552247959459, 0),
(-78.242912543457436, 33.212145921588274, 0),
(-84.366422889512364, 10.358894189437541, 0),
(-85, 1.0409154007490207e-14, 0),
(-84.366422889512378, -10.358894189437521, 0),
(-78.242912543457436, -33.212145921588252, 0),
(-77.036161898115253, -35.922552247959437, 0),
(-67.884018354019886, -51.154276967924112, 0),
(-51.154276967924105, -67.884018354019886, 0),
(-35.92255224795943, -77.036161898115253, 0),
(-33.212145921588274, -78.242912543457422, 0),
(-10.35889418943751, -84.366422889512378, 0),
(-1.561373101123531e-14, -85, 0),
(10.358894189437553, -84.366422889512364, 0),
(33.212145921588245, -78.242912543457436, 0),
(35.922552247959466, -77.036161898115239, 0),
(51.154276967924076, -67.884018354019915, 0),
(67.884018354019886, -51.154276967924105, 0),
(77.036161898115253, -35.92255224795943, 0),
(78.242912543457422, -33.212145921588281, 0),
(18, 0, 2),
(17.865830729543795, 2.1936481812926547, 2),
(16.569087362143925, 7.0331603128069275, 2),
(16.313540166659699, 7.6071287113325896, 2),
(14.37543918085127, 10.832670416736869, 2),
(13.988627306225476, 11.327767038897074, 2),
(11.327767038897075, 13.988627306225476, 2),
(10.832670416736871, 14.37543918085127, 2),
(7.6071287113325896, 16.313540166659699, 2),
(7.0331603128069267, 16.569087362143925, 2),
(2.1936481812926547, 17.865830729543795, 2),
(1.1021457184401395e-15, 18, 2),
(-2.1936481812926525, 17.865830729543799, 2),
(-7.0331603128069275, 16.569087362143925, 2),
(-7.6071287113325878, 16.313540166659699, 2),
(-10.832670416736871, 14.375439180851268, 2),
(-11.327767038897072, 13.988627306225478, 2),
(-13.988627306225476, 11.327767038897074, 2),
(-14.375439180851274, 10.832670416736867, 2),
(-16.313540166659699, 7.6071287113325905, 2),
(-16.569087362143925, 7.0331603128069275, 2),
(-17.865830729543795, 2.193648181292656, 2),
(-18, 2.2042914368802791e-15, 2),
(-17.865830729543799, -2.1936481812926516, 2),
(-16.569087362143925, -7.033160312806924, 2),
(-16.313540166659699, -7.6071287113325869, 2),
(-14.37543918085127, -10.832670416736871, 2),
(-13.988627306225474, -11.327767038897077, 2),
(-11.327767038897081, -13.988627306225471, 2),
(-10.832670416736869, -14.37543918085127, 2),
(-7.6071287113325852, -16.313540166659699, 2),
(-7.0331603128069293, -16.569087362143925, 2),
(-2.1936481812926489, -17.865830729543799, 2),
(-3.3064371553204186e-15, -18, 2),
(2.1936481812926583, -17.865830729543795, 2),
(7.0331603128069231, -16.569087362143929, 2),
(7.6071287113325932, -16.313540166659699, 2),
(10.832670416736862, -14.375439180851275, 2),
(11.327767038897075, -13.988627306225474, 2),
(13.988627306225471, -11.327767038897081, 2),
(14.37543918085127, -10.832670416736869, 2),
(16.313540166659699, -7.6071287113325861, 2),
(16.569087362143925, -7.0331603128069302, 2),
(17.865830729543799, -2.1936481812926503, 2),
(35, 0, 2),
(34.739115307446269, 4.2654270191801613, 2),
(32.217669870835415, 13.675589497124582, 2),
(31.720772546282749, 14.791639160924481, 2),
(27.952242851655249, 21.063525810321689, 2),
(27.200108650993982, 22.02621368674431, 2),
(22.026213686744313, 27.200108650993982, 2),
(21.063525810321693, 27.952242851655249, 2),
(14.791639160924481, 31.720772546282749, 2),
(13.67558949712458, 32.217669870835415, 2),
(4.2654270191801622, 34.739115307446269, 2),
(2.1430611191891602e-15, 35, 2),
(-4.2654270191801578, 34.739115307446276, 2),
(-13.675589497124582, 32.217669870835408, 2),
(-14.791639160924477, 31.720772546282753, 2),
(-21.063525810321693, 27.952242851655246, 2),
(-22.026213686744306, 27.200108650993986, 2),
(-27.200108650993982, 22.02621368674431, 2),
(-27.952242851655253, 21.063525810321686, 2),
(-31.720772546282749, 14.791639160924483, 2),
(-32.217669870835415, 13.675589497124582, 2),
(-34.739115307446269, 4.265427019180164, 2),
(-35, 4.2861222383783204e-15, 2),
(-34.739115307446276, -4.265427019180156, 2),
(-32.217669870835415, -13.675589497124575, 2),
(-31.720772546282753, -14.791639160924476, 2),
(-27.952242851655249, -21.063525810321693, 2),
(-27.200108650993979, -22.026213686744317, 2),
(-22.026213686744324, -27.200108650993968, 2),
(-21.063525810321689, -27.952242851655249, 2),
(-14.79163916092447, -31.720772546282753, 2),
(-13.675589497124584, -32.217669870835408, 2),
(-4.2654270191801507, -34.739115307446276, 2),
(-6.4291833575674806e-15, -35, 2),
(4.2654270191801693, -34.739115307446269, 2),
(13.675589497124573, -32.217669870835415, 2),
(14.791639160924486, -31.720772546282749, 2),
(21.063525810321678, -27.952242851655257, 2),
(22.026213686744313, -27.200108650993979, 2),
(27.200108650993968, -22.026213686744324, 2),
(27.952242851655249, -21.063525810321689, 2),
(31.720772546282753, -14.791639160924472, 2),
(32.217669870835408, -13.675589497124585, 2),
(34.739115307446276, -4.2654270191801533, 2),
(52.565851648125701, -24.511859180960556, 2),
(53.389281500241538, -22.662405452377886, 2),
(57.567676795196682, -7.0684219174985392, 2),
(58, -1.4205433704339576e-14, 2),
(57.567676795196675, 7.0684219174985623, 2),
(53.389281500241552, 22.662405452377861, 2),
(52.565851648125694, 24.511859180960574, 2),
(28.754400573907922, 23.284854468843985, 2),
(23.284854468843989, 28.754400573907922, 2),
(41.188735957219457, 33.353980725641385, 2),
(33.353980725641385, 41.188735957219457, 2),
(24.511859180960567, 52.565851648125694, 2),
(22.662405452377875, 53.389281500241545, 2),
(7.0684219174985543, 57.567676795196675, 2),
(3.551358426084894e-15, 58, 2),
(-7.0684219174985472, 57.567676795196682, 2),
(-22.662405452377879, 53.389281500241538, 2),
(-24.51185918096056, 52.565851648125701, 2),
(-23.284854468843978, 28.754400573907926, 2),
(-28.754400573907922, 23.284854468843985, 2),
(-33.353980725641378, 41.188735957219464, 2),
(-41.188735957219457, 33.353980725641385, 2),
(-52.565851648125694, 24.51185918096057, 2),
(-53.389281500241545, 22.662405452377879, 2),
(-57.567676795196675, 7.0684219174985579, 2),
(-58, 7.1027168521697881e-15, 2),
(-57.567676795196682, -7.0684219174985436, 2),
(-53.389281500241545, -22.662405452377865, 2),
(-52.565851648125701, -24.511859180960556, 2),
(-28.754400573907919, -23.284854468843992, 2),
(-23.284854468843999, -28.754400573907912, 2),
(-41.18873595721945, -33.353980725641392, 2),
(-33.353980725641406, -41.188735957219443, 2),
(-24.511859180960553, -52.565851648125701, 2),
(-22.662405452377882, -53.389281500241538, 2),
(-7.0684219174985357, -57.567676795196682, 2),
(-1.0654075278254682e-14, -58, 2),
(7.0684219174985659, -57.567676795196675, 2),
(22.662405452377861, -53.389281500241552, 2),
(24.511859180960577, -52.565851648125694, 2),
(23.284854468843989, -28.754400573907919, 2),
(28.754400573907912, -23.284854468843999, 2),
(33.353980725641385, -41.18873595721945, 2),
(41.188735957219443, -33.353980725641406, 2),
]
for x, y, group in _nodes:
mi_addnode(x, y)
if group:
mi_selectnode(x, y)
mi_setnodeprop('', group)
mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
(0, 1, -1, "Нулевой потенциал", 0, 0),
(1, 2, -1, "Нулевой потенциал", 0, 0),
(2, 3, -1, "Нулевой потенциал", 0, 0),
(3, 0, -1, "Нулевой потенциал", 0, 0),
(47, 92, -1, "", 0, 0),
(5, 94, -1, "", 0, 0),
(6, 95, -1, "", 0, 0),
(8, 97, -1, "", 0, 0),
(11, 98, -1, "", 0, 0),
(13, 100, -1, "", 0, 0),
(14, 101, -1, "", 0, 0),
(16, 103, -1, "", 0, 0),
(17, 104, -1, "", 0, 0),
(19, 106, -1, "", 0, 0),
(22, 107, -1, "", 0, 0),
(24, 109, -1, "", 0, 0),
(25, 110, -1, "", 0, 0),
(27, 112, -1, "", 0, 0),
(28, 113, -1, "", 0, 0),
(30, 115, -1, "", 0, 0),
(33, 116, -1, "", 0, 0),
(35, 118, -1, "", 0, 0),
(36, 119, -1, "", 0, 0),
(38, 121, -1, "", 0, 0),
(39, 122, -1, "", 0, 0),
(41, 124, -1, "", 0, 0),
(44, 125, -1, "", 0, 0),
(46, 127, -1, "", 0, 0),
(213, 216, -1, "", 0, 2),
(175, 222, -1, "", 0, 2),
(223, 225, -1, "", 0, 2),
(224, 226, -1, "", 0, 2),
(180, 227, -1, "", 0, 2),
(186, 233, -1, "", 0, 2),
(234, 236, -1, "", 0, 2),
(235, 237, -1, "", 0, 2),
(191, 238, -1, "", 0, 2),
(197, 244, -1, "", 0, 2),
(245, 247, -1, "", 0, 2),
(246, 248, -1, "", 0, 2),
(202, 249, -1, "", 0, 2),
(208, 255, -1, "", 0, 2),
(256, 258, -1, "", 0, 2),
(257, 259, -1, "", 0, 2),
]
for a, b, size, boundary, hidden, group in _segments:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addsegment(x0, y0, x1, y1)
mi_selectsegment((x0+x1)/2, (y0+y1)/2)
mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
mi_clearselected()
# Дуги: угол против часовой стрелки и максимальный угол элемента в градусах.
_arcs = [
(4, 5, 7, 10, "", 0, 0),
(5, 6, 16, 10, "", 0, 0),
(6, 7, 2, 10, "", 0, 0),
(7, 8, 12, 10, "", 0, 0),
(8, 9, 2, 10, "", 0, 0),
(9, 10, 12, 10, "", 0, 0),
(10, 11, 2, 10, "", 0, 0),
(11, 12, 12, 10, "", 0, 0),
(12, 13, 2, 10, "", 0, 0),
(13, 14, 16, 10, "", 0, 0),
(14, 15, 7, 10, "", 0, 0),
(15, 16, 7, 10, "", 0, 0),
(16, 17, 16, 10, "", 0, 0),
(17, 18, 2, 10, "", 0, 0),
(18, 19, 12, 10, "", 0, 0),
(19, 20, 2, 10, "", 0, 0),
(20, 21, 12, 10, "", 0, 0),
(21, 22, 2, 10, "", 0, 0),
(22, 23, 12, 10, "", 0, 0),
(23, 24, 2, 10, "", 0, 0),
(24, 25, 16, 10, "", 0, 0),
(25, 26, 7, 10, "", 0, 0),
(26, 27, 7, 10, "", 0, 0),
(27, 28, 16, 10, "", 0, 0),
(28, 29, 2, 10, "", 0, 0),
(29, 30, 12, 10, "", 0, 0),
(30, 31, 2, 10, "", 0, 0),
(31, 32, 12, 10, "", 0, 0),
(32, 33, 2, 10, "", 0, 0),
(33, 34, 12, 10, "", 0, 0),
(34, 35, 2, 10, "", 0, 0),
(35, 36, 16, 10, "", 0, 0),
(36, 37, 7, 10, "", 0, 0),
(37, 38, 7, 10, "", 0, 0),
(38, 39, 16, 10, "", 0, 0),
(39, 40, 2, 10, "", 0, 0),
(40, 41, 12, 10, "", 0, 0),
(41, 42, 2, 10, "", 0, 0),
(42, 43, 12, 10, "", 0, 0),
(43, 44, 2, 10, "", 0, 0),
(44, 45, 12, 10, "", 0, 0),
(45, 46, 2, 10, "", 0, 0),
(46, 47, 16, 10, "", 0, 0),
(47, 4, 7, 10, "", 0, 0),
(48, 49, 7, 10, "", 0, 0),
(49, 50, 16, 10, "", 0, 0),
(50, 51, 2, 10, "", 0, 0),
(51, 52, 12, 10, "", 0, 0),
(52, 53, 2, 10, "", 0, 0),
(53, 54, 12, 10, "", 0, 0),
(54, 55, 2, 10, "", 0, 0),
(55, 56, 12, 10, "", 0, 0),
(56, 57, 2, 10, "", 0, 0),
(57, 58, 16, 10, "", 0, 0),
(58, 59, 7, 10, "", 0, 0),
(59, 60, 7, 10, "", 0, 0),
(60, 61, 16, 10, "", 0, 0),
(61, 62, 2, 10, "", 0, 0),
(62, 63, 12, 10, "", 0, 0),
(63, 64, 2, 10, "", 0, 0),
(64, 65, 12, 10, "", 0, 0),
(65, 66, 2, 10, "", 0, 0),
(66, 67, 12, 10, "", 0, 0),
(67, 68, 2, 10, "", 0, 0),
(68, 69, 16, 10, "", 0, 0),
(69, 70, 7, 10, "", 0, 0),
(70, 71, 7, 10, "", 0, 0),
(71, 72, 16, 10, "", 0, 0),
(72, 73, 2, 10, "", 0, 0),
(73, 74, 12, 10, "", 0, 0),
(74, 75, 2, 10, "", 0, 0),
(75, 76, 12, 10, "", 0, 0),
(76, 77, 2, 10, "", 0, 0),
(77, 78, 12, 10, "", 0, 0),
(78, 79, 2, 10, "", 0, 0),
(79, 80, 16, 10, "", 0, 0),
(80, 81, 7, 10, "", 0, 0),
(81, 82, 7, 10, "", 0, 0),
(82, 83, 16, 10, "", 0, 0),
(83, 84, 2, 10, "", 0, 0),
(84, 85, 12, 10, "", 0, 0),
(85, 86, 2, 10, "", 0, 0),
(86, 87, 12, 10, "", 0, 0),
(87, 88, 2, 10, "", 0, 0),
(88, 89, 12, 10, "", 0, 0),
(89, 90, 2, 10, "", 0, 0),
(90, 91, 16, 10, "", 0, 0),
(91, 48, 7, 10, "", 0, 0),
(92, 93, 7, 10, "", 0, 0),
(93, 94, 7, 10, "", 0, 0),
(95, 96, 2, 10, "", 0, 0),
(96, 97, 12, 10, "", 0, 0),
(98, 99, 12, 10, "", 0, 0),
(99, 100, 2, 10, "", 0, 0),
(101, 102, 7, 10, "", 0, 0),
(102, 103, 7, 10, "", 0, 0),
(104, 105, 2, 10, "", 0, 0),
(105, 106, 12, 10, "", 0, 0),
(107, 108, 12, 10, "", 0, 0),
(108, 109, 2, 10, "", 0, 0),
(110, 111, 7, 10, "", 0, 0),
(111, 112, 7, 10, "", 0, 0),
(113, 114, 2, 10, "", 0, 0),
(114, 115, 12, 10, "", 0, 0),
(116, 117, 12, 10, "", 0, 0),
(117, 118, 2, 10, "", 0, 0),
(119, 120, 7, 10, "", 0, 0),
(120, 121, 7, 10, "", 0, 0),
(122, 123, 2, 10, "", 0, 0),
(123, 124, 12, 10, "", 0, 0),
(125, 126, 12, 10, "", 0, 0),
(126, 127, 2, 10, "", 0, 0),
(128, 129, 7, 10, "", 0, 2),
(129, 130, 16, 10, "", 0, 2),
(130, 131, 2, 10, "", 0, 2),
(131, 132, 12, 10, "", 0, 2),
(132, 133, 2, 10, "", 0, 2),
(133, 134, 12, 10, "", 0, 2),
(134, 135, 2, 10, "", 0, 2),
(135, 136, 12, 10, "", 0, 2),
(136, 137, 2, 10, "", 0, 2),
(137, 138, 16, 10, "", 0, 2),
(138, 139, 7, 10, "", 0, 2),
(139, 140, 7, 10, "", 0, 2),
(140, 141, 16, 10, "", 0, 2),
(141, 142, 2, 10, "", 0, 2),
(142, 143, 12, 10, "", 0, 2),
(143, 144, 2, 10, "", 0, 2),
(144, 145, 12, 10, "", 0, 2),
(145, 146, 2, 10, "", 0, 2),
(146, 147, 12, 10, "", 0, 2),
(147, 148, 2, 10, "", 0, 2),
(148, 149, 16, 10, "", 0, 2),
(149, 150, 7, 10, "", 0, 2),
(150, 151, 7, 10, "", 0, 2),
(151, 152, 16, 10, "", 0, 2),
(152, 153, 2, 10, "", 0, 2),
(153, 154, 12, 10, "", 0, 2),
(154, 155, 2, 10, "", 0, 2),
(155, 156, 12, 10, "", 0, 2),
(156, 157, 2, 10, "", 0, 2),
(157, 158, 12, 10, "", 0, 2),
(158, 159, 2, 10, "", 0, 2),
(159, 160, 16, 10, "", 0, 2),
(160, 161, 7, 10, "", 0, 2),
(161, 162, 7, 10, "", 0, 2),
(162, 163, 16, 10, "", 0, 2),
(163, 164, 2, 10, "", 0, 2),
(164, 165, 12, 10, "", 0, 2),
(165, 166, 2, 10, "", 0, 2),
(166, 167, 12, 10, "", 0, 2),
(167, 168, 2, 10, "", 0, 2),
(168, 169, 12, 10, "", 0, 2),
(169, 170, 2, 10, "", 0, 2),
(170, 171, 16, 10, "", 0, 2),
(171, 128, 7, 10, "", 0, 2),
(172, 173, 7, 10, "", 0, 2),
(173, 174, 16, 10, "", 0, 2),
(174, 175, 2, 10, "", 0, 2),
(175, 176, 12, 10, "", 0, 2),
(176, 177, 2, 10, "", 0, 2),
(177, 178, 12, 10, "", 0, 2),
(178, 179, 2, 10, "", 0, 2),
(179, 180, 12, 10, "", 0, 2),
(180, 181, 2, 10, "", 0, 2),
(181, 182, 16, 10, "", 0, 2),
(182, 183, 7, 10, "", 0, 2),
(183, 184, 7, 10, "", 0, 2),
(184, 185, 16, 10, "", 0, 2),
(185, 186, 2, 10, "", 0, 2),
(186, 187, 12, 10, "", 0, 2),
(187, 188, 2, 10, "", 0, 2),
(188, 189, 12, 10, "", 0, 2),
(189, 190, 2, 10, "", 0, 2),
(190, 191, 12, 10, "", 0, 2),
(191, 192, 2, 10, "", 0, 2),
(192, 193, 16, 10, "", 0, 2),
(193, 194, 7, 10, "", 0, 2),
(194, 195, 7, 10, "", 0, 2),
(195, 196, 16, 10, "", 0, 2),
(196, 197, 2, 10, "", 0, 2),
(197, 198, 12, 10, "", 0, 2),
(198, 199, 2, 10, "", 0, 2),
(199, 200, 12, 10, "", 0, 2),
(200, 201, 2, 10, "", 0, 2),
(201, 202, 12, 10, "", 0, 2),
(202, 203, 2, 10, "", 0, 2),
(203, 204, 16, 10, "", 0, 2),
(204, 205, 7, 10, "", 0, 2),
(205, 206, 7, 10, "", 0, 2),
(206, 207, 16, 10, "", 0, 2),
(207, 208, 2, 10, "", 0, 2),
(208, 209, 12, 10, "", 0, 2),
(209, 210, 2, 10, "", 0, 2),
(210, 211, 12, 10, "", 0, 2),
(211, 212, 2, 10, "", 0, 2),
(212, 213, 12, 10, "", 0, 2),
(213, 214, 2, 10, "", 0, 2),
(214, 215, 16, 10, "", 0, 2),
(215, 172, 7, 10, "", 0, 2),
(216, 217, 2, 10, "", 0, 2),
(217, 218, 16, 10, "", 0, 2),
(218, 219, 7, 10, "", 0, 2),
(219, 220, 7, 10, "", 0, 2),
(220, 221, 16, 10, "", 0, 2),
(221, 222, 2, 10, "", 0, 2),
(223, 224, 12, 10, "", 0, 2),
(225, 226, 12, 10, "", 0, 2),
(227, 228, 2, 10, "", 0, 2),
(228, 229, 16, 10, "", 0, 2),
(229, 230, 7, 10, "", 0, 2),
(230, 231, 7, 10, "", 0, 2),
(231, 232, 16, 10, "", 0, 2),
(232, 233, 2, 10, "", 0, 2),
(234, 235, 12, 10, "", 0, 2),
(236, 237, 12, 10, "", 0, 2),
(238, 239, 2, 10, "", 0, 2),
(239, 240, 16, 10, "", 0, 2),
(240, 241, 7, 10, "", 0, 2),
(241, 242, 7, 10, "", 0, 2),
(242, 243, 16, 10, "", 0, 2),
(243, 244, 2, 10, "", 0, 2),
(245, 246, 12, 10, "", 0, 2),
(247, 248, 12, 10, "", 0, 2),
(249, 250, 2, 10, "", 0, 2),
(250, 251, 16, 10, "", 0, 2),
(251, 252, 7, 10, "", 0, 2),
(252, 253, 7, 10, "", 0, 2),
(253, 254, 16, 10, "", 0, 2),
(254, 255, 2, 10, "", 0, 2),
(256, 257, 12, 10, "", 0, 2),
(258, 259, 12, 10, "", 0, 2),
]
for a, b, angle, max_angle, boundary, hidden, group in _arcs:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addarc(x0, y0, x1, y1, angle, max_angle)
half = math.radians(angle)/2
cx = (x0+x1)/2 - (y1-y0)/(2*math.tan(half))
cy = (y0+y1)/2 + (x1-x0)/(2*math.tan(half))
xm = cx + (x0-cx)*math.cos(half) - (y0-cy)*math.sin(half)
ym = cy + (x0-cx)*math.sin(half) + (y0-cy)*math.cos(half)
mi_selectarcsegment(xm, ym)
mi_setarcsegmentprop(max_angle, boundary, hidden, group)
mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 6. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 7 из 11
Метки замкнутых областей
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- В режиме меток добавьте по одной метке в каждую область в координатах таблицы.
- На этом этапе метки намеренно оставлены без материала и цепи. Каждая метка должна лежать строго внутри своего замкнутого контура. Обязательно добавьте метку внешней воздушной области.
- Не запускайте расчёт: присутствие точки метки ещё не назначает физические свойства.
Широкую таблицу можно прокрутить по горизонтали.
| № | x или r, мм | y или z, мм | Будущий материал |
|---|---|---|---|
| 0 | 144,5 | 144,5 | Воздух |
| 1 | 0 | 94 | Линейная сталь |
| 2 | 73 | 0 | Обмоточная область |
| 3 | 63,22 | 36,5 | Обмоточная область |
| 4 | 36,5 | 63,22 | Обмоточная область |
| 5 | 0 | 73 | Обмоточная область |
| 6 | -36,5 | 63,22 | Обмоточная область |
| 7 | -63,22 | 36,5 | Обмоточная область |
| 8 | -73 | 0 | Обмоточная область |
| 9 | -63,22 | -36,5 | Обмоточная область |
| 10 | -36,5 | -63,22 | Обмоточная область |
| 11 | 0 | -73 | Обмоточная область |
| 12 | 36,5 | -63,22 | Обмоточная область |
| 13 | 63,22 | -36,5 | Обмоточная область |
| 14 | 26 | 0 | Линейная сталь |
| 15 | 46 | 0 | Линейная сталь |
| 16 | 31,82 | 31,82 | Обмоточная область |
| 17 | 0 | 46 | Линейная сталь |
| 18 | -31,82 | 31,82 | Обмоточная область |
| 19 | -46 | 0 | Линейная сталь |
| 20 | -31,82 | -31,82 | Обмоточная область |
| 21 | 0 | -46 | Линейная сталь |
| 22 | 31,82 | -31,82 | Обмоточная область |
| 23 | 0 | 0 | Воздух |
| 24 | 56,42 | 17,25 | Воздух |
Сохранённое состояние этапа
Модель после шага 7Встроенный Python: шаг 7
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 7: Метки замкнутых областей
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Фаза А", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза В", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза С", complex(-2, 0), 1)
mi_addcircprop("Обмотка возбуждения", complex(2, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-170, -170, 0),
(170, -170, 0),
(170, 170, 0),
(-170, 170, 0),
(60, 0, 0),
(59.552769098479317, 7.3121606043088487, 0),
(55.230291207146422, 23.443867709356425, 0),
(54.378467222198999, 25.357095704441967, 0),
(47.918130602837572, 36.108901389122899, 0),
(46.628757687418258, 37.759223462990242, 0),
(37.759223462990249, 46.628757687418258, 0),
(36.108901389122906, 47.918130602837572, 0),
(25.357095704441967, 54.378467222198999, 0),
(23.443867709356422, 55.230291207146422, 0),
(7.3121606043088496, 59.552769098479317, 0),
(3.6738190614671318e-15, 60, 0),
(-7.3121606043088416, 59.552769098479324, 0),
(-23.443867709356425, 55.230291207146415, 0),
(-25.35709570444196, 54.378467222199006, 0),
(-36.108901389122906, 47.918130602837564, 0),
(-37.759223462990235, 46.628757687418258, 0),
(-46.628757687418258, 37.759223462990242, 0),
(-47.918130602837579, 36.108901389122892, 0),
(-54.378467222198999, 25.357095704441971, 0),
(-55.230291207146422, 23.443867709356425, 0),
(-59.552769098479317, 7.3121606043088523, 0),
(-60, 7.3476381229342635e-15, 0),
(-59.552769098479324, -7.312160604308839, 0),
(-55.230291207146422, -23.443867709356415, 0),
(-54.378467222199006, -25.357095704441956, 0),
(-47.918130602837572, -36.108901389122906, 0),
(-46.628757687418251, -37.759223462990256, 0),
(-37.759223462990271, -46.628757687418236, 0),
(-36.108901389122899, -47.918130602837572, 0),
(-25.357095704441949, -54.378467222199006, 0),
(-23.443867709356429, -55.230291207146415, 0),
(-7.3121606043088301, -59.552769098479324, 0),
(-1.1021457184401395e-14, -60, 0),
(7.3121606043088612, -59.552769098479317, 0),
(23.443867709356411, -55.230291207146429, 0),
(25.357095704441978, -54.378467222198999, 0),
(36.108901389122877, -47.918130602837586, 0),
(37.759223462990249, -46.628757687418251, 0),
(46.628757687418236, -37.759223462990271, 0),
(47.918130602837572, -36.108901389122899, 0),
(54.378467222199006, -25.357095704441953, 0),
(55.230291207146415, -23.443867709356432, 0),
(59.552769098479324, -7.3121606043088336, 0),
(100, 0, 0),
(99.254615164132204, 12.186934340514748, 0),
(92.050485345244041, 39.07311284892738, 0),
(90.630778703664987, 42.261826174069945, 0),
(79.863551004729288, 60.181502315204824, 0),
(77.714596145697087, 62.932039104983737, 0),
(62.932039104983751, 77.714596145697087, 0),
(60.181502315204838, 79.863551004729288, 0),
(42.261826174069945, 90.630778703664987, 0),
(39.073112848927373, 92.050485345244041, 0),
(12.18693434051475, 99.254615164132204, 0),
(6.1230317691118863e-15, 100, 0),
(-12.186934340514737, 99.254615164132204, 0),
(-39.07311284892738, 92.050485345244027, 0),
(-42.261826174069931, 90.630778703665001, 0),
(-60.181502315204838, 79.863551004729274, 0),
(-62.93203910498373, 77.714596145697101, 0),
(-77.714596145697087, 62.932039104983737, 0),
(-79.863551004729288, 60.181502315204817, 0),
(-90.630778703664987, 42.261826174069952, 0),
(-92.050485345244041, 39.07311284892738, 0),
(-99.254615164132204, 12.186934340514755, 0),
(-100, 1.2246063538223773e-14, 0),
(-99.254615164132204, -12.18693434051473, 0),
(-92.050485345244041, -39.073112848927352, 0),
(-90.630778703665001, -42.261826174069924, 0),
(-79.863551004729288, -60.181502315204838, 0),
(-77.714596145697072, -62.932039104983758, 0),
(-62.932039104983787, -77.714596145697058, 0),
(-60.181502315204824, -79.863551004729288, 0),
(-42.261826174069917, -90.630778703665001, 0),
(-39.07311284892738, -92.050485345244027, 0),
(-12.186934340514718, -99.254615164132204, 0),
(-1.8369095307335659e-14, -100, 0),
(12.186934340514769, -99.254615164132204, 0),
(39.073112848927352, -92.050485345244056, 0),
(42.261826174069959, -90.630778703664987, 0),
(60.181502315204796, -79.863551004729302, 0),
(62.932039104983751, -77.714596145697072, 0),
(77.714596145697058, -62.932039104983787, 0),
(79.863551004729288, -60.181502315204824, 0),
(90.630778703665001, -42.261826174069924, 0),
(92.050485345244027, -39.073112848927387, 0),
(99.254615164132204, -12.186934340514723, 0),
(84.366422889512378, -10.358894189437514, 0),
(85, -2.0818308014980413e-14, 0),
(84.366422889512364, 10.358894189437548, 0),
(78.242912543457436, 33.212145921588274, 0),
(77.036161898115239, 35.922552247959452, 0),
(67.884018354019886, 51.154276967924105, 0),
(51.154276967924112, 67.884018354019886, 0),
(35.922552247959452, 77.036161898115239, 0),
(33.212145921588267, 78.242912543457436, 0),
(10.358894189437537, 84.366422889512364, 0),
(5.2045770037451033e-15, 85, 0),
(-10.358894189437526, 84.366422889512378, 0),
(-33.212145921588274, 78.242912543457422, 0),
(-35.922552247959445, 77.036161898115253, 0),
(-51.154276967924112, 67.884018354019886, 0),
(-67.884018354019901, 51.154276967924091, 0),
(-77.036161898115239, 35.922552247959459, 0),
(-78.242912543457436, 33.212145921588274, 0),
(-84.366422889512364, 10.358894189437541, 0),
(-85, 1.0409154007490207e-14, 0),
(-84.366422889512378, -10.358894189437521, 0),
(-78.242912543457436, -33.212145921588252, 0),
(-77.036161898115253, -35.922552247959437, 0),
(-67.884018354019886, -51.154276967924112, 0),
(-51.154276967924105, -67.884018354019886, 0),
(-35.92255224795943, -77.036161898115253, 0),
(-33.212145921588274, -78.242912543457422, 0),
(-10.35889418943751, -84.366422889512378, 0),
(-1.561373101123531e-14, -85, 0),
(10.358894189437553, -84.366422889512364, 0),
(33.212145921588245, -78.242912543457436, 0),
(35.922552247959466, -77.036161898115239, 0),
(51.154276967924076, -67.884018354019915, 0),
(67.884018354019886, -51.154276967924105, 0),
(77.036161898115253, -35.92255224795943, 0),
(78.242912543457422, -33.212145921588281, 0),
(18, 0, 2),
(17.865830729543795, 2.1936481812926547, 2),
(16.569087362143925, 7.0331603128069275, 2),
(16.313540166659699, 7.6071287113325896, 2),
(14.37543918085127, 10.832670416736869, 2),
(13.988627306225476, 11.327767038897074, 2),
(11.327767038897075, 13.988627306225476, 2),
(10.832670416736871, 14.37543918085127, 2),
(7.6071287113325896, 16.313540166659699, 2),
(7.0331603128069267, 16.569087362143925, 2),
(2.1936481812926547, 17.865830729543795, 2),
(1.1021457184401395e-15, 18, 2),
(-2.1936481812926525, 17.865830729543799, 2),
(-7.0331603128069275, 16.569087362143925, 2),
(-7.6071287113325878, 16.313540166659699, 2),
(-10.832670416736871, 14.375439180851268, 2),
(-11.327767038897072, 13.988627306225478, 2),
(-13.988627306225476, 11.327767038897074, 2),
(-14.375439180851274, 10.832670416736867, 2),
(-16.313540166659699, 7.6071287113325905, 2),
(-16.569087362143925, 7.0331603128069275, 2),
(-17.865830729543795, 2.193648181292656, 2),
(-18, 2.2042914368802791e-15, 2),
(-17.865830729543799, -2.1936481812926516, 2),
(-16.569087362143925, -7.033160312806924, 2),
(-16.313540166659699, -7.6071287113325869, 2),
(-14.37543918085127, -10.832670416736871, 2),
(-13.988627306225474, -11.327767038897077, 2),
(-11.327767038897081, -13.988627306225471, 2),
(-10.832670416736869, -14.37543918085127, 2),
(-7.6071287113325852, -16.313540166659699, 2),
(-7.0331603128069293, -16.569087362143925, 2),
(-2.1936481812926489, -17.865830729543799, 2),
(-3.3064371553204186e-15, -18, 2),
(2.1936481812926583, -17.865830729543795, 2),
(7.0331603128069231, -16.569087362143929, 2),
(7.6071287113325932, -16.313540166659699, 2),
(10.832670416736862, -14.375439180851275, 2),
(11.327767038897075, -13.988627306225474, 2),
(13.988627306225471, -11.327767038897081, 2),
(14.37543918085127, -10.832670416736869, 2),
(16.313540166659699, -7.6071287113325861, 2),
(16.569087362143925, -7.0331603128069302, 2),
(17.865830729543799, -2.1936481812926503, 2),
(35, 0, 2),
(34.739115307446269, 4.2654270191801613, 2),
(32.217669870835415, 13.675589497124582, 2),
(31.720772546282749, 14.791639160924481, 2),
(27.952242851655249, 21.063525810321689, 2),
(27.200108650993982, 22.02621368674431, 2),
(22.026213686744313, 27.200108650993982, 2),
(21.063525810321693, 27.952242851655249, 2),
(14.791639160924481, 31.720772546282749, 2),
(13.67558949712458, 32.217669870835415, 2),
(4.2654270191801622, 34.739115307446269, 2),
(2.1430611191891602e-15, 35, 2),
(-4.2654270191801578, 34.739115307446276, 2),
(-13.675589497124582, 32.217669870835408, 2),
(-14.791639160924477, 31.720772546282753, 2),
(-21.063525810321693, 27.952242851655246, 2),
(-22.026213686744306, 27.200108650993986, 2),
(-27.200108650993982, 22.02621368674431, 2),
(-27.952242851655253, 21.063525810321686, 2),
(-31.720772546282749, 14.791639160924483, 2),
(-32.217669870835415, 13.675589497124582, 2),
(-34.739115307446269, 4.265427019180164, 2),
(-35, 4.2861222383783204e-15, 2),
(-34.739115307446276, -4.265427019180156, 2),
(-32.217669870835415, -13.675589497124575, 2),
(-31.720772546282753, -14.791639160924476, 2),
(-27.952242851655249, -21.063525810321693, 2),
(-27.200108650993979, -22.026213686744317, 2),
(-22.026213686744324, -27.200108650993968, 2),
(-21.063525810321689, -27.952242851655249, 2),
(-14.79163916092447, -31.720772546282753, 2),
(-13.675589497124584, -32.217669870835408, 2),
(-4.2654270191801507, -34.739115307446276, 2),
(-6.4291833575674806e-15, -35, 2),
(4.2654270191801693, -34.739115307446269, 2),
(13.675589497124573, -32.217669870835415, 2),
(14.791639160924486, -31.720772546282749, 2),
(21.063525810321678, -27.952242851655257, 2),
(22.026213686744313, -27.200108650993979, 2),
(27.200108650993968, -22.026213686744324, 2),
(27.952242851655249, -21.063525810321689, 2),
(31.720772546282753, -14.791639160924472, 2),
(32.217669870835408, -13.675589497124585, 2),
(34.739115307446276, -4.2654270191801533, 2),
(52.565851648125701, -24.511859180960556, 2),
(53.389281500241538, -22.662405452377886, 2),
(57.567676795196682, -7.0684219174985392, 2),
(58, -1.4205433704339576e-14, 2),
(57.567676795196675, 7.0684219174985623, 2),
(53.389281500241552, 22.662405452377861, 2),
(52.565851648125694, 24.511859180960574, 2),
(28.754400573907922, 23.284854468843985, 2),
(23.284854468843989, 28.754400573907922, 2),
(41.188735957219457, 33.353980725641385, 2),
(33.353980725641385, 41.188735957219457, 2),
(24.511859180960567, 52.565851648125694, 2),
(22.662405452377875, 53.389281500241545, 2),
(7.0684219174985543, 57.567676795196675, 2),
(3.551358426084894e-15, 58, 2),
(-7.0684219174985472, 57.567676795196682, 2),
(-22.662405452377879, 53.389281500241538, 2),
(-24.51185918096056, 52.565851648125701, 2),
(-23.284854468843978, 28.754400573907926, 2),
(-28.754400573907922, 23.284854468843985, 2),
(-33.353980725641378, 41.188735957219464, 2),
(-41.188735957219457, 33.353980725641385, 2),
(-52.565851648125694, 24.51185918096057, 2),
(-53.389281500241545, 22.662405452377879, 2),
(-57.567676795196675, 7.0684219174985579, 2),
(-58, 7.1027168521697881e-15, 2),
(-57.567676795196682, -7.0684219174985436, 2),
(-53.389281500241545, -22.662405452377865, 2),
(-52.565851648125701, -24.511859180960556, 2),
(-28.754400573907919, -23.284854468843992, 2),
(-23.284854468843999, -28.754400573907912, 2),
(-41.18873595721945, -33.353980725641392, 2),
(-33.353980725641406, -41.188735957219443, 2),
(-24.511859180960553, -52.565851648125701, 2),
(-22.662405452377882, -53.389281500241538, 2),
(-7.0684219174985357, -57.567676795196682, 2),
(-1.0654075278254682e-14, -58, 2),
(7.0684219174985659, -57.567676795196675, 2),
(22.662405452377861, -53.389281500241552, 2),
(24.511859180960577, -52.565851648125694, 2),
(23.284854468843989, -28.754400573907919, 2),
(28.754400573907912, -23.284854468843999, 2),
(33.353980725641385, -41.18873595721945, 2),
(41.188735957219443, -33.353980725641406, 2),
]
for x, y, group in _nodes:
mi_addnode(x, y)
if group:
mi_selectnode(x, y)
mi_setnodeprop('', group)
mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
(0, 1, -1, "Нулевой потенциал", 0, 0),
(1, 2, -1, "Нулевой потенциал", 0, 0),
(2, 3, -1, "Нулевой потенциал", 0, 0),
(3, 0, -1, "Нулевой потенциал", 0, 0),
(47, 92, -1, "", 0, 0),
(5, 94, -1, "", 0, 0),
(6, 95, -1, "", 0, 0),
(8, 97, -1, "", 0, 0),
(11, 98, -1, "", 0, 0),
(13, 100, -1, "", 0, 0),
(14, 101, -1, "", 0, 0),
(16, 103, -1, "", 0, 0),
(17, 104, -1, "", 0, 0),
(19, 106, -1, "", 0, 0),
(22, 107, -1, "", 0, 0),
(24, 109, -1, "", 0, 0),
(25, 110, -1, "", 0, 0),
(27, 112, -1, "", 0, 0),
(28, 113, -1, "", 0, 0),
(30, 115, -1, "", 0, 0),
(33, 116, -1, "", 0, 0),
(35, 118, -1, "", 0, 0),
(36, 119, -1, "", 0, 0),
(38, 121, -1, "", 0, 0),
(39, 122, -1, "", 0, 0),
(41, 124, -1, "", 0, 0),
(44, 125, -1, "", 0, 0),
(46, 127, -1, "", 0, 0),
(213, 216, -1, "", 0, 2),
(175, 222, -1, "", 0, 2),
(223, 225, -1, "", 0, 2),
(224, 226, -1, "", 0, 2),
(180, 227, -1, "", 0, 2),
(186, 233, -1, "", 0, 2),
(234, 236, -1, "", 0, 2),
(235, 237, -1, "", 0, 2),
(191, 238, -1, "", 0, 2),
(197, 244, -1, "", 0, 2),
(245, 247, -1, "", 0, 2),
(246, 248, -1, "", 0, 2),
(202, 249, -1, "", 0, 2),
(208, 255, -1, "", 0, 2),
(256, 258, -1, "", 0, 2),
(257, 259, -1, "", 0, 2),
]
for a, b, size, boundary, hidden, group in _segments:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addsegment(x0, y0, x1, y1)
mi_selectsegment((x0+x1)/2, (y0+y1)/2)
mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
mi_clearselected()
# Дуги: угол против часовой стрелки и максимальный угол элемента в градусах.
_arcs = [
(4, 5, 7, 10, "", 0, 0),
(5, 6, 16, 10, "", 0, 0),
(6, 7, 2, 10, "", 0, 0),
(7, 8, 12, 10, "", 0, 0),
(8, 9, 2, 10, "", 0, 0),
(9, 10, 12, 10, "", 0, 0),
(10, 11, 2, 10, "", 0, 0),
(11, 12, 12, 10, "", 0, 0),
(12, 13, 2, 10, "", 0, 0),
(13, 14, 16, 10, "", 0, 0),
(14, 15, 7, 10, "", 0, 0),
(15, 16, 7, 10, "", 0, 0),
(16, 17, 16, 10, "", 0, 0),
(17, 18, 2, 10, "", 0, 0),
(18, 19, 12, 10, "", 0, 0),
(19, 20, 2, 10, "", 0, 0),
(20, 21, 12, 10, "", 0, 0),
(21, 22, 2, 10, "", 0, 0),
(22, 23, 12, 10, "", 0, 0),
(23, 24, 2, 10, "", 0, 0),
(24, 25, 16, 10, "", 0, 0),
(25, 26, 7, 10, "", 0, 0),
(26, 27, 7, 10, "", 0, 0),
(27, 28, 16, 10, "", 0, 0),
(28, 29, 2, 10, "", 0, 0),
(29, 30, 12, 10, "", 0, 0),
(30, 31, 2, 10, "", 0, 0),
(31, 32, 12, 10, "", 0, 0),
(32, 33, 2, 10, "", 0, 0),
(33, 34, 12, 10, "", 0, 0),
(34, 35, 2, 10, "", 0, 0),
(35, 36, 16, 10, "", 0, 0),
(36, 37, 7, 10, "", 0, 0),
(37, 38, 7, 10, "", 0, 0),
(38, 39, 16, 10, "", 0, 0),
(39, 40, 2, 10, "", 0, 0),
(40, 41, 12, 10, "", 0, 0),
(41, 42, 2, 10, "", 0, 0),
(42, 43, 12, 10, "", 0, 0),
(43, 44, 2, 10, "", 0, 0),
(44, 45, 12, 10, "", 0, 0),
(45, 46, 2, 10, "", 0, 0),
(46, 47, 16, 10, "", 0, 0),
(47, 4, 7, 10, "", 0, 0),
(48, 49, 7, 10, "", 0, 0),
(49, 50, 16, 10, "", 0, 0),
(50, 51, 2, 10, "", 0, 0),
(51, 52, 12, 10, "", 0, 0),
(52, 53, 2, 10, "", 0, 0),
(53, 54, 12, 10, "", 0, 0),
(54, 55, 2, 10, "", 0, 0),
(55, 56, 12, 10, "", 0, 0),
(56, 57, 2, 10, "", 0, 0),
(57, 58, 16, 10, "", 0, 0),
(58, 59, 7, 10, "", 0, 0),
(59, 60, 7, 10, "", 0, 0),
(60, 61, 16, 10, "", 0, 0),
(61, 62, 2, 10, "", 0, 0),
(62, 63, 12, 10, "", 0, 0),
(63, 64, 2, 10, "", 0, 0),
(64, 65, 12, 10, "", 0, 0),
(65, 66, 2, 10, "", 0, 0),
(66, 67, 12, 10, "", 0, 0),
(67, 68, 2, 10, "", 0, 0),
(68, 69, 16, 10, "", 0, 0),
(69, 70, 7, 10, "", 0, 0),
(70, 71, 7, 10, "", 0, 0),
(71, 72, 16, 10, "", 0, 0),
(72, 73, 2, 10, "", 0, 0),
(73, 74, 12, 10, "", 0, 0),
(74, 75, 2, 10, "", 0, 0),
(75, 76, 12, 10, "", 0, 0),
(76, 77, 2, 10, "", 0, 0),
(77, 78, 12, 10, "", 0, 0),
(78, 79, 2, 10, "", 0, 0),
(79, 80, 16, 10, "", 0, 0),
(80, 81, 7, 10, "", 0, 0),
(81, 82, 7, 10, "", 0, 0),
(82, 83, 16, 10, "", 0, 0),
(83, 84, 2, 10, "", 0, 0),
(84, 85, 12, 10, "", 0, 0),
(85, 86, 2, 10, "", 0, 0),
(86, 87, 12, 10, "", 0, 0),
(87, 88, 2, 10, "", 0, 0),
(88, 89, 12, 10, "", 0, 0),
(89, 90, 2, 10, "", 0, 0),
(90, 91, 16, 10, "", 0, 0),
(91, 48, 7, 10, "", 0, 0),
(92, 93, 7, 10, "", 0, 0),
(93, 94, 7, 10, "", 0, 0),
(95, 96, 2, 10, "", 0, 0),
(96, 97, 12, 10, "", 0, 0),
(98, 99, 12, 10, "", 0, 0),
(99, 100, 2, 10, "", 0, 0),
(101, 102, 7, 10, "", 0, 0),
(102, 103, 7, 10, "", 0, 0),
(104, 105, 2, 10, "", 0, 0),
(105, 106, 12, 10, "", 0, 0),
(107, 108, 12, 10, "", 0, 0),
(108, 109, 2, 10, "", 0, 0),
(110, 111, 7, 10, "", 0, 0),
(111, 112, 7, 10, "", 0, 0),
(113, 114, 2, 10, "", 0, 0),
(114, 115, 12, 10, "", 0, 0),
(116, 117, 12, 10, "", 0, 0),
(117, 118, 2, 10, "", 0, 0),
(119, 120, 7, 10, "", 0, 0),
(120, 121, 7, 10, "", 0, 0),
(122, 123, 2, 10, "", 0, 0),
(123, 124, 12, 10, "", 0, 0),
(125, 126, 12, 10, "", 0, 0),
(126, 127, 2, 10, "", 0, 0),
(128, 129, 7, 10, "", 0, 2),
(129, 130, 16, 10, "", 0, 2),
(130, 131, 2, 10, "", 0, 2),
(131, 132, 12, 10, "", 0, 2),
(132, 133, 2, 10, "", 0, 2),
(133, 134, 12, 10, "", 0, 2),
(134, 135, 2, 10, "", 0, 2),
(135, 136, 12, 10, "", 0, 2),
(136, 137, 2, 10, "", 0, 2),
(137, 138, 16, 10, "", 0, 2),
(138, 139, 7, 10, "", 0, 2),
(139, 140, 7, 10, "", 0, 2),
(140, 141, 16, 10, "", 0, 2),
(141, 142, 2, 10, "", 0, 2),
(142, 143, 12, 10, "", 0, 2),
(143, 144, 2, 10, "", 0, 2),
(144, 145, 12, 10, "", 0, 2),
(145, 146, 2, 10, "", 0, 2),
(146, 147, 12, 10, "", 0, 2),
(147, 148, 2, 10, "", 0, 2),
(148, 149, 16, 10, "", 0, 2),
(149, 150, 7, 10, "", 0, 2),
(150, 151, 7, 10, "", 0, 2),
(151, 152, 16, 10, "", 0, 2),
(152, 153, 2, 10, "", 0, 2),
(153, 154, 12, 10, "", 0, 2),
(154, 155, 2, 10, "", 0, 2),
(155, 156, 12, 10, "", 0, 2),
(156, 157, 2, 10, "", 0, 2),
(157, 158, 12, 10, "", 0, 2),
(158, 159, 2, 10, "", 0, 2),
(159, 160, 16, 10, "", 0, 2),
(160, 161, 7, 10, "", 0, 2),
(161, 162, 7, 10, "", 0, 2),
(162, 163, 16, 10, "", 0, 2),
(163, 164, 2, 10, "", 0, 2),
(164, 165, 12, 10, "", 0, 2),
(165, 166, 2, 10, "", 0, 2),
(166, 167, 12, 10, "", 0, 2),
(167, 168, 2, 10, "", 0, 2),
(168, 169, 12, 10, "", 0, 2),
(169, 170, 2, 10, "", 0, 2),
(170, 171, 16, 10, "", 0, 2),
(171, 128, 7, 10, "", 0, 2),
(172, 173, 7, 10, "", 0, 2),
(173, 174, 16, 10, "", 0, 2),
(174, 175, 2, 10, "", 0, 2),
(175, 176, 12, 10, "", 0, 2),
(176, 177, 2, 10, "", 0, 2),
(177, 178, 12, 10, "", 0, 2),
(178, 179, 2, 10, "", 0, 2),
(179, 180, 12, 10, "", 0, 2),
(180, 181, 2, 10, "", 0, 2),
(181, 182, 16, 10, "", 0, 2),
(182, 183, 7, 10, "", 0, 2),
(183, 184, 7, 10, "", 0, 2),
(184, 185, 16, 10, "", 0, 2),
(185, 186, 2, 10, "", 0, 2),
(186, 187, 12, 10, "", 0, 2),
(187, 188, 2, 10, "", 0, 2),
(188, 189, 12, 10, "", 0, 2),
(189, 190, 2, 10, "", 0, 2),
(190, 191, 12, 10, "", 0, 2),
(191, 192, 2, 10, "", 0, 2),
(192, 193, 16, 10, "", 0, 2),
(193, 194, 7, 10, "", 0, 2),
(194, 195, 7, 10, "", 0, 2),
(195, 196, 16, 10, "", 0, 2),
(196, 197, 2, 10, "", 0, 2),
(197, 198, 12, 10, "", 0, 2),
(198, 199, 2, 10, "", 0, 2),
(199, 200, 12, 10, "", 0, 2),
(200, 201, 2, 10, "", 0, 2),
(201, 202, 12, 10, "", 0, 2),
(202, 203, 2, 10, "", 0, 2),
(203, 204, 16, 10, "", 0, 2),
(204, 205, 7, 10, "", 0, 2),
(205, 206, 7, 10, "", 0, 2),
(206, 207, 16, 10, "", 0, 2),
(207, 208, 2, 10, "", 0, 2),
(208, 209, 12, 10, "", 0, 2),
(209, 210, 2, 10, "", 0, 2),
(210, 211, 12, 10, "", 0, 2),
(211, 212, 2, 10, "", 0, 2),
(212, 213, 12, 10, "", 0, 2),
(213, 214, 2, 10, "", 0, 2),
(214, 215, 16, 10, "", 0, 2),
(215, 172, 7, 10, "", 0, 2),
(216, 217, 2, 10, "", 0, 2),
(217, 218, 16, 10, "", 0, 2),
(218, 219, 7, 10, "", 0, 2),
(219, 220, 7, 10, "", 0, 2),
(220, 221, 16, 10, "", 0, 2),
(221, 222, 2, 10, "", 0, 2),
(223, 224, 12, 10, "", 0, 2),
(225, 226, 12, 10, "", 0, 2),
(227, 228, 2, 10, "", 0, 2),
(228, 229, 16, 10, "", 0, 2),
(229, 230, 7, 10, "", 0, 2),
(230, 231, 7, 10, "", 0, 2),
(231, 232, 16, 10, "", 0, 2),
(232, 233, 2, 10, "", 0, 2),
(234, 235, 12, 10, "", 0, 2),
(236, 237, 12, 10, "", 0, 2),
(238, 239, 2, 10, "", 0, 2),
(239, 240, 16, 10, "", 0, 2),
(240, 241, 7, 10, "", 0, 2),
(241, 242, 7, 10, "", 0, 2),
(242, 243, 16, 10, "", 0, 2),
(243, 244, 2, 10, "", 0, 2),
(245, 246, 12, 10, "", 0, 2),
(247, 248, 12, 10, "", 0, 2),
(249, 250, 2, 10, "", 0, 2),
(250, 251, 16, 10, "", 0, 2),
(251, 252, 7, 10, "", 0, 2),
(252, 253, 7, 10, "", 0, 2),
(253, 254, 16, 10, "", 0, 2),
(254, 255, 2, 10, "", 0, 2),
(256, 257, 12, 10, "", 0, 2),
(258, 259, 12, 10, "", 0, 2),
]
for a, b, angle, max_angle, boundary, hidden, group in _arcs:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addarc(x0, y0, x1, y1, angle, max_angle)
half = math.radians(angle)/2
cx = (x0+x1)/2 - (y1-y0)/(2*math.tan(half))
cy = (y0+y1)/2 + (x1-x0)/(2*math.tan(half))
xm = cx + (x0-cx)*math.cos(half) - (y0-cy)*math.sin(half)
ym = cy + (x0-cx)*math.sin(half) + (y0-cy)*math.cos(half)
mi_selectarcsegment(xm, ym)
mi_setarcsegmentprop(max_angle, boundary, hidden, group)
mi_clearselected()
# Метки: положение, материал, размер элемента, цепь, намагничивание, группа, витки.
_labels = [
(144.5, 144.5, "", 0, "", 0, 0, 1),
(0, 94, "", 0, "", 0, 0, 1),
(73, 0, "", 0, "", 0, 0, 1),
(63.219854476264025, 36.499999999999993, "", 0, "", 0, 0, 1),
(36.500000000000007, 63.219854476264018, "", 0, "", 0, 0, 1),
(4.469813191451677e-15, 73, "", 0, "", 0, 0, 1),
(-36.499999999999986, 63.219854476264025, "", 0, "", 0, 0, 1),
(-63.219854476264025, 36.499999999999993, "", 0, "", 0, 0, 1),
(-73, 8.939626382903354e-15, "", 0, "", 0, 0, 1),
(-63.219854476264018, -36.500000000000007, "", 0, "", 0, 0, 1),
(-36.500000000000036, -63.219854476264004, "", 0, "", 0, 0, 1),
(-1.3409439574355031e-14, -73, "", 0, "", 0, 0, 1),
(36.500000000000007, -63.219854476264018, "", 0, "", 0, 0, 1),
(63.219854476264004, -36.500000000000036, "", 0, "", 0, 0, 1),
(26, 0, "", 0, "", 0, 0, 1),
(46, 0, "", 0, "", 0, 0, 1),
(31.81980515339464, 31.819805153394636, "", 0, "", 0, 0, 1),
(2.8165946137914677e-15, 46, "", 0, "", 0, 0, 1),
(-31.819805153394636, 31.81980515339464, "", 0, "", 0, 0, 1),
(-46, 5.6331892275829354e-15, "", 0, "", 0, 0, 1),
(-31.819805153394647, -31.819805153394636, "", 0, "", 0, 0, 1),
(-8.4497838413744031e-15, -46, "", 0, "", 0, 0, 1),
(31.819805153394629, -31.819805153394647, "", 0, "", 0, 0, 1),
(0, 0, "", 0, "", 0, 0, 1),
(56.421980601819094, 17.249930578641468, "", 0, "", 0, 0, 1),
]
for x, y, material, size, circuit, direction, group, turns in _labels:
mi_addblocklabel(x, y)
if material:
mi_selectlabel(x, y)
mi_setblockprop(material, 1 if size <= 0 else 0, size, circuit, direction, group, turns)
mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 7. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 8 из 11
Назначения материалов и обмоток
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Выделяйте метки по координатам и открывайте их свойства (Block Label Properties). Назначьте материал, цепь и число витков со знаком из полной таблицы.
- Для магнитов задайте направление намагничивания: число означает угол в градусах; theta и theta+180 — функции координат, поэтому их английские технические идентификаторы сохраняются.
- Восстановите группы: группа 2 используется для выделения ротора или отдельного якоря при вычислении силы/момента, если это предусмотрено вариантом.
- Материалы и обмотки уже назначены, но локальные размеры сетки этого промежуточного файла ещё автоматические. Не запускайте расчёт: сначала перейдите к следующему этапу и восстановите указанные там ограничения сетки.
Широкую таблицу можно прокрутить по горизонтали.
| № | x или r, мм | y или z, мм | Материал | Цепь | Витки со знаком | Намагничивание | Группа |
|---|---|---|---|---|---|---|---|
| 0 | 144,5 | 144,5 | Воздух | Нет | 1 | 0^\circ | 0 |
| 1 | 0 | 94 | Линейная сталь | Нет | 1 | 0^\circ | 1 |
| 2 | 73 | 0 | Обмоточная область | Фаза А | 40 | 0^\circ | 1 |
| 3 | 63,22 | 36,5 | Обмоточная область | Фаза С | -40 | 0^\circ | 1 |
| 4 | 36,5 | 63,22 | Обмоточная область | Фаза В | 40 | 0^\circ | 1 |
| 5 | 0 | 73 | Обмоточная область | Фаза А | -40 | 0^\circ | 1 |
| 6 | -36,5 | 63,22 | Обмоточная область | Фаза С | 40 | 0^\circ | 1 |
| 7 | -63,22 | 36,5 | Обмоточная область | Фаза В | -40 | 0^\circ | 1 |
| 8 | -73 | 0 | Обмоточная область | Фаза А | 40 | 0^\circ | 1 |
| 9 | -63,22 | -36,5 | Обмоточная область | Фаза С | -40 | 0^\circ | 1 |
| 10 | -36,5 | -63,22 | Обмоточная область | Фаза В | 40 | 0^\circ | 1 |
| 11 | 0 | -73 | Обмоточная область | Фаза А | -40 | 0^\circ | 1 |
| 12 | 36,5 | -63,22 | Обмоточная область | Фаза С | 40 | 0^\circ | 1 |
| 13 | 63,22 | -36,5 | Обмоточная область | Фаза В | -40 | 0^\circ | 1 |
| 14 | 26 | 0 | Линейная сталь | Нет | 1 | 0^\circ | 2 |
| 15 | 46 | 0 | Линейная сталь | Нет | 1 | 0^\circ | 2 |
| 16 | 31,82 | 31,82 | Обмоточная область | Обмотка возбуждения | 150 | 0^\circ | 2 |
| 17 | 0 | 46 | Линейная сталь | Нет | 1 | 0^\circ | 2 |
| 18 | -31,82 | 31,82 | Обмоточная область | Обмотка возбуждения | -150 | 0^\circ | 2 |
| 19 | -46 | 0 | Линейная сталь | Нет | 1 | 0^\circ | 2 |
| 20 | -31,82 | -31,82 | Обмоточная область | Обмотка возбуждения | 150 | 0^\circ | 2 |
| 21 | 0 | -46 | Линейная сталь | Нет | 1 | 0^\circ | 2 |
| 22 | 31,82 | -31,82 | Обмоточная область | Обмотка возбуждения | -150 | 0^\circ | 2 |
| 23 | 0 | 0 | Воздух | Нет | 1 | 0^\circ | 2 |
| 24 | 56,42 | 17,25 | Воздух | Нет | 1 | 0^\circ | 0 |
Сохранённое состояние этапа
Модель после шага 8Встроенный Python: шаг 8
Промежуточный этап построения. Перед расчётом завершите оставшиеся настройки модели.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 8: Назначения материалов и обмоток
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Фаза А", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза В", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза С", complex(-2, 0), 1)
mi_addcircprop("Обмотка возбуждения", complex(2, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-170, -170, 0),
(170, -170, 0),
(170, 170, 0),
(-170, 170, 0),
(60, 0, 0),
(59.552769098479317, 7.3121606043088487, 0),
(55.230291207146422, 23.443867709356425, 0),
(54.378467222198999, 25.357095704441967, 0),
(47.918130602837572, 36.108901389122899, 0),
(46.628757687418258, 37.759223462990242, 0),
(37.759223462990249, 46.628757687418258, 0),
(36.108901389122906, 47.918130602837572, 0),
(25.357095704441967, 54.378467222198999, 0),
(23.443867709356422, 55.230291207146422, 0),
(7.3121606043088496, 59.552769098479317, 0),
(3.6738190614671318e-15, 60, 0),
(-7.3121606043088416, 59.552769098479324, 0),
(-23.443867709356425, 55.230291207146415, 0),
(-25.35709570444196, 54.378467222199006, 0),
(-36.108901389122906, 47.918130602837564, 0),
(-37.759223462990235, 46.628757687418258, 0),
(-46.628757687418258, 37.759223462990242, 0),
(-47.918130602837579, 36.108901389122892, 0),
(-54.378467222198999, 25.357095704441971, 0),
(-55.230291207146422, 23.443867709356425, 0),
(-59.552769098479317, 7.3121606043088523, 0),
(-60, 7.3476381229342635e-15, 0),
(-59.552769098479324, -7.312160604308839, 0),
(-55.230291207146422, -23.443867709356415, 0),
(-54.378467222199006, -25.357095704441956, 0),
(-47.918130602837572, -36.108901389122906, 0),
(-46.628757687418251, -37.759223462990256, 0),
(-37.759223462990271, -46.628757687418236, 0),
(-36.108901389122899, -47.918130602837572, 0),
(-25.357095704441949, -54.378467222199006, 0),
(-23.443867709356429, -55.230291207146415, 0),
(-7.3121606043088301, -59.552769098479324, 0),
(-1.1021457184401395e-14, -60, 0),
(7.3121606043088612, -59.552769098479317, 0),
(23.443867709356411, -55.230291207146429, 0),
(25.357095704441978, -54.378467222198999, 0),
(36.108901389122877, -47.918130602837586, 0),
(37.759223462990249, -46.628757687418251, 0),
(46.628757687418236, -37.759223462990271, 0),
(47.918130602837572, -36.108901389122899, 0),
(54.378467222199006, -25.357095704441953, 0),
(55.230291207146415, -23.443867709356432, 0),
(59.552769098479324, -7.3121606043088336, 0),
(100, 0, 0),
(99.254615164132204, 12.186934340514748, 0),
(92.050485345244041, 39.07311284892738, 0),
(90.630778703664987, 42.261826174069945, 0),
(79.863551004729288, 60.181502315204824, 0),
(77.714596145697087, 62.932039104983737, 0),
(62.932039104983751, 77.714596145697087, 0),
(60.181502315204838, 79.863551004729288, 0),
(42.261826174069945, 90.630778703664987, 0),
(39.073112848927373, 92.050485345244041, 0),
(12.18693434051475, 99.254615164132204, 0),
(6.1230317691118863e-15, 100, 0),
(-12.186934340514737, 99.254615164132204, 0),
(-39.07311284892738, 92.050485345244027, 0),
(-42.261826174069931, 90.630778703665001, 0),
(-60.181502315204838, 79.863551004729274, 0),
(-62.93203910498373, 77.714596145697101, 0),
(-77.714596145697087, 62.932039104983737, 0),
(-79.863551004729288, 60.181502315204817, 0),
(-90.630778703664987, 42.261826174069952, 0),
(-92.050485345244041, 39.07311284892738, 0),
(-99.254615164132204, 12.186934340514755, 0),
(-100, 1.2246063538223773e-14, 0),
(-99.254615164132204, -12.18693434051473, 0),
(-92.050485345244041, -39.073112848927352, 0),
(-90.630778703665001, -42.261826174069924, 0),
(-79.863551004729288, -60.181502315204838, 0),
(-77.714596145697072, -62.932039104983758, 0),
(-62.932039104983787, -77.714596145697058, 0),
(-60.181502315204824, -79.863551004729288, 0),
(-42.261826174069917, -90.630778703665001, 0),
(-39.07311284892738, -92.050485345244027, 0),
(-12.186934340514718, -99.254615164132204, 0),
(-1.8369095307335659e-14, -100, 0),
(12.186934340514769, -99.254615164132204, 0),
(39.073112848927352, -92.050485345244056, 0),
(42.261826174069959, -90.630778703664987, 0),
(60.181502315204796, -79.863551004729302, 0),
(62.932039104983751, -77.714596145697072, 0),
(77.714596145697058, -62.932039104983787, 0),
(79.863551004729288, -60.181502315204824, 0),
(90.630778703665001, -42.261826174069924, 0),
(92.050485345244027, -39.073112848927387, 0),
(99.254615164132204, -12.186934340514723, 0),
(84.366422889512378, -10.358894189437514, 0),
(85, -2.0818308014980413e-14, 0),
(84.366422889512364, 10.358894189437548, 0),
(78.242912543457436, 33.212145921588274, 0),
(77.036161898115239, 35.922552247959452, 0),
(67.884018354019886, 51.154276967924105, 0),
(51.154276967924112, 67.884018354019886, 0),
(35.922552247959452, 77.036161898115239, 0),
(33.212145921588267, 78.242912543457436, 0),
(10.358894189437537, 84.366422889512364, 0),
(5.2045770037451033e-15, 85, 0),
(-10.358894189437526, 84.366422889512378, 0),
(-33.212145921588274, 78.242912543457422, 0),
(-35.922552247959445, 77.036161898115253, 0),
(-51.154276967924112, 67.884018354019886, 0),
(-67.884018354019901, 51.154276967924091, 0),
(-77.036161898115239, 35.922552247959459, 0),
(-78.242912543457436, 33.212145921588274, 0),
(-84.366422889512364, 10.358894189437541, 0),
(-85, 1.0409154007490207e-14, 0),
(-84.366422889512378, -10.358894189437521, 0),
(-78.242912543457436, -33.212145921588252, 0),
(-77.036161898115253, -35.922552247959437, 0),
(-67.884018354019886, -51.154276967924112, 0),
(-51.154276967924105, -67.884018354019886, 0),
(-35.92255224795943, -77.036161898115253, 0),
(-33.212145921588274, -78.242912543457422, 0),
(-10.35889418943751, -84.366422889512378, 0),
(-1.561373101123531e-14, -85, 0),
(10.358894189437553, -84.366422889512364, 0),
(33.212145921588245, -78.242912543457436, 0),
(35.922552247959466, -77.036161898115239, 0),
(51.154276967924076, -67.884018354019915, 0),
(67.884018354019886, -51.154276967924105, 0),
(77.036161898115253, -35.92255224795943, 0),
(78.242912543457422, -33.212145921588281, 0),
(18, 0, 2),
(17.865830729543795, 2.1936481812926547, 2),
(16.569087362143925, 7.0331603128069275, 2),
(16.313540166659699, 7.6071287113325896, 2),
(14.37543918085127, 10.832670416736869, 2),
(13.988627306225476, 11.327767038897074, 2),
(11.327767038897075, 13.988627306225476, 2),
(10.832670416736871, 14.37543918085127, 2),
(7.6071287113325896, 16.313540166659699, 2),
(7.0331603128069267, 16.569087362143925, 2),
(2.1936481812926547, 17.865830729543795, 2),
(1.1021457184401395e-15, 18, 2),
(-2.1936481812926525, 17.865830729543799, 2),
(-7.0331603128069275, 16.569087362143925, 2),
(-7.6071287113325878, 16.313540166659699, 2),
(-10.832670416736871, 14.375439180851268, 2),
(-11.327767038897072, 13.988627306225478, 2),
(-13.988627306225476, 11.327767038897074, 2),
(-14.375439180851274, 10.832670416736867, 2),
(-16.313540166659699, 7.6071287113325905, 2),
(-16.569087362143925, 7.0331603128069275, 2),
(-17.865830729543795, 2.193648181292656, 2),
(-18, 2.2042914368802791e-15, 2),
(-17.865830729543799, -2.1936481812926516, 2),
(-16.569087362143925, -7.033160312806924, 2),
(-16.313540166659699, -7.6071287113325869, 2),
(-14.37543918085127, -10.832670416736871, 2),
(-13.988627306225474, -11.327767038897077, 2),
(-11.327767038897081, -13.988627306225471, 2),
(-10.832670416736869, -14.37543918085127, 2),
(-7.6071287113325852, -16.313540166659699, 2),
(-7.0331603128069293, -16.569087362143925, 2),
(-2.1936481812926489, -17.865830729543799, 2),
(-3.3064371553204186e-15, -18, 2),
(2.1936481812926583, -17.865830729543795, 2),
(7.0331603128069231, -16.569087362143929, 2),
(7.6071287113325932, -16.313540166659699, 2),
(10.832670416736862, -14.375439180851275, 2),
(11.327767038897075, -13.988627306225474, 2),
(13.988627306225471, -11.327767038897081, 2),
(14.37543918085127, -10.832670416736869, 2),
(16.313540166659699, -7.6071287113325861, 2),
(16.569087362143925, -7.0331603128069302, 2),
(17.865830729543799, -2.1936481812926503, 2),
(35, 0, 2),
(34.739115307446269, 4.2654270191801613, 2),
(32.217669870835415, 13.675589497124582, 2),
(31.720772546282749, 14.791639160924481, 2),
(27.952242851655249, 21.063525810321689, 2),
(27.200108650993982, 22.02621368674431, 2),
(22.026213686744313, 27.200108650993982, 2),
(21.063525810321693, 27.952242851655249, 2),
(14.791639160924481, 31.720772546282749, 2),
(13.67558949712458, 32.217669870835415, 2),
(4.2654270191801622, 34.739115307446269, 2),
(2.1430611191891602e-15, 35, 2),
(-4.2654270191801578, 34.739115307446276, 2),
(-13.675589497124582, 32.217669870835408, 2),
(-14.791639160924477, 31.720772546282753, 2),
(-21.063525810321693, 27.952242851655246, 2),
(-22.026213686744306, 27.200108650993986, 2),
(-27.200108650993982, 22.02621368674431, 2),
(-27.952242851655253, 21.063525810321686, 2),
(-31.720772546282749, 14.791639160924483, 2),
(-32.217669870835415, 13.675589497124582, 2),
(-34.739115307446269, 4.265427019180164, 2),
(-35, 4.2861222383783204e-15, 2),
(-34.739115307446276, -4.265427019180156, 2),
(-32.217669870835415, -13.675589497124575, 2),
(-31.720772546282753, -14.791639160924476, 2),
(-27.952242851655249, -21.063525810321693, 2),
(-27.200108650993979, -22.026213686744317, 2),
(-22.026213686744324, -27.200108650993968, 2),
(-21.063525810321689, -27.952242851655249, 2),
(-14.79163916092447, -31.720772546282753, 2),
(-13.675589497124584, -32.217669870835408, 2),
(-4.2654270191801507, -34.739115307446276, 2),
(-6.4291833575674806e-15, -35, 2),
(4.2654270191801693, -34.739115307446269, 2),
(13.675589497124573, -32.217669870835415, 2),
(14.791639160924486, -31.720772546282749, 2),
(21.063525810321678, -27.952242851655257, 2),
(22.026213686744313, -27.200108650993979, 2),
(27.200108650993968, -22.026213686744324, 2),
(27.952242851655249, -21.063525810321689, 2),
(31.720772546282753, -14.791639160924472, 2),
(32.217669870835408, -13.675589497124585, 2),
(34.739115307446276, -4.2654270191801533, 2),
(52.565851648125701, -24.511859180960556, 2),
(53.389281500241538, -22.662405452377886, 2),
(57.567676795196682, -7.0684219174985392, 2),
(58, -1.4205433704339576e-14, 2),
(57.567676795196675, 7.0684219174985623, 2),
(53.389281500241552, 22.662405452377861, 2),
(52.565851648125694, 24.511859180960574, 2),
(28.754400573907922, 23.284854468843985, 2),
(23.284854468843989, 28.754400573907922, 2),
(41.188735957219457, 33.353980725641385, 2),
(33.353980725641385, 41.188735957219457, 2),
(24.511859180960567, 52.565851648125694, 2),
(22.662405452377875, 53.389281500241545, 2),
(7.0684219174985543, 57.567676795196675, 2),
(3.551358426084894e-15, 58, 2),
(-7.0684219174985472, 57.567676795196682, 2),
(-22.662405452377879, 53.389281500241538, 2),
(-24.51185918096056, 52.565851648125701, 2),
(-23.284854468843978, 28.754400573907926, 2),
(-28.754400573907922, 23.284854468843985, 2),
(-33.353980725641378, 41.188735957219464, 2),
(-41.188735957219457, 33.353980725641385, 2),
(-52.565851648125694, 24.51185918096057, 2),
(-53.389281500241545, 22.662405452377879, 2),
(-57.567676795196675, 7.0684219174985579, 2),
(-58, 7.1027168521697881e-15, 2),
(-57.567676795196682, -7.0684219174985436, 2),
(-53.389281500241545, -22.662405452377865, 2),
(-52.565851648125701, -24.511859180960556, 2),
(-28.754400573907919, -23.284854468843992, 2),
(-23.284854468843999, -28.754400573907912, 2),
(-41.18873595721945, -33.353980725641392, 2),
(-33.353980725641406, -41.188735957219443, 2),
(-24.511859180960553, -52.565851648125701, 2),
(-22.662405452377882, -53.389281500241538, 2),
(-7.0684219174985357, -57.567676795196682, 2),
(-1.0654075278254682e-14, -58, 2),
(7.0684219174985659, -57.567676795196675, 2),
(22.662405452377861, -53.389281500241552, 2),
(24.511859180960577, -52.565851648125694, 2),
(23.284854468843989, -28.754400573907919, 2),
(28.754400573907912, -23.284854468843999, 2),
(33.353980725641385, -41.18873595721945, 2),
(41.188735957219443, -33.353980725641406, 2),
]
for x, y, group in _nodes:
mi_addnode(x, y)
if group:
mi_selectnode(x, y)
mi_setnodeprop('', group)
mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
(0, 1, -1, "Нулевой потенциал", 0, 0),
(1, 2, -1, "Нулевой потенциал", 0, 0),
(2, 3, -1, "Нулевой потенциал", 0, 0),
(3, 0, -1, "Нулевой потенциал", 0, 0),
(47, 92, -1, "", 0, 0),
(5, 94, -1, "", 0, 0),
(6, 95, -1, "", 0, 0),
(8, 97, -1, "", 0, 0),
(11, 98, -1, "", 0, 0),
(13, 100, -1, "", 0, 0),
(14, 101, -1, "", 0, 0),
(16, 103, -1, "", 0, 0),
(17, 104, -1, "", 0, 0),
(19, 106, -1, "", 0, 0),
(22, 107, -1, "", 0, 0),
(24, 109, -1, "", 0, 0),
(25, 110, -1, "", 0, 0),
(27, 112, -1, "", 0, 0),
(28, 113, -1, "", 0, 0),
(30, 115, -1, "", 0, 0),
(33, 116, -1, "", 0, 0),
(35, 118, -1, "", 0, 0),
(36, 119, -1, "", 0, 0),
(38, 121, -1, "", 0, 0),
(39, 122, -1, "", 0, 0),
(41, 124, -1, "", 0, 0),
(44, 125, -1, "", 0, 0),
(46, 127, -1, "", 0, 0),
(213, 216, -1, "", 0, 2),
(175, 222, -1, "", 0, 2),
(223, 225, -1, "", 0, 2),
(224, 226, -1, "", 0, 2),
(180, 227, -1, "", 0, 2),
(186, 233, -1, "", 0, 2),
(234, 236, -1, "", 0, 2),
(235, 237, -1, "", 0, 2),
(191, 238, -1, "", 0, 2),
(197, 244, -1, "", 0, 2),
(245, 247, -1, "", 0, 2),
(246, 248, -1, "", 0, 2),
(202, 249, -1, "", 0, 2),
(208, 255, -1, "", 0, 2),
(256, 258, -1, "", 0, 2),
(257, 259, -1, "", 0, 2),
]
for a, b, size, boundary, hidden, group in _segments:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addsegment(x0, y0, x1, y1)
mi_selectsegment((x0+x1)/2, (y0+y1)/2)
mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
mi_clearselected()
# Дуги: угол против часовой стрелки и максимальный угол элемента в градусах.
_arcs = [
(4, 5, 7, 10, "", 0, 0),
(5, 6, 16, 10, "", 0, 0),
(6, 7, 2, 10, "", 0, 0),
(7, 8, 12, 10, "", 0, 0),
(8, 9, 2, 10, "", 0, 0),
(9, 10, 12, 10, "", 0, 0),
(10, 11, 2, 10, "", 0, 0),
(11, 12, 12, 10, "", 0, 0),
(12, 13, 2, 10, "", 0, 0),
(13, 14, 16, 10, "", 0, 0),
(14, 15, 7, 10, "", 0, 0),
(15, 16, 7, 10, "", 0, 0),
(16, 17, 16, 10, "", 0, 0),
(17, 18, 2, 10, "", 0, 0),
(18, 19, 12, 10, "", 0, 0),
(19, 20, 2, 10, "", 0, 0),
(20, 21, 12, 10, "", 0, 0),
(21, 22, 2, 10, "", 0, 0),
(22, 23, 12, 10, "", 0, 0),
(23, 24, 2, 10, "", 0, 0),
(24, 25, 16, 10, "", 0, 0),
(25, 26, 7, 10, "", 0, 0),
(26, 27, 7, 10, "", 0, 0),
(27, 28, 16, 10, "", 0, 0),
(28, 29, 2, 10, "", 0, 0),
(29, 30, 12, 10, "", 0, 0),
(30, 31, 2, 10, "", 0, 0),
(31, 32, 12, 10, "", 0, 0),
(32, 33, 2, 10, "", 0, 0),
(33, 34, 12, 10, "", 0, 0),
(34, 35, 2, 10, "", 0, 0),
(35, 36, 16, 10, "", 0, 0),
(36, 37, 7, 10, "", 0, 0),
(37, 38, 7, 10, "", 0, 0),
(38, 39, 16, 10, "", 0, 0),
(39, 40, 2, 10, "", 0, 0),
(40, 41, 12, 10, "", 0, 0),
(41, 42, 2, 10, "", 0, 0),
(42, 43, 12, 10, "", 0, 0),
(43, 44, 2, 10, "", 0, 0),
(44, 45, 12, 10, "", 0, 0),
(45, 46, 2, 10, "", 0, 0),
(46, 47, 16, 10, "", 0, 0),
(47, 4, 7, 10, "", 0, 0),
(48, 49, 7, 10, "", 0, 0),
(49, 50, 16, 10, "", 0, 0),
(50, 51, 2, 10, "", 0, 0),
(51, 52, 12, 10, "", 0, 0),
(52, 53, 2, 10, "", 0, 0),
(53, 54, 12, 10, "", 0, 0),
(54, 55, 2, 10, "", 0, 0),
(55, 56, 12, 10, "", 0, 0),
(56, 57, 2, 10, "", 0, 0),
(57, 58, 16, 10, "", 0, 0),
(58, 59, 7, 10, "", 0, 0),
(59, 60, 7, 10, "", 0, 0),
(60, 61, 16, 10, "", 0, 0),
(61, 62, 2, 10, "", 0, 0),
(62, 63, 12, 10, "", 0, 0),
(63, 64, 2, 10, "", 0, 0),
(64, 65, 12, 10, "", 0, 0),
(65, 66, 2, 10, "", 0, 0),
(66, 67, 12, 10, "", 0, 0),
(67, 68, 2, 10, "", 0, 0),
(68, 69, 16, 10, "", 0, 0),
(69, 70, 7, 10, "", 0, 0),
(70, 71, 7, 10, "", 0, 0),
(71, 72, 16, 10, "", 0, 0),
(72, 73, 2, 10, "", 0, 0),
(73, 74, 12, 10, "", 0, 0),
(74, 75, 2, 10, "", 0, 0),
(75, 76, 12, 10, "", 0, 0),
(76, 77, 2, 10, "", 0, 0),
(77, 78, 12, 10, "", 0, 0),
(78, 79, 2, 10, "", 0, 0),
(79, 80, 16, 10, "", 0, 0),
(80, 81, 7, 10, "", 0, 0),
(81, 82, 7, 10, "", 0, 0),
(82, 83, 16, 10, "", 0, 0),
(83, 84, 2, 10, "", 0, 0),
(84, 85, 12, 10, "", 0, 0),
(85, 86, 2, 10, "", 0, 0),
(86, 87, 12, 10, "", 0, 0),
(87, 88, 2, 10, "", 0, 0),
(88, 89, 12, 10, "", 0, 0),
(89, 90, 2, 10, "", 0, 0),
(90, 91, 16, 10, "", 0, 0),
(91, 48, 7, 10, "", 0, 0),
(92, 93, 7, 10, "", 0, 0),
(93, 94, 7, 10, "", 0, 0),
(95, 96, 2, 10, "", 0, 0),
(96, 97, 12, 10, "", 0, 0),
(98, 99, 12, 10, "", 0, 0),
(99, 100, 2, 10, "", 0, 0),
(101, 102, 7, 10, "", 0, 0),
(102, 103, 7, 10, "", 0, 0),
(104, 105, 2, 10, "", 0, 0),
(105, 106, 12, 10, "", 0, 0),
(107, 108, 12, 10, "", 0, 0),
(108, 109, 2, 10, "", 0, 0),
(110, 111, 7, 10, "", 0, 0),
(111, 112, 7, 10, "", 0, 0),
(113, 114, 2, 10, "", 0, 0),
(114, 115, 12, 10, "", 0, 0),
(116, 117, 12, 10, "", 0, 0),
(117, 118, 2, 10, "", 0, 0),
(119, 120, 7, 10, "", 0, 0),
(120, 121, 7, 10, "", 0, 0),
(122, 123, 2, 10, "", 0, 0),
(123, 124, 12, 10, "", 0, 0),
(125, 126, 12, 10, "", 0, 0),
(126, 127, 2, 10, "", 0, 0),
(128, 129, 7, 10, "", 0, 2),
(129, 130, 16, 10, "", 0, 2),
(130, 131, 2, 10, "", 0, 2),
(131, 132, 12, 10, "", 0, 2),
(132, 133, 2, 10, "", 0, 2),
(133, 134, 12, 10, "", 0, 2),
(134, 135, 2, 10, "", 0, 2),
(135, 136, 12, 10, "", 0, 2),
(136, 137, 2, 10, "", 0, 2),
(137, 138, 16, 10, "", 0, 2),
(138, 139, 7, 10, "", 0, 2),
(139, 140, 7, 10, "", 0, 2),
(140, 141, 16, 10, "", 0, 2),
(141, 142, 2, 10, "", 0, 2),
(142, 143, 12, 10, "", 0, 2),
(143, 144, 2, 10, "", 0, 2),
(144, 145, 12, 10, "", 0, 2),
(145, 146, 2, 10, "", 0, 2),
(146, 147, 12, 10, "", 0, 2),
(147, 148, 2, 10, "", 0, 2),
(148, 149, 16, 10, "", 0, 2),
(149, 150, 7, 10, "", 0, 2),
(150, 151, 7, 10, "", 0, 2),
(151, 152, 16, 10, "", 0, 2),
(152, 153, 2, 10, "", 0, 2),
(153, 154, 12, 10, "", 0, 2),
(154, 155, 2, 10, "", 0, 2),
(155, 156, 12, 10, "", 0, 2),
(156, 157, 2, 10, "", 0, 2),
(157, 158, 12, 10, "", 0, 2),
(158, 159, 2, 10, "", 0, 2),
(159, 160, 16, 10, "", 0, 2),
(160, 161, 7, 10, "", 0, 2),
(161, 162, 7, 10, "", 0, 2),
(162, 163, 16, 10, "", 0, 2),
(163, 164, 2, 10, "", 0, 2),
(164, 165, 12, 10, "", 0, 2),
(165, 166, 2, 10, "", 0, 2),
(166, 167, 12, 10, "", 0, 2),
(167, 168, 2, 10, "", 0, 2),
(168, 169, 12, 10, "", 0, 2),
(169, 170, 2, 10, "", 0, 2),
(170, 171, 16, 10, "", 0, 2),
(171, 128, 7, 10, "", 0, 2),
(172, 173, 7, 10, "", 0, 2),
(173, 174, 16, 10, "", 0, 2),
(174, 175, 2, 10, "", 0, 2),
(175, 176, 12, 10, "", 0, 2),
(176, 177, 2, 10, "", 0, 2),
(177, 178, 12, 10, "", 0, 2),
(178, 179, 2, 10, "", 0, 2),
(179, 180, 12, 10, "", 0, 2),
(180, 181, 2, 10, "", 0, 2),
(181, 182, 16, 10, "", 0, 2),
(182, 183, 7, 10, "", 0, 2),
(183, 184, 7, 10, "", 0, 2),
(184, 185, 16, 10, "", 0, 2),
(185, 186, 2, 10, "", 0, 2),
(186, 187, 12, 10, "", 0, 2),
(187, 188, 2, 10, "", 0, 2),
(188, 189, 12, 10, "", 0, 2),
(189, 190, 2, 10, "", 0, 2),
(190, 191, 12, 10, "", 0, 2),
(191, 192, 2, 10, "", 0, 2),
(192, 193, 16, 10, "", 0, 2),
(193, 194, 7, 10, "", 0, 2),
(194, 195, 7, 10, "", 0, 2),
(195, 196, 16, 10, "", 0, 2),
(196, 197, 2, 10, "", 0, 2),
(197, 198, 12, 10, "", 0, 2),
(198, 199, 2, 10, "", 0, 2),
(199, 200, 12, 10, "", 0, 2),
(200, 201, 2, 10, "", 0, 2),
(201, 202, 12, 10, "", 0, 2),
(202, 203, 2, 10, "", 0, 2),
(203, 204, 16, 10, "", 0, 2),
(204, 205, 7, 10, "", 0, 2),
(205, 206, 7, 10, "", 0, 2),
(206, 207, 16, 10, "", 0, 2),
(207, 208, 2, 10, "", 0, 2),
(208, 209, 12, 10, "", 0, 2),
(209, 210, 2, 10, "", 0, 2),
(210, 211, 12, 10, "", 0, 2),
(211, 212, 2, 10, "", 0, 2),
(212, 213, 12, 10, "", 0, 2),
(213, 214, 2, 10, "", 0, 2),
(214, 215, 16, 10, "", 0, 2),
(215, 172, 7, 10, "", 0, 2),
(216, 217, 2, 10, "", 0, 2),
(217, 218, 16, 10, "", 0, 2),
(218, 219, 7, 10, "", 0, 2),
(219, 220, 7, 10, "", 0, 2),
(220, 221, 16, 10, "", 0, 2),
(221, 222, 2, 10, "", 0, 2),
(223, 224, 12, 10, "", 0, 2),
(225, 226, 12, 10, "", 0, 2),
(227, 228, 2, 10, "", 0, 2),
(228, 229, 16, 10, "", 0, 2),
(229, 230, 7, 10, "", 0, 2),
(230, 231, 7, 10, "", 0, 2),
(231, 232, 16, 10, "", 0, 2),
(232, 233, 2, 10, "", 0, 2),
(234, 235, 12, 10, "", 0, 2),
(236, 237, 12, 10, "", 0, 2),
(238, 239, 2, 10, "", 0, 2),
(239, 240, 16, 10, "", 0, 2),
(240, 241, 7, 10, "", 0, 2),
(241, 242, 7, 10, "", 0, 2),
(242, 243, 16, 10, "", 0, 2),
(243, 244, 2, 10, "", 0, 2),
(245, 246, 12, 10, "", 0, 2),
(247, 248, 12, 10, "", 0, 2),
(249, 250, 2, 10, "", 0, 2),
(250, 251, 16, 10, "", 0, 2),
(251, 252, 7, 10, "", 0, 2),
(252, 253, 7, 10, "", 0, 2),
(253, 254, 16, 10, "", 0, 2),
(254, 255, 2, 10, "", 0, 2),
(256, 257, 12, 10, "", 0, 2),
(258, 259, 12, 10, "", 0, 2),
]
for a, b, angle, max_angle, boundary, hidden, group in _arcs:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addarc(x0, y0, x1, y1, angle, max_angle)
half = math.radians(angle)/2
cx = (x0+x1)/2 - (y1-y0)/(2*math.tan(half))
cy = (y0+y1)/2 + (x1-x0)/(2*math.tan(half))
xm = cx + (x0-cx)*math.cos(half) - (y0-cy)*math.sin(half)
ym = cy + (x0-cx)*math.sin(half) + (y0-cy)*math.cos(half)
mi_selectarcsegment(xm, ym)
mi_setarcsegmentprop(max_angle, boundary, hidden, group)
mi_clearselected()
# Метки: положение, материал, размер элемента, цепь, намагничивание, группа, витки.
_labels = [
(144.5, 144.5, "Воздух", 0, "", 0, 0, 1),
(0, 94, "Линейная сталь", 0, "", 0, 1, 1),
(73, 0, "Обмоточная область", 0, "Фаза А", 0, 1, 40),
(63.219854476264025, 36.499999999999993, "Обмоточная область", 0, "Фаза С", 0, 1, -40),
(36.500000000000007, 63.219854476264018, "Обмоточная область", 0, "Фаза В", 0, 1, 40),
(4.469813191451677e-15, 73, "Обмоточная область", 0, "Фаза А", 0, 1, -40),
(-36.499999999999986, 63.219854476264025, "Обмоточная область", 0, "Фаза С", 0, 1, 40),
(-63.219854476264025, 36.499999999999993, "Обмоточная область", 0, "Фаза В", 0, 1, -40),
(-73, 8.939626382903354e-15, "Обмоточная область", 0, "Фаза А", 0, 1, 40),
(-63.219854476264018, -36.500000000000007, "Обмоточная область", 0, "Фаза С", 0, 1, -40),
(-36.500000000000036, -63.219854476264004, "Обмоточная область", 0, "Фаза В", 0, 1, 40),
(-1.3409439574355031e-14, -73, "Обмоточная область", 0, "Фаза А", 0, 1, -40),
(36.500000000000007, -63.219854476264018, "Обмоточная область", 0, "Фаза С", 0, 1, 40),
(63.219854476264004, -36.500000000000036, "Обмоточная область", 0, "Фаза В", 0, 1, -40),
(26, 0, "Линейная сталь", 0, "", 0, 2, 1),
(46, 0, "Линейная сталь", 0, "", 0, 2, 1),
(31.81980515339464, 31.819805153394636, "Обмоточная область", 0, "Обмотка возбуждения", 0, 2, 150),
(2.8165946137914677e-15, 46, "Линейная сталь", 0, "", 0, 2, 1),
(-31.819805153394636, 31.81980515339464, "Обмоточная область", 0, "Обмотка возбуждения", 0, 2, -150),
(-46, 5.6331892275829354e-15, "Линейная сталь", 0, "", 0, 2, 1),
(-31.819805153394647, -31.819805153394636, "Обмоточная область", 0, "Обмотка возбуждения", 0, 2, 150),
(-8.4497838413744031e-15, -46, "Линейная сталь", 0, "", 0, 2, 1),
(31.819805153394629, -31.819805153394647, "Обмоточная область", 0, "Обмотка возбуждения", 0, 2, -150),
(0, 0, "Воздух", 0, "", 0, 2, 1),
(56.421980601819094, 17.249930578641468, "Воздух", 0, "", 0, 0, 1),
]
for x, y, material, size, circuit, direction, group, turns in _labels:
mi_addblocklabel(x, y)
if material:
mi_selectlabel(x, y)
mi_setblockprop(material, 1 if size <= 0 else 0, size, circuit, direction, group, turns)
mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 8. Модель неполная: переходите к следующему этапу, не запускайте решение.")

Этап 9 из 11
Локальные размеры сетки и готовая модель
- Продолжайте модель предыдущего этапа: уже заданные свойства и геометрию сохраняйте. Скачиваемый файл этого этапа содержит все предыдущие действия вместе с текущими изменениями.
- Откройте свойства каждой метки; снимите Auto mesh для положительного размера и укажите значение в миллиметрах. Нулевой либо отрицательный размер означает автоматический выбор.
- Проверьте ограничения длины на отрезках и угла на дугах по отдельным таблицам. Для дуги ограничение задаётся в градусах, а не в миллиметрах.
- Сверьте глобальный минимальный угол, умную сетку, материалы, токи, границы и все назначения. Теперь файл содержит полное состояние проверенного исходного варианта.
- Сохраните собственную рабочую копию через «Файл → Сохранить как». Изменённая пользователем копия должна рассчитываться заново; унаследованное решение ниже относится к неизменённому эталону.
Широкую таблицу можно прокрутить по горизонтали.
| № метки | Материал | Размер элемента, мм | Режим |
|---|---|---|---|
| 0 | Воздух | 8,5 | заданный |
| 1 | Линейная сталь | 3 | заданный |
| 2 | Обмоточная область | 2 | заданный |
| 3 | Обмоточная область | 2 | заданный |
| 4 | Обмоточная область | 2 | заданный |
| 5 | Обмоточная область | 2 | заданный |
| 6 | Обмоточная область | 2 | заданный |
| 7 | Обмоточная область | 2 | заданный |
| 8 | Обмоточная область | 2 | заданный |
| 9 | Обмоточная область | 2 | заданный |
| 10 | Обмоточная область | 2 | заданный |
| 11 | Обмоточная область | 2 | заданный |
| 12 | Обмоточная область | 2 | заданный |
| 13 | Обмоточная область | 2 | заданный |
| 14 | Линейная сталь | 2 | заданный |
| 15 | Линейная сталь | 2 | заданный |
| 16 | Обмоточная область | 1 | заданный |
| 17 | Линейная сталь | 2 | заданный |
| 18 | Обмоточная область | 1 | заданный |
| 19 | Линейная сталь | 2 | заданный |
| 20 | Обмоточная область | 1 | заданный |
| 21 | Линейная сталь | 2 | заданный |
| 22 | Обмоточная область | 1 | заданный |
| 23 | Воздух | 2 | заданный |
| 24 | Воздух | 0,35 | заданный |
Широкую таблицу можно прокрутить по горизонтали.
| № отрезка | Максимальная длина, мм | Режим |
|---|---|---|
| 0 | -1 | автоматический |
| 1 | -1 | автоматический |
| 2 | -1 | автоматический |
| 3 | -1 | автоматический |
| 4 | -1 | автоматический |
| 5 | -1 | автоматический |
| 6 | -1 | автоматический |
| 7 | -1 | автоматический |
| 8 | -1 | автоматический |
| 9 | -1 | автоматический |
| 10 | -1 | автоматический |
| 11 | -1 | автоматический |
| 12 | -1 | автоматический |
| 13 | -1 | автоматический |
| 14 | -1 | автоматический |
| 15 | -1 | автоматический |
| 16 | -1 | автоматический |
| 17 | -1 | автоматический |
| 18 | -1 | автоматический |
| 19 | -1 | автоматический |
| 20 | -1 | автоматический |
| 21 | -1 | автоматический |
| 22 | -1 | автоматический |
| 23 | -1 | автоматический |
| 24 | -1 | автоматический |
| 25 | -1 | автоматический |
| 26 | -1 | автоматический |
| 27 | -1 | автоматический |
| 28 | -1 | автоматический |
| 29 | -1 | автоматический |
| 30 | -1 | автоматический |
| 31 | -1 | автоматический |
| 32 | -1 | автоматический |
| 33 | -1 | автоматический |
| 34 | -1 | автоматический |
| 35 | -1 | автоматический |
| 36 | -1 | автоматический |
| 37 | -1 | автоматический |
| 38 | -1 | автоматический |
| 39 | -1 | автоматический |
| 40 | -1 | автоматический |
| 41 | -1 | автоматический |
| 42 | -1 | автоматический |
| 43 | -1 | автоматический |
| № дуги | Максимальный угол элемента, {}^\circ |
|---|---|
| 0 | 4 |
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 4 | 4 |
| 5 | 4 |
| 6 | 4 |
| 7 | 4 |
| 8 | 4 |
| 9 | 4 |
| 10 | 4 |
| 11 | 4 |
| 12 | 4 |
| 13 | 4 |
| 14 | 4 |
| 15 | 4 |
| 16 | 4 |
| 17 | 4 |
| 18 | 4 |
| 19 | 4 |
| 20 | 4 |
| 21 | 4 |
| 22 | 4 |
| 23 | 4 |
| 24 | 4 |
| 25 | 4 |
| 26 | 4 |
| 27 | 4 |
| 28 | 4 |
| 29 | 4 |
| 30 | 4 |
| 31 | 4 |
| 32 | 4 |
| 33 | 4 |
| 34 | 4 |
| 35 | 4 |
| 36 | 4 |
| 37 | 4 |
| 38 | 4 |
| 39 | 4 |
| 40 | 4 |
| 41 | 4 |
| 42 | 4 |
| 43 | 4 |
| 44 | 4 |
| 45 | 4 |
| 46 | 4 |
| 47 | 4 |
| 48 | 4 |
| 49 | 4 |
| 50 | 4 |
| 51 | 4 |
| 52 | 4 |
| 53 | 4 |
| 54 | 4 |
| 55 | 4 |
| 56 | 4 |
| 57 | 4 |
| 58 | 4 |
| 59 | 4 |
| 60 | 4 |
| 61 | 4 |
| 62 | 4 |
| 63 | 4 |
| 64 | 4 |
| 65 | 4 |
| 66 | 4 |
| 67 | 4 |
| 68 | 4 |
| 69 | 4 |
| 70 | 4 |
| 71 | 4 |
| 72 | 4 |
| 73 | 4 |
| 74 | 4 |
| 75 | 4 |
| 76 | 4 |
| 77 | 4 |
| 78 | 4 |
| 79 | 4 |
| 80 | 4 |
| 81 | 4 |
| 82 | 4 |
| 83 | 4 |
| 84 | 4 |
| 85 | 4 |
| 86 | 4 |
| 87 | 4 |
| 88 | 4 |
| 89 | 4 |
| 90 | 4 |
| 91 | 4 |
| 92 | 4 |
| 93 | 4 |
| 94 | 4 |
| 95 | 4 |
| 96 | 4 |
| 97 | 4 |
| 98 | 4 |
| 99 | 4 |
| 100 | 4 |
| 101 | 4 |
| 102 | 4 |
| 103 | 4 |
| 104 | 4 |
| 105 | 4 |
| 106 | 4 |
| 107 | 4 |
| 108 | 4 |
| 109 | 4 |
| 110 | 4 |
| 111 | 4 |
| 112 | 4 |
| 113 | 4 |
| 114 | 4 |
| 115 | 4 |
| 116 | 4 |
| 117 | 4 |
| 118 | 4 |
| 119 | 4 |
| 120 | 4 |
| 121 | 4 |
| 122 | 4 |
| 123 | 4 |
| 124 | 4 |
| 125 | 4 |
| 126 | 4 |
| 127 | 4 |
| 128 | 4 |
| 129 | 4 |
| 130 | 4 |
| 131 | 4 |
| 132 | 4 |
| 133 | 4 |
| 134 | 4 |
| 135 | 4 |
| 136 | 4 |
| 137 | 4 |
| 138 | 4 |
| 139 | 4 |
| 140 | 4 |
| 141 | 4 |
| 142 | 4 |
| 143 | 4 |
| 144 | 4 |
| 145 | 4 |
| 146 | 4 |
| 147 | 4 |
| 148 | 4 |
| 149 | 4 |
| 150 | 4 |
| 151 | 4 |
| 152 | 4 |
| 153 | 4 |
| 154 | 4 |
| 155 | 4 |
| 156 | 4 |
| 157 | 4 |
| 158 | 4 |
| 159 | 4 |
| 160 | 4 |
| 161 | 4 |
| 162 | 4 |
| 163 | 4 |
| 164 | 4 |
| 165 | 4 |
| 166 | 4 |
| 167 | 4 |
| 168 | 4 |
| 169 | 4 |
| 170 | 4 |
| 171 | 4 |
| 172 | 4 |
| 173 | 4 |
| 174 | 4 |
| 175 | 4 |
| 176 | 4 |
| 177 | 4 |
| 178 | 4 |
| 179 | 4 |
| 180 | 4 |
| 181 | 4 |
| 182 | 4 |
| 183 | 4 |
| 184 | 4 |
| 185 | 4 |
| 186 | 4 |
| 187 | 4 |
| 188 | 4 |
| 189 | 4 |
| 190 | 4 |
| 191 | 4 |
| 192 | 4 |
| 193 | 4 |
| 194 | 4 |
| 195 | 4 |
| 196 | 4 |
| 197 | 4 |
| 198 | 4 |
| 199 | 4 |
| 200 | 4 |
| 201 | 4 |
| 202 | 4 |
| 203 | 4 |
| 204 | 4 |
| 205 | 4 |
| 206 | 4 |
| 207 | 4 |
| 208 | 4 |
| 209 | 4 |
| 210 | 4 |
| 211 | 4 |
| 212 | 4 |
| 213 | 4 |
| 214 | 4 |
| 215 | 4 |
| 216 | 4 |
| 217 | 4 |
| 218 | 4 |
| 219 | 4 |
| 220 | 4 |
| 221 | 4 |
| 222 | 4 |
| 223 | 4 |
| 224 | 4 |
| 225 | 4 |
| 226 | 4 |
| 227 | 4 |
| 228 | 4 |
| 229 | 4 |
| 230 | 4 |
| 231 | 4 |
Сохранённое состояние этапа
Модель после шага 9Встроенный Python: шаг 9
Параметры этого файла подготовлены для расчёта.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 9: Локальные размеры сетки и готовая модель
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import math
# Новый документ: последующие команды относятся только к нему.
newdocument(0)
mi_probdef(0, "millimeters", "planar", 1e-08, 80, 25, 0)
mi_smartmesh(1)
# Материалы задаются явно, без зависимости от установленной библиотеки.
mi_addmaterial("Воздух", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Обмоточная область", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Линейная сталь", 1000, 1000, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addmaterial("Нелинейная сталь", 1, 1, 0, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
mi_addbhpoint("Нелинейная сталь", 0, 0)
mi_addbhpoint("Нелинейная сталь", 0.25, 100)
mi_addbhpoint("Нелинейная сталь", 0.5, 200)
mi_addbhpoint("Нелинейная сталь", 0.90000000000000002, 400)
mi_addbhpoint("Нелинейная сталь", 1.2, 800)
mi_addbhpoint("Нелинейная сталь", 1.45, 2000)
mi_addbhpoint("Нелинейная сталь", 1.6000000000000001, 5000)
mi_addbhpoint("Нелинейная сталь", 1.7, 10000)
mi_addmaterial("Постоянный магнит", 1.05, 1.05, 909456.81766797334, complex(0, 0), 0, 0, 0, 1, 0, 0, 0, 0, 0)
# Токи комплексные; код 1 означает последовательную цепь.
mi_addcircprop("Фаза А", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза В", complex(1.0000000000000002, 0), 1)
mi_addcircprop("Фаза С", complex(-2, 0), 1)
mi_addcircprop("Обмотка возбуждения", complex(2, 0), 1)
mi_addboundprop("Нулевой потенциал", 0, 0, 0, 0, 0, 0, complex(0, 0), complex(0, 0), 0, 0, 0)
# Координаты сохранены с исходной точностью; единицы — миллиметры.
_nodes = [
(-170, -170, 0),
(170, -170, 0),
(170, 170, 0),
(-170, 170, 0),
(60, 0, 0),
(59.552769098479317, 7.3121606043088487, 0),
(55.230291207146422, 23.443867709356425, 0),
(54.378467222198999, 25.357095704441967, 0),
(47.918130602837572, 36.108901389122899, 0),
(46.628757687418258, 37.759223462990242, 0),
(37.759223462990249, 46.628757687418258, 0),
(36.108901389122906, 47.918130602837572, 0),
(25.357095704441967, 54.378467222198999, 0),
(23.443867709356422, 55.230291207146422, 0),
(7.3121606043088496, 59.552769098479317, 0),
(3.6738190614671318e-15, 60, 0),
(-7.3121606043088416, 59.552769098479324, 0),
(-23.443867709356425, 55.230291207146415, 0),
(-25.35709570444196, 54.378467222199006, 0),
(-36.108901389122906, 47.918130602837564, 0),
(-37.759223462990235, 46.628757687418258, 0),
(-46.628757687418258, 37.759223462990242, 0),
(-47.918130602837579, 36.108901389122892, 0),
(-54.378467222198999, 25.357095704441971, 0),
(-55.230291207146422, 23.443867709356425, 0),
(-59.552769098479317, 7.3121606043088523, 0),
(-60, 7.3476381229342635e-15, 0),
(-59.552769098479324, -7.312160604308839, 0),
(-55.230291207146422, -23.443867709356415, 0),
(-54.378467222199006, -25.357095704441956, 0),
(-47.918130602837572, -36.108901389122906, 0),
(-46.628757687418251, -37.759223462990256, 0),
(-37.759223462990271, -46.628757687418236, 0),
(-36.108901389122899, -47.918130602837572, 0),
(-25.357095704441949, -54.378467222199006, 0),
(-23.443867709356429, -55.230291207146415, 0),
(-7.3121606043088301, -59.552769098479324, 0),
(-1.1021457184401395e-14, -60, 0),
(7.3121606043088612, -59.552769098479317, 0),
(23.443867709356411, -55.230291207146429, 0),
(25.357095704441978, -54.378467222198999, 0),
(36.108901389122877, -47.918130602837586, 0),
(37.759223462990249, -46.628757687418251, 0),
(46.628757687418236, -37.759223462990271, 0),
(47.918130602837572, -36.108901389122899, 0),
(54.378467222199006, -25.357095704441953, 0),
(55.230291207146415, -23.443867709356432, 0),
(59.552769098479324, -7.3121606043088336, 0),
(100, 0, 0),
(99.254615164132204, 12.186934340514748, 0),
(92.050485345244041, 39.07311284892738, 0),
(90.630778703664987, 42.261826174069945, 0),
(79.863551004729288, 60.181502315204824, 0),
(77.714596145697087, 62.932039104983737, 0),
(62.932039104983751, 77.714596145697087, 0),
(60.181502315204838, 79.863551004729288, 0),
(42.261826174069945, 90.630778703664987, 0),
(39.073112848927373, 92.050485345244041, 0),
(12.18693434051475, 99.254615164132204, 0),
(6.1230317691118863e-15, 100, 0),
(-12.186934340514737, 99.254615164132204, 0),
(-39.07311284892738, 92.050485345244027, 0),
(-42.261826174069931, 90.630778703665001, 0),
(-60.181502315204838, 79.863551004729274, 0),
(-62.93203910498373, 77.714596145697101, 0),
(-77.714596145697087, 62.932039104983737, 0),
(-79.863551004729288, 60.181502315204817, 0),
(-90.630778703664987, 42.261826174069952, 0),
(-92.050485345244041, 39.07311284892738, 0),
(-99.254615164132204, 12.186934340514755, 0),
(-100, 1.2246063538223773e-14, 0),
(-99.254615164132204, -12.18693434051473, 0),
(-92.050485345244041, -39.073112848927352, 0),
(-90.630778703665001, -42.261826174069924, 0),
(-79.863551004729288, -60.181502315204838, 0),
(-77.714596145697072, -62.932039104983758, 0),
(-62.932039104983787, -77.714596145697058, 0),
(-60.181502315204824, -79.863551004729288, 0),
(-42.261826174069917, -90.630778703665001, 0),
(-39.07311284892738, -92.050485345244027, 0),
(-12.186934340514718, -99.254615164132204, 0),
(-1.8369095307335659e-14, -100, 0),
(12.186934340514769, -99.254615164132204, 0),
(39.073112848927352, -92.050485345244056, 0),
(42.261826174069959, -90.630778703664987, 0),
(60.181502315204796, -79.863551004729302, 0),
(62.932039104983751, -77.714596145697072, 0),
(77.714596145697058, -62.932039104983787, 0),
(79.863551004729288, -60.181502315204824, 0),
(90.630778703665001, -42.261826174069924, 0),
(92.050485345244027, -39.073112848927387, 0),
(99.254615164132204, -12.186934340514723, 0),
(84.366422889512378, -10.358894189437514, 0),
(85, -2.0818308014980413e-14, 0),
(84.366422889512364, 10.358894189437548, 0),
(78.242912543457436, 33.212145921588274, 0),
(77.036161898115239, 35.922552247959452, 0),
(67.884018354019886, 51.154276967924105, 0),
(51.154276967924112, 67.884018354019886, 0),
(35.922552247959452, 77.036161898115239, 0),
(33.212145921588267, 78.242912543457436, 0),
(10.358894189437537, 84.366422889512364, 0),
(5.2045770037451033e-15, 85, 0),
(-10.358894189437526, 84.366422889512378, 0),
(-33.212145921588274, 78.242912543457422, 0),
(-35.922552247959445, 77.036161898115253, 0),
(-51.154276967924112, 67.884018354019886, 0),
(-67.884018354019901, 51.154276967924091, 0),
(-77.036161898115239, 35.922552247959459, 0),
(-78.242912543457436, 33.212145921588274, 0),
(-84.366422889512364, 10.358894189437541, 0),
(-85, 1.0409154007490207e-14, 0),
(-84.366422889512378, -10.358894189437521, 0),
(-78.242912543457436, -33.212145921588252, 0),
(-77.036161898115253, -35.922552247959437, 0),
(-67.884018354019886, -51.154276967924112, 0),
(-51.154276967924105, -67.884018354019886, 0),
(-35.92255224795943, -77.036161898115253, 0),
(-33.212145921588274, -78.242912543457422, 0),
(-10.35889418943751, -84.366422889512378, 0),
(-1.561373101123531e-14, -85, 0),
(10.358894189437553, -84.366422889512364, 0),
(33.212145921588245, -78.242912543457436, 0),
(35.922552247959466, -77.036161898115239, 0),
(51.154276967924076, -67.884018354019915, 0),
(67.884018354019886, -51.154276967924105, 0),
(77.036161898115253, -35.92255224795943, 0),
(78.242912543457422, -33.212145921588281, 0),
(18, 0, 2),
(17.865830729543795, 2.1936481812926547, 2),
(16.569087362143925, 7.0331603128069275, 2),
(16.313540166659699, 7.6071287113325896, 2),
(14.37543918085127, 10.832670416736869, 2),
(13.988627306225476, 11.327767038897074, 2),
(11.327767038897075, 13.988627306225476, 2),
(10.832670416736871, 14.37543918085127, 2),
(7.6071287113325896, 16.313540166659699, 2),
(7.0331603128069267, 16.569087362143925, 2),
(2.1936481812926547, 17.865830729543795, 2),
(1.1021457184401395e-15, 18, 2),
(-2.1936481812926525, 17.865830729543799, 2),
(-7.0331603128069275, 16.569087362143925, 2),
(-7.6071287113325878, 16.313540166659699, 2),
(-10.832670416736871, 14.375439180851268, 2),
(-11.327767038897072, 13.988627306225478, 2),
(-13.988627306225476, 11.327767038897074, 2),
(-14.375439180851274, 10.832670416736867, 2),
(-16.313540166659699, 7.6071287113325905, 2),
(-16.569087362143925, 7.0331603128069275, 2),
(-17.865830729543795, 2.193648181292656, 2),
(-18, 2.2042914368802791e-15, 2),
(-17.865830729543799, -2.1936481812926516, 2),
(-16.569087362143925, -7.033160312806924, 2),
(-16.313540166659699, -7.6071287113325869, 2),
(-14.37543918085127, -10.832670416736871, 2),
(-13.988627306225474, -11.327767038897077, 2),
(-11.327767038897081, -13.988627306225471, 2),
(-10.832670416736869, -14.37543918085127, 2),
(-7.6071287113325852, -16.313540166659699, 2),
(-7.0331603128069293, -16.569087362143925, 2),
(-2.1936481812926489, -17.865830729543799, 2),
(-3.3064371553204186e-15, -18, 2),
(2.1936481812926583, -17.865830729543795, 2),
(7.0331603128069231, -16.569087362143929, 2),
(7.6071287113325932, -16.313540166659699, 2),
(10.832670416736862, -14.375439180851275, 2),
(11.327767038897075, -13.988627306225474, 2),
(13.988627306225471, -11.327767038897081, 2),
(14.37543918085127, -10.832670416736869, 2),
(16.313540166659699, -7.6071287113325861, 2),
(16.569087362143925, -7.0331603128069302, 2),
(17.865830729543799, -2.1936481812926503, 2),
(35, 0, 2),
(34.739115307446269, 4.2654270191801613, 2),
(32.217669870835415, 13.675589497124582, 2),
(31.720772546282749, 14.791639160924481, 2),
(27.952242851655249, 21.063525810321689, 2),
(27.200108650993982, 22.02621368674431, 2),
(22.026213686744313, 27.200108650993982, 2),
(21.063525810321693, 27.952242851655249, 2),
(14.791639160924481, 31.720772546282749, 2),
(13.67558949712458, 32.217669870835415, 2),
(4.2654270191801622, 34.739115307446269, 2),
(2.1430611191891602e-15, 35, 2),
(-4.2654270191801578, 34.739115307446276, 2),
(-13.675589497124582, 32.217669870835408, 2),
(-14.791639160924477, 31.720772546282753, 2),
(-21.063525810321693, 27.952242851655246, 2),
(-22.026213686744306, 27.200108650993986, 2),
(-27.200108650993982, 22.02621368674431, 2),
(-27.952242851655253, 21.063525810321686, 2),
(-31.720772546282749, 14.791639160924483, 2),
(-32.217669870835415, 13.675589497124582, 2),
(-34.739115307446269, 4.265427019180164, 2),
(-35, 4.2861222383783204e-15, 2),
(-34.739115307446276, -4.265427019180156, 2),
(-32.217669870835415, -13.675589497124575, 2),
(-31.720772546282753, -14.791639160924476, 2),
(-27.952242851655249, -21.063525810321693, 2),
(-27.200108650993979, -22.026213686744317, 2),
(-22.026213686744324, -27.200108650993968, 2),
(-21.063525810321689, -27.952242851655249, 2),
(-14.79163916092447, -31.720772546282753, 2),
(-13.675589497124584, -32.217669870835408, 2),
(-4.2654270191801507, -34.739115307446276, 2),
(-6.4291833575674806e-15, -35, 2),
(4.2654270191801693, -34.739115307446269, 2),
(13.675589497124573, -32.217669870835415, 2),
(14.791639160924486, -31.720772546282749, 2),
(21.063525810321678, -27.952242851655257, 2),
(22.026213686744313, -27.200108650993979, 2),
(27.200108650993968, -22.026213686744324, 2),
(27.952242851655249, -21.063525810321689, 2),
(31.720772546282753, -14.791639160924472, 2),
(32.217669870835408, -13.675589497124585, 2),
(34.739115307446276, -4.2654270191801533, 2),
(52.565851648125701, -24.511859180960556, 2),
(53.389281500241538, -22.662405452377886, 2),
(57.567676795196682, -7.0684219174985392, 2),
(58, -1.4205433704339576e-14, 2),
(57.567676795196675, 7.0684219174985623, 2),
(53.389281500241552, 22.662405452377861, 2),
(52.565851648125694, 24.511859180960574, 2),
(28.754400573907922, 23.284854468843985, 2),
(23.284854468843989, 28.754400573907922, 2),
(41.188735957219457, 33.353980725641385, 2),
(33.353980725641385, 41.188735957219457, 2),
(24.511859180960567, 52.565851648125694, 2),
(22.662405452377875, 53.389281500241545, 2),
(7.0684219174985543, 57.567676795196675, 2),
(3.551358426084894e-15, 58, 2),
(-7.0684219174985472, 57.567676795196682, 2),
(-22.662405452377879, 53.389281500241538, 2),
(-24.51185918096056, 52.565851648125701, 2),
(-23.284854468843978, 28.754400573907926, 2),
(-28.754400573907922, 23.284854468843985, 2),
(-33.353980725641378, 41.188735957219464, 2),
(-41.188735957219457, 33.353980725641385, 2),
(-52.565851648125694, 24.51185918096057, 2),
(-53.389281500241545, 22.662405452377879, 2),
(-57.567676795196675, 7.0684219174985579, 2),
(-58, 7.1027168521697881e-15, 2),
(-57.567676795196682, -7.0684219174985436, 2),
(-53.389281500241545, -22.662405452377865, 2),
(-52.565851648125701, -24.511859180960556, 2),
(-28.754400573907919, -23.284854468843992, 2),
(-23.284854468843999, -28.754400573907912, 2),
(-41.18873595721945, -33.353980725641392, 2),
(-33.353980725641406, -41.188735957219443, 2),
(-24.511859180960553, -52.565851648125701, 2),
(-22.662405452377882, -53.389281500241538, 2),
(-7.0684219174985357, -57.567676795196682, 2),
(-1.0654075278254682e-14, -58, 2),
(7.0684219174985659, -57.567676795196675, 2),
(22.662405452377861, -53.389281500241552, 2),
(24.511859180960577, -52.565851648125694, 2),
(23.284854468843989, -28.754400573907919, 2),
(28.754400573907912, -23.284854468843999, 2),
(33.353980725641385, -41.18873595721945, 2),
(41.188735957219443, -33.353980725641406, 2),
]
for x, y, group in _nodes:
mi_addnode(x, y)
if group:
mi_selectnode(x, y)
mi_setnodeprop('', group)
mi_clearselected()
# Отрезки: индексы узлов, локальный размер, имя границы, видимость, группа.
_segments = [
(0, 1, -1, "Нулевой потенциал", 0, 0),
(1, 2, -1, "Нулевой потенциал", 0, 0),
(2, 3, -1, "Нулевой потенциал", 0, 0),
(3, 0, -1, "Нулевой потенциал", 0, 0),
(47, 92, -1, "", 0, 0),
(5, 94, -1, "", 0, 0),
(6, 95, -1, "", 0, 0),
(8, 97, -1, "", 0, 0),
(11, 98, -1, "", 0, 0),
(13, 100, -1, "", 0, 0),
(14, 101, -1, "", 0, 0),
(16, 103, -1, "", 0, 0),
(17, 104, -1, "", 0, 0),
(19, 106, -1, "", 0, 0),
(22, 107, -1, "", 0, 0),
(24, 109, -1, "", 0, 0),
(25, 110, -1, "", 0, 0),
(27, 112, -1, "", 0, 0),
(28, 113, -1, "", 0, 0),
(30, 115, -1, "", 0, 0),
(33, 116, -1, "", 0, 0),
(35, 118, -1, "", 0, 0),
(36, 119, -1, "", 0, 0),
(38, 121, -1, "", 0, 0),
(39, 122, -1, "", 0, 0),
(41, 124, -1, "", 0, 0),
(44, 125, -1, "", 0, 0),
(46, 127, -1, "", 0, 0),
(213, 216, -1, "", 0, 2),
(175, 222, -1, "", 0, 2),
(223, 225, -1, "", 0, 2),
(224, 226, -1, "", 0, 2),
(180, 227, -1, "", 0, 2),
(186, 233, -1, "", 0, 2),
(234, 236, -1, "", 0, 2),
(235, 237, -1, "", 0, 2),
(191, 238, -1, "", 0, 2),
(197, 244, -1, "", 0, 2),
(245, 247, -1, "", 0, 2),
(246, 248, -1, "", 0, 2),
(202, 249, -1, "", 0, 2),
(208, 255, -1, "", 0, 2),
(256, 258, -1, "", 0, 2),
(257, 259, -1, "", 0, 2),
]
for a, b, size, boundary, hidden, group in _segments:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addsegment(x0, y0, x1, y1)
mi_selectsegment((x0+x1)/2, (y0+y1)/2)
mi_setsegmentprop(boundary, size, 1 if size <= 0 else 0, hidden, group)
mi_clearselected()
# Дуги: угол против часовой стрелки и максимальный угол элемента в градусах.
_arcs = [
(4, 5, 7, 4, "", 0, 0),
(5, 6, 16, 4, "", 0, 0),
(6, 7, 2, 4, "", 0, 0),
(7, 8, 12, 4, "", 0, 0),
(8, 9, 2, 4, "", 0, 0),
(9, 10, 12, 4, "", 0, 0),
(10, 11, 2, 4, "", 0, 0),
(11, 12, 12, 4, "", 0, 0),
(12, 13, 2, 4, "", 0, 0),
(13, 14, 16, 4, "", 0, 0),
(14, 15, 7, 4, "", 0, 0),
(15, 16, 7, 4, "", 0, 0),
(16, 17, 16, 4, "", 0, 0),
(17, 18, 2, 4, "", 0, 0),
(18, 19, 12, 4, "", 0, 0),
(19, 20, 2, 4, "", 0, 0),
(20, 21, 12, 4, "", 0, 0),
(21, 22, 2, 4, "", 0, 0),
(22, 23, 12, 4, "", 0, 0),
(23, 24, 2, 4, "", 0, 0),
(24, 25, 16, 4, "", 0, 0),
(25, 26, 7, 4, "", 0, 0),
(26, 27, 7, 4, "", 0, 0),
(27, 28, 16, 4, "", 0, 0),
(28, 29, 2, 4, "", 0, 0),
(29, 30, 12, 4, "", 0, 0),
(30, 31, 2, 4, "", 0, 0),
(31, 32, 12, 4, "", 0, 0),
(32, 33, 2, 4, "", 0, 0),
(33, 34, 12, 4, "", 0, 0),
(34, 35, 2, 4, "", 0, 0),
(35, 36, 16, 4, "", 0, 0),
(36, 37, 7, 4, "", 0, 0),
(37, 38, 7, 4, "", 0, 0),
(38, 39, 16, 4, "", 0, 0),
(39, 40, 2, 4, "", 0, 0),
(40, 41, 12, 4, "", 0, 0),
(41, 42, 2, 4, "", 0, 0),
(42, 43, 12, 4, "", 0, 0),
(43, 44, 2, 4, "", 0, 0),
(44, 45, 12, 4, "", 0, 0),
(45, 46, 2, 4, "", 0, 0),
(46, 47, 16, 4, "", 0, 0),
(47, 4, 7, 4, "", 0, 0),
(48, 49, 7, 4, "", 0, 0),
(49, 50, 16, 4, "", 0, 0),
(50, 51, 2, 4, "", 0, 0),
(51, 52, 12, 4, "", 0, 0),
(52, 53, 2, 4, "", 0, 0),
(53, 54, 12, 4, "", 0, 0),
(54, 55, 2, 4, "", 0, 0),
(55, 56, 12, 4, "", 0, 0),
(56, 57, 2, 4, "", 0, 0),
(57, 58, 16, 4, "", 0, 0),
(58, 59, 7, 4, "", 0, 0),
(59, 60, 7, 4, "", 0, 0),
(60, 61, 16, 4, "", 0, 0),
(61, 62, 2, 4, "", 0, 0),
(62, 63, 12, 4, "", 0, 0),
(63, 64, 2, 4, "", 0, 0),
(64, 65, 12, 4, "", 0, 0),
(65, 66, 2, 4, "", 0, 0),
(66, 67, 12, 4, "", 0, 0),
(67, 68, 2, 4, "", 0, 0),
(68, 69, 16, 4, "", 0, 0),
(69, 70, 7, 4, "", 0, 0),
(70, 71, 7, 4, "", 0, 0),
(71, 72, 16, 4, "", 0, 0),
(72, 73, 2, 4, "", 0, 0),
(73, 74, 12, 4, "", 0, 0),
(74, 75, 2, 4, "", 0, 0),
(75, 76, 12, 4, "", 0, 0),
(76, 77, 2, 4, "", 0, 0),
(77, 78, 12, 4, "", 0, 0),
(78, 79, 2, 4, "", 0, 0),
(79, 80, 16, 4, "", 0, 0),
(80, 81, 7, 4, "", 0, 0),
(81, 82, 7, 4, "", 0, 0),
(82, 83, 16, 4, "", 0, 0),
(83, 84, 2, 4, "", 0, 0),
(84, 85, 12, 4, "", 0, 0),
(85, 86, 2, 4, "", 0, 0),
(86, 87, 12, 4, "", 0, 0),
(87, 88, 2, 4, "", 0, 0),
(88, 89, 12, 4, "", 0, 0),
(89, 90, 2, 4, "", 0, 0),
(90, 91, 16, 4, "", 0, 0),
(91, 48, 7, 4, "", 0, 0),
(92, 93, 7, 4, "", 0, 0),
(93, 94, 7, 4, "", 0, 0),
(95, 96, 2, 4, "", 0, 0),
(96, 97, 12, 4, "", 0, 0),
(98, 99, 12, 4, "", 0, 0),
(99, 100, 2, 4, "", 0, 0),
(101, 102, 7, 4, "", 0, 0),
(102, 103, 7, 4, "", 0, 0),
(104, 105, 2, 4, "", 0, 0),
(105, 106, 12, 4, "", 0, 0),
(107, 108, 12, 4, "", 0, 0),
(108, 109, 2, 4, "", 0, 0),
(110, 111, 7, 4, "", 0, 0),
(111, 112, 7, 4, "", 0, 0),
(113, 114, 2, 4, "", 0, 0),
(114, 115, 12, 4, "", 0, 0),
(116, 117, 12, 4, "", 0, 0),
(117, 118, 2, 4, "", 0, 0),
(119, 120, 7, 4, "", 0, 0),
(120, 121, 7, 4, "", 0, 0),
(122, 123, 2, 4, "", 0, 0),
(123, 124, 12, 4, "", 0, 0),
(125, 126, 12, 4, "", 0, 0),
(126, 127, 2, 4, "", 0, 0),
(128, 129, 7, 4, "", 0, 2),
(129, 130, 16, 4, "", 0, 2),
(130, 131, 2, 4, "", 0, 2),
(131, 132, 12, 4, "", 0, 2),
(132, 133, 2, 4, "", 0, 2),
(133, 134, 12, 4, "", 0, 2),
(134, 135, 2, 4, "", 0, 2),
(135, 136, 12, 4, "", 0, 2),
(136, 137, 2, 4, "", 0, 2),
(137, 138, 16, 4, "", 0, 2),
(138, 139, 7, 4, "", 0, 2),
(139, 140, 7, 4, "", 0, 2),
(140, 141, 16, 4, "", 0, 2),
(141, 142, 2, 4, "", 0, 2),
(142, 143, 12, 4, "", 0, 2),
(143, 144, 2, 4, "", 0, 2),
(144, 145, 12, 4, "", 0, 2),
(145, 146, 2, 4, "", 0, 2),
(146, 147, 12, 4, "", 0, 2),
(147, 148, 2, 4, "", 0, 2),
(148, 149, 16, 4, "", 0, 2),
(149, 150, 7, 4, "", 0, 2),
(150, 151, 7, 4, "", 0, 2),
(151, 152, 16, 4, "", 0, 2),
(152, 153, 2, 4, "", 0, 2),
(153, 154, 12, 4, "", 0, 2),
(154, 155, 2, 4, "", 0, 2),
(155, 156, 12, 4, "", 0, 2),
(156, 157, 2, 4, "", 0, 2),
(157, 158, 12, 4, "", 0, 2),
(158, 159, 2, 4, "", 0, 2),
(159, 160, 16, 4, "", 0, 2),
(160, 161, 7, 4, "", 0, 2),
(161, 162, 7, 4, "", 0, 2),
(162, 163, 16, 4, "", 0, 2),
(163, 164, 2, 4, "", 0, 2),
(164, 165, 12, 4, "", 0, 2),
(165, 166, 2, 4, "", 0, 2),
(166, 167, 12, 4, "", 0, 2),
(167, 168, 2, 4, "", 0, 2),
(168, 169, 12, 4, "", 0, 2),
(169, 170, 2, 4, "", 0, 2),
(170, 171, 16, 4, "", 0, 2),
(171, 128, 7, 4, "", 0, 2),
(172, 173, 7, 4, "", 0, 2),
(173, 174, 16, 4, "", 0, 2),
(174, 175, 2, 4, "", 0, 2),
(175, 176, 12, 4, "", 0, 2),
(176, 177, 2, 4, "", 0, 2),
(177, 178, 12, 4, "", 0, 2),
(178, 179, 2, 4, "", 0, 2),
(179, 180, 12, 4, "", 0, 2),
(180, 181, 2, 4, "", 0, 2),
(181, 182, 16, 4, "", 0, 2),
(182, 183, 7, 4, "", 0, 2),
(183, 184, 7, 4, "", 0, 2),
(184, 185, 16, 4, "", 0, 2),
(185, 186, 2, 4, "", 0, 2),
(186, 187, 12, 4, "", 0, 2),
(187, 188, 2, 4, "", 0, 2),
(188, 189, 12, 4, "", 0, 2),
(189, 190, 2, 4, "", 0, 2),
(190, 191, 12, 4, "", 0, 2),
(191, 192, 2, 4, "", 0, 2),
(192, 193, 16, 4, "", 0, 2),
(193, 194, 7, 4, "", 0, 2),
(194, 195, 7, 4, "", 0, 2),
(195, 196, 16, 4, "", 0, 2),
(196, 197, 2, 4, "", 0, 2),
(197, 198, 12, 4, "", 0, 2),
(198, 199, 2, 4, "", 0, 2),
(199, 200, 12, 4, "", 0, 2),
(200, 201, 2, 4, "", 0, 2),
(201, 202, 12, 4, "", 0, 2),
(202, 203, 2, 4, "", 0, 2),
(203, 204, 16, 4, "", 0, 2),
(204, 205, 7, 4, "", 0, 2),
(205, 206, 7, 4, "", 0, 2),
(206, 207, 16, 4, "", 0, 2),
(207, 208, 2, 4, "", 0, 2),
(208, 209, 12, 4, "", 0, 2),
(209, 210, 2, 4, "", 0, 2),
(210, 211, 12, 4, "", 0, 2),
(211, 212, 2, 4, "", 0, 2),
(212, 213, 12, 4, "", 0, 2),
(213, 214, 2, 4, "", 0, 2),
(214, 215, 16, 4, "", 0, 2),
(215, 172, 7, 4, "", 0, 2),
(216, 217, 2, 4, "", 0, 2),
(217, 218, 16, 4, "", 0, 2),
(218, 219, 7, 4, "", 0, 2),
(219, 220, 7, 4, "", 0, 2),
(220, 221, 16, 4, "", 0, 2),
(221, 222, 2, 4, "", 0, 2),
(223, 224, 12, 4, "", 0, 2),
(225, 226, 12, 4, "", 0, 2),
(227, 228, 2, 4, "", 0, 2),
(228, 229, 16, 4, "", 0, 2),
(229, 230, 7, 4, "", 0, 2),
(230, 231, 7, 4, "", 0, 2),
(231, 232, 16, 4, "", 0, 2),
(232, 233, 2, 4, "", 0, 2),
(234, 235, 12, 4, "", 0, 2),
(236, 237, 12, 4, "", 0, 2),
(238, 239, 2, 4, "", 0, 2),
(239, 240, 16, 4, "", 0, 2),
(240, 241, 7, 4, "", 0, 2),
(241, 242, 7, 4, "", 0, 2),
(242, 243, 16, 4, "", 0, 2),
(243, 244, 2, 4, "", 0, 2),
(245, 246, 12, 4, "", 0, 2),
(247, 248, 12, 4, "", 0, 2),
(249, 250, 2, 4, "", 0, 2),
(250, 251, 16, 4, "", 0, 2),
(251, 252, 7, 4, "", 0, 2),
(252, 253, 7, 4, "", 0, 2),
(253, 254, 16, 4, "", 0, 2),
(254, 255, 2, 4, "", 0, 2),
(256, 257, 12, 4, "", 0, 2),
(258, 259, 12, 4, "", 0, 2),
]
for a, b, angle, max_angle, boundary, hidden, group in _arcs:
x0, y0 = _nodes[a][:2]
x1, y1 = _nodes[b][:2]
mi_addarc(x0, y0, x1, y1, angle, max_angle)
half = math.radians(angle)/2
cx = (x0+x1)/2 - (y1-y0)/(2*math.tan(half))
cy = (y0+y1)/2 + (x1-x0)/(2*math.tan(half))
xm = cx + (x0-cx)*math.cos(half) - (y0-cy)*math.sin(half)
ym = cy + (x0-cx)*math.sin(half) + (y0-cy)*math.cos(half)
mi_selectarcsegment(xm, ym)
mi_setarcsegmentprop(max_angle, boundary, hidden, group)
mi_clearselected()
# Метки: положение, материал, размер элемента, цепь, намагничивание, группа, витки.
_labels = [
(144.5, 144.5, "Воздух", 8.5, "", 0, 0, 1),
(0, 94, "Линейная сталь", 3, "", 0, 1, 1),
(73, 0, "Обмоточная область", 2, "Фаза А", 0, 1, 40),
(63.219854476264025, 36.499999999999993, "Обмоточная область", 2, "Фаза С", 0, 1, -40),
(36.500000000000007, 63.219854476264018, "Обмоточная область", 2, "Фаза В", 0, 1, 40),
(4.469813191451677e-15, 73, "Обмоточная область", 2, "Фаза А", 0, 1, -40),
(-36.499999999999986, 63.219854476264025, "Обмоточная область", 2, "Фаза С", 0, 1, 40),
(-63.219854476264025, 36.499999999999993, "Обмоточная область", 2, "Фаза В", 0, 1, -40),
(-73, 8.939626382903354e-15, "Обмоточная область", 2, "Фаза А", 0, 1, 40),
(-63.219854476264018, -36.500000000000007, "Обмоточная область", 2, "Фаза С", 0, 1, -40),
(-36.500000000000036, -63.219854476264004, "Обмоточная область", 2, "Фаза В", 0, 1, 40),
(-1.3409439574355031e-14, -73, "Обмоточная область", 2, "Фаза А", 0, 1, -40),
(36.500000000000007, -63.219854476264018, "Обмоточная область", 2, "Фаза С", 0, 1, 40),
(63.219854476264004, -36.500000000000036, "Обмоточная область", 2, "Фаза В", 0, 1, -40),
(26, 0, "Линейная сталь", 2, "", 0, 2, 1),
(46, 0, "Линейная сталь", 2, "", 0, 2, 1),
(31.81980515339464, 31.819805153394636, "Обмоточная область", 1, "Обмотка возбуждения", 0, 2, 150),
(2.8165946137914677e-15, 46, "Линейная сталь", 2, "", 0, 2, 1),
(-31.819805153394636, 31.81980515339464, "Обмоточная область", 1, "Обмотка возбуждения", 0, 2, -150),
(-46, 5.6331892275829354e-15, "Линейная сталь", 2, "", 0, 2, 1),
(-31.819805153394647, -31.819805153394636, "Обмоточная область", 1, "Обмотка возбуждения", 0, 2, 150),
(-8.4497838413744031e-15, -46, "Линейная сталь", 2, "", 0, 2, 1),
(31.819805153394629, -31.819805153394647, "Обмоточная область", 1, "Обмотка возбуждения", 0, 2, -150),
(0, 0, "Воздух", 2, "", 0, 2, 1),
(56.421980601819094, 17.249930578641468, "Воздух", 0.34999999999999998, "", 0, 0, 1),
]
for x, y, material, size, circuit, direction, group, turns in _labels:
mi_addblocklabel(x, y)
if material:
mi_selectlabel(x, y)
mi_setblockprop(material, 1 if size <= 0 else 0, size, circuit, direction, group, turns)
mi_clearselected()
mi_zoomnatural()
# Скрипт воспроизводит этап в памяти. При необходимости сохраните свою копию через File → Save As.
print("Готов шаг 9. Модель полная; автоматический расчёт не запускался.")

Этап 10 из 11
Просмотр сохранённой сетки
- Скачайте файлы «Явнополюсная-машина-09-Готовая-модель.fem» и «Явнополюсная-машина-09-Готовая-модель.ans» в одну папку. Их имена до расширения должны совпадать; сохраняйте исходные имена, чтобы FEMM нашёл готовое решение.
- Откройте именно файл «Полная модель шага 9 для просмотра решения», затем выполните mi_loadsolution() во встроенной консоли Python. Отдельный файл «Модель после шага 10» содержит то же состояние геометрии, но к его имени не приложено отдельное решение.
- В постпроцессоре выполните mo_showmesh(): команда показывает сетку готового решения и не создаёт новую сетку. Программу этого этапа также сохраните рядом с парой файлов модели и решения; запускайте её во встроенном Python FEMM.
- Рассмотрите сгущение сетки в узких зазорах и у границ материалов, если они присутствуют в модели. Оценка точности требует отдельной проверки сходимости; один снимок сетки её не заменяет.
- Для изменённой рабочей копии сетку и решение нужно построить заново. Приложенное решение относится только к неизменённому примеру.
Широкую таблицу можно прокрутить по горизонтали.
| № метки | Материал | Размер элемента, мм | Режим |
|---|---|---|---|
| 0 | Воздух | 8,5 | заданный |
| 1 | Линейная сталь | 3 | заданный |
| 2 | Обмоточная область | 2 | заданный |
| 3 | Обмоточная область | 2 | заданный |
| 4 | Обмоточная область | 2 | заданный |
| 5 | Обмоточная область | 2 | заданный |
| 6 | Обмоточная область | 2 | заданный |
| 7 | Обмоточная область | 2 | заданный |
| 8 | Обмоточная область | 2 | заданный |
| 9 | Обмоточная область | 2 | заданный |
| 10 | Обмоточная область | 2 | заданный |
| 11 | Обмоточная область | 2 | заданный |
| 12 | Обмоточная область | 2 | заданный |
| 13 | Обмоточная область | 2 | заданный |
| 14 | Линейная сталь | 2 | заданный |
| 15 | Линейная сталь | 2 | заданный |
| 16 | Обмоточная область | 1 | заданный |
| 17 | Линейная сталь | 2 | заданный |
| 18 | Обмоточная область | 1 | заданный |
| 19 | Линейная сталь | 2 | заданный |
| 20 | Обмоточная область | 1 | заданный |
| 21 | Линейная сталь | 2 | заданный |
| 22 | Обмоточная область | 1 | заданный |
| 23 | Воздух | 2 | заданный |
| 24 | Воздух | 0,35 | заданный |
Сохранённое состояние этапа
Полная модель шага 9 для просмотра решенияМодель после шага 10Сохранённое решение эталонаВстроенный Python: шаг 10
Параметры этого файла подготовлены для расчёта.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 10: Просмотр сохранённой сетки
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import os
try:
_script = __file__.replace(chr(92), '/')
_folder = _script.rsplit('/', 1)[0] if '/' in _script else os.getcwd()
except NameError:
_folder = os.getcwd()
# Открываем готовый эталон и его унаследованное решение из одной папки.
opendocument(_folder + '/' + "Явнополюсная-машина-09-Готовая-модель.fem")
mi_loadsolution()
mo_clearblock()
mo_clearcontour()
mo_zoomnatural()
mo_showdensityplot(1, 0, 1.8, 0, 'bmag')
# Показать существующие элементы из .ans; сетка не строится заново.
mo_showmesh()

Этап 11 из 11
Поле и численные результаты
- Для просмотра приложенного результата используйте ту же пару итоговых файлов модели и решения из предыдущего этапа. Программу этого этапа сохраните в той же папке: она открывает готовое решение, не запуская новый расчёт. Файл «Модель после шага 11» сохраняет итоговую геометрию; отдельного одноимённого решения к нему нет.
- Включите карту модуля магнитной индукции и прочитайте шкалу в теслах. Последовательно откройте результаты каждой цепи и сравните ток, полевое напряжение и потокосцепление с таблицей.
- Чтобы проверить энергию всей модели во встроенной консоли Python, выполните последовательно
mo_clearblock(),mo_groupselectblock(), затемprint(mo_blockintegral(2)). Для коэнергии при том же выделении выполнитеprint(mo_blockintegral(17)). После проверки снимите выделение командойmo_clearblock(). - Для момента ротора относительно начала координат выделите только группу 2:
mo_clearblock(), затемmo_groupselectblock(2). Выполнитеprint(mo_blockintegral(22))и сравните результат в Н·м вместе со знаком. После проверки выполнитеmo_clearblock(). - Это неподвижное токовое состояние. Скоростная ЭДС, коммутация и полный привод не возникают от одной карты поля; для них требуются описанные в курсе серии положений и внешние соотношения.
- Таблица содержит результаты этой модели. После изменения параметров выполните новый расчёт через Analysis → Analyze, откройте результат через Analysis → View Results и сравните значения.
- Момент в таблице этого этапа относится к исходной учебной сетке. Уточнённые значения, сравнение методов и файлы рекомендуемой сетки приведены в разделе «Сходимость момента» выше. По исходному количеству выведенных знаков точность не оценивают.
Широкую таблицу можно прокрутить по горизонтали.
| Цепь | Ток, А | Полевое напряжение, В | Потокосцепление, Вб |
|---|---|---|---|
| Фаза А | 1 | 0 | 0,004146 |
| Обмотка возбуждения | 2 | 0 | 0,1368 |
| Фаза С | -2 | 0 | -0,03512 |
| Фаза В | 1 | 0 | 0,03349 |
| Величина | Значение |
|---|---|
| Энергия, Дж | 0,1908 |
| Коэнергия, Дж | 0,1908 |
| Момент, Н·м | -0,04857 |
Сохранённое состояние этапа
Полная модель шага 9 для просмотра решенияМодель после шага 11Сохранённое решение эталонаВстроенный Python: шаг 11
Параметры этого файла подготовлены для расчёта.
Посмотреть программу этапа с русскими комментариями
# Синхронная машина с явнополюсным ротором
# Шаг 11: Поле и численные результаты
# Запускайте внутри FEMM 5 через File → Open Python Script.
# Исходные учебные модели не изменяются; новый полевой расчёт не выполняется.
import os
try:
_script = __file__.replace(chr(92), '/')
_folder = _script.rsplit('/', 1)[0] if '/' in _script else os.getcwd()
except NameError:
_folder = os.getcwd()
# Открываем готовый эталон и его унаследованное решение из одной папки.
opendocument(_folder + '/' + "Явнополюсная-машина-09-Готовая-модель.fem")
mi_loadsolution()
mo_clearblock()
mo_clearcontour()
mo_zoomnatural()
mo_showdensityplot(1, 0, 1.8, 0, 'bmag')
mo_hidemesh()
# Запрашиваем реальные результаты всех сохранённых цепей.
print("Фаза А: I, U поля, потокосцепление", mo_getcircuitproperties("Фаза А"))
print("Фаза В: I, U поля, потокосцепление", mo_getcircuitproperties("Фаза В"))
print("Фаза С: I, U поля, потокосцепление", mo_getcircuitproperties("Фаза С"))
print("Обмотка возбуждения: I, U поля, потокосцепление", mo_getcircuitproperties("Обмотка возбуждения"))
# Энергия вычисляется по всем областям эталона.
mo_groupselectblock()
print('Энергия, Дж:', mo_blockintegral(2))
mo_clearblock()
