# Вентильно-индукторная машина: исходное положение
# Шаг 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(3, 0), 1)
mi_addcircprop("Фаза В", complex(0, 0), 1)
mi_addcircprop("Фаза С", complex(0, 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),
    (80, 0, 0),
    (78.784620240976636, 13.891854213354426, 0),
    (78.251808058704455, 16.632935265420748, 0),
    (77.623658102079716, 19.353751647973418, 0),
    (74.174708365342994, 29.96852747327296, 0),
    (63.04086028853775, 49.252918026052662, 0),
    (55.57266963671978, 57.547184027092086, 0),
    (51.423008774923147, 61.283555449518239, 0),
    (27.361611466053507, 75.175409662872667, 0),
    (22.050988465359932, 76.900935675065512, 0),
    (16.632935265420755, 78.251808058704441, 0),
    (11.133848076805236, 79.221445499325625, 0),
    (4.898425415289509e-15, 80, 0),
    (-11.133848076805229, 79.221445499325625, 0),
    (-16.632935265420748, 78.251808058704455, 0),
    (-22.050988465359925, 76.900935675065512, 0),
    (-27.361611466053496, 75.175409662872681, 0),
    (-51.423008774923147, 61.283555449518239, 0),
    (-55.572669636719787, 57.547184027092086, 0),
    (-63.04086028853775, 49.252918026052669, 0),
    (-74.17470836534298, 29.968527473272978, 0),
    (-77.623658102079716, 19.353751647973418, 0),
    (-78.251808058704455, 16.632935265420745, 0),
    (-78.784620240976636, 13.891854213354422, 0),
    (-80, 9.7968508305790181e-15, 0),
    (-78.784620240976636, -13.891854213354438, 0),
    (-78.251808058704441, -16.632935265420763, 0),
    (-77.623658102079716, -19.3537516479734, 0),
    (-74.174708365342994, -29.96852747327296, 0),
    (-63.040860288537758, -49.252918026052654, 0),
    (-55.57266963671978, -57.547184027092094, 0),
    (-51.423008774923161, -61.283555449518232, 0),
    (-27.361611466053482, -75.175409662872681, 0),
    (-22.050988465359911, -76.900935675065526, 0),
    (-16.632935265420784, -78.251808058704441, 0),
    (-11.133848076805267, -79.221445499325625, 0),
    (-1.4695276245868527e-14, -80, 0),
    (11.133848076805236, -79.221445499325625, 0),
    (16.632935265420755, -78.251808058704441, 0),
    (22.05098846535995, -76.900935675065497, 0),
    (27.361611466053517, -75.175409662872667, 0),
    (51.42300877492314, -61.283555449518246, 0),
    (55.57266963671978, -57.547184027092094, 0),
    (63.040860288537758, -49.252918026052654, 0),
    (74.17470836534298, -29.968527473272989, 0),
    (77.623658102079716, -19.353751647973429, 0),
    (78.251808058704441, -16.632935265420791, 0),
    (78.784620240976636, -13.891854213354431, 0),
    (100, 0, 0),
    (98.480775301220802, 17.364817766693033, 0),
    (97.814760073380569, 20.791169081775934, 0),
    (97.029572627599649, 24.192189559966774, 0),
    (92.718385456678746, 37.460659341591203, 0),
    (78.801075360672186, 61.566147532565829, 0),
    (69.465837045899718, 71.933980033865112, 0),
    (64.278760968653941, 76.604444311897808, 0),
    (34.202014332566883, 93.96926207859083, 0),
    (27.563735581699916, 96.126169593831889, 0),
    (20.791169081775944, 97.814760073380555, 0),
    (13.917310096006547, 99.026806874157032, 0),
    (6.1230317691118863e-15, 100, 0),
    (-13.917310096006535, 99.026806874157032, 0),
    (-20.791169081775934, 97.814760073380569, 0),
    (-27.563735581699905, 96.126169593831889, 0),
    (-34.202014332566868, 93.969262078590845, 0),
    (-64.278760968653941, 76.604444311897808, 0),
    (-69.465837045899733, 71.933980033865112, 0),
    (-78.801075360672186, 61.566147532565843, 0),
    (-92.718385456678732, 37.460659341591224, 0),
    (-97.029572627599649, 24.192189559966774, 0),
    (-97.814760073380569, 20.79116908177593, 0),
    (-98.480775301220802, 17.364817766693026, 0),
    (-100, 1.2246063538223773e-14, 0),
    (-98.480775301220802, -17.364817766693047, 0),
    (-97.814760073380555, -20.791169081775951, 0),
    (-97.029572627599649, -24.192189559966749, 0),
    (-92.718385456678746, -37.460659341591203, 0),
    (-78.801075360672201, -61.566147532565822, 0),
    (-69.465837045899718, -71.933980033865126, 0),
    (-64.278760968653941, -76.604444311897794, 0),
    (-34.202014332566854, -93.969262078590845, 0),
    (-27.563735581699888, -96.126169593831904, 0),
    (-20.79116908177598, -97.814760073380555, 0),
    (-13.917310096006583, -99.026806874157032, 0),
    (-1.8369095307335659e-14, -100, 0),
    (13.917310096006547, -99.026806874157032, 0),
    (20.791169081775944, -97.814760073380555, 0),
    (27.563735581699937, -96.126169593831875, 0),
    (34.202014332566897, -93.96926207859083, 0),
    (64.278760968653927, -76.604444311897808, 0),
    (69.465837045899718, -71.933980033865126, 0),
    (78.801075360672201, -61.566147532565822, 0),
    (92.718385456678732, -37.460659341591231, 0),
    (97.029572627599649, -24.192189559966788, 0),
    (97.814760073380555, -20.791169081775987, 0),
    (98.480775301220802, -17.36481776669304, 0),
    (15, 0, 2),
    (14.772116295183121, 2.6047226650039548, 2),
    (14.672214011007085, 3.1186753622663903, 2),
    (14.554435894139948, 3.6288284339950159, 2),
    (13.90775781850181, 5.6190989012386803, 2),
    (11.820161304100829, 9.2349221298848736, 2),
    (10.419875556884959, 10.790097005079765, 2),
    (9.6418141452980901, 11.490666646784669, 2),
    (5.1303021498850327, 14.095389311788624, 2),
    (4.1345603372549871, 14.418925439074783, 2),
    (3.1186753622663916, 14.672214011007084, 2),
    (2.0875965144009818, 14.854021031123555, 2),
    (9.1845476536678294e-16, 15, 2),
    (-2.0875965144009805, 14.854021031123555, 2),
    (-3.1186753622663903, 14.672214011007085, 2),
    (-4.1345603372549862, 14.418925439074783, 2),
    (-5.130302149885031, 14.095389311788626, 2),
    (-9.6418141452980901, 11.490666646784669, 2),
    (-10.419875556884961, 10.790097005079765, 2),
    (-11.820161304100829, 9.2349221298848754, 2),
    (-13.90775781850181, 5.6190989012386838, 2),
    (-14.554435894139948, 3.6288284339950159, 2),
    (-14.672214011007085, 3.1186753622663899, 2),
    (-14.772116295183121, 2.6047226650039543, 2),
    (-15, 1.8369095307335659e-15, 2),
    (-14.772116295183121, -2.604722665003957, 2),
    (-14.672214011007084, -3.1186753622663925, 2),
    (-14.554435894139948, -3.6288284339950128, 2),
    (-13.90775781850181, -5.6190989012386803, 2),
    (-11.82016130410083, -9.2349221298848718, 2),
    (-10.419875556884959, -10.790097005079767, 2),
    (-9.6418141452980919, -11.490666646784668, 2),
    (-5.1303021498850283, -14.095389311788626, 2),
    (-4.1345603372549835, -14.418925439074785, 2),
    (-3.118675362266397, -14.672214011007084, 2),
    (-2.0875965144009876, -14.854021031123553, 2),
    (-2.7553642961003488e-15, -15, 2),
    (2.0875965144009818, -14.854021031123555, 2),
    (3.1186753622663912, -14.672214011007084, 2),
    (4.1345603372549906, -14.418925439074782, 2),
    (5.1303021498850345, -14.095389311788624, 2),
    (9.6418141452980883, -11.490666646784671, 2),
    (10.419875556884959, -10.790097005079767, 2),
    (11.82016130410083, -9.2349221298848718, 2),
    (13.90775781850181, -5.6190989012386856, 2),
    (14.554435894139948, -3.6288284339950181, 2),
    (14.672214011007084, -3.1186753622663979, 2),
    (14.772116295183121, -2.6047226650039557, 2),
    (35, 0, 2),
    (34.468271355427284, 6.0776862183425617, 2),
    (34.235166025683199, 7.2769091786215769, 2),
    (33.960350419659875, 8.4672663459883708, 2),
    (32.451434909837559, 13.11123076955692, 2),
    (27.580376376235268, 21.548151636398039, 2),
    (24.313042966064906, 25.176893011852787, 2),
    (22.497566339028879, 26.811555509164229, 2),
    (11.970705016398409, 32.889241727506793, 2),
    (9.647307453594971, 33.644159357841161, 2),
    (7.2769091786215805, 34.235166025683192, 2),
    (4.8710585336022909, 34.659382405954965, 2),
    (2.1430611191891602e-15, 35, 2),
    (-4.8710585336022874, 34.659382405954965, 2),
    (-7.2769091786215769, 34.235166025683199, 2),
    (-9.6473074535949674, 33.644159357841161, 2),
    (-11.970705016398405, 32.889241727506793, 2),
    (-22.497566339028879, 26.811555509164229, 2),
    (-24.313042966064909, 25.176893011852787, 2),
    (-27.580376376235268, 21.548151636398043, 2),
    (-32.451434909837559, 13.111230769556927, 2),
    (-33.960350419659875, 8.4672663459883708, 2),
    (-34.235166025683199, 7.276909178621576, 2),
    (-34.468271355427284, 6.07768621834256, 2),
    (-35, 4.2861222383783204e-15, 2),
    (-34.468271355427284, -6.0776862183425662, 2),
    (-34.235166025683192, -7.2769091786215832, 2),
    (-33.960350419659875, -8.4672663459883619, 2),
    (-32.451434909837559, -13.11123076955692, 2),
    (-27.580376376235272, -21.548151636398035, 2),
    (-24.313042966064906, -25.17689301185279, 2),
    (-22.497566339028882, -26.811555509164226, 2),
    (-11.9707050163984, -32.889241727506793, 2),
    (-9.6473074535949603, -33.644159357841168, 2),
    (-7.2769091786215929, -34.235166025683192, 2),
    (-4.8710585336023042, -34.659382405954958, 2),
    (-6.4291833575674806e-15, -35, 2),
    (4.8710585336022909, -34.659382405954965, 2),
    (7.2769091786215796, -34.235166025683192, 2),
    (9.6473074535949781, -33.644159357841154, 2),
    (11.970705016398414, -32.889241727506793, 2),
    (22.497566339028875, -26.811555509164233, 2),
    (24.313042966064906, -25.17689301185279, 2),
    (27.580376376235272, -21.548151636398035, 2),
    (32.451434909837559, -13.111230769556933, 2),
    (33.960350419659875, -8.4672663459883761, 2),
    (34.235166025683192, -7.2769091786215956, 2),
    (34.468271355427284, -6.0776862183425635, 2),
    (59.088465180732484, -10.418890660015823, 0),
    (60, -1.4695276245868527e-14, 0),
    (59.088465180732484, 10.418890660015794, 0),
    (59.339766692274388, -23.97482197861839, 0),
    (62.098926481663774, -15.483001318378744, 0),
    (71.393156801642618, -28.844707693025249, 0),
    (74.712770923251725, -18.627985961174424, 0),
    (62.098926481663774, 15.483001318378735, 0),
    (59.339766692274395, 23.974821978618369, 0),
    (74.712770923251725, 18.627985961174414, 0),
    (71.393156801642633, 28.844707693025224, 0),
    (38.56725658119236, 45.962666587138678, 0),
    (20.521208599540131, 56.381557247154497, 0),
    (50.432688230830202, 39.402334420842131, 0),
    (44.458135709375824, 46.037747221673669, 0),
    (60.676828027717583, 47.405933600075691, 0),
    (53.488694525342787, 55.389164626076131, 0),
    (17.640790772287946, 61.520748540052409, 0),
    (13.306348212336605, 62.601446446963557, 0),
    (8.9070784614441898, 63.377156399460503, 0),
    (21.224076397908934, 74.017150587250555, 0),
    (16.009200192967477, 75.317365256503024, 0),
    (10.71632877392504, 76.250641293100912, 0),
    (-20.521208599540124, 56.381557247154504, 0),
    (-38.56725658119236, 45.962666587138678, 0),
    (-8.9070784614441827, 63.377156399460503, 0),
    (-13.306348212336598, 62.601446446963564, 0),
    (-17.640790772287939, 61.520748540052409, 0),
    (-10.716328773925031, 76.250641293100912, 0),
    (-16.009200192967469, 75.317365256503038, 0),
    (-21.224076397908927, 74.017150587250555, 0),
    (-44.458135709375831, 46.037747221673669, 0),
    (-50.432688230830202, 39.402334420842138, 0),
    (-53.488694525342794, 55.389164626076131, 0),
    (-60.676828027717583, 47.405933600075699, 0),
    (-59.088465180732484, 10.418890660015817, 0),
    (-60, 7.3476381229342635e-15, 0),
    (-59.088465180732484, -10.418890660015828, 0),
    (-59.339766692274388, 23.974821978618383, 0),
    (-62.098926481663774, 15.483001318378735, 0),
    (-71.393156801642618, 28.844707693025242, 0),
    (-74.712770923251725, 18.627985961174414, 0),
    (-62.098926481663774, -15.483001318378721, 0),
    (-59.339766692274395, -23.974821978618369, 0),
    (-74.712770923251725, -18.627985961174399, 0),
    (-71.393156801642633, -28.844707693025224, 0),
    (-38.567256581192368, -45.962666587138671, 0),
    (-20.521208599540113, -56.381557247154504, 0),
    (-50.432688230830209, -39.402334420842124, 0),
    (-44.458135709375824, -46.037747221673676, 0),
    (-60.676828027717598, -47.405933600075677, 0),
    (-53.488694525342787, -55.389164626076145, 0),
    (-17.640790772287929, -61.520748540052416, 0),
    (-13.306348212336626, -62.601446446963557, 0),
    (-8.9070784614442129, -63.377156399460496, 0),
    (-21.224076397908913, -74.017150587250569, 0),
    (-16.009200192967505, -75.317365256503024, 0),
    (-10.716328773925069, -76.250641293100912, 0),
    (20.521208599540138, -56.381557247154497, 0),
    (38.567256581192353, -45.962666587138685, 0),
    (8.9070784614441898, -63.377156399460503, 0),
    (13.306348212336603, -62.601446446963557, 0),
    (17.640790772287961, -61.520748540052402, 0),
    (10.71632877392504, -76.250641293100912, 0),
    (16.009200192967477, -75.317365256503024, 0),
    (21.224076397908952, -74.017150587250541, 0),
    (44.458135709375824, -46.037747221673676, 0),
    (50.432688230830209, -39.402334420842124, 0),
    (53.488694525342787, -55.389164626076145, 0),
    (60.676828027717598, -47.405933600075677, 0),
    (57.710708443294529, -12.266789758247832, 2),
    (58.103657427720272, -10.245242482348893, 2),
    (59, -1.4450354975104052e-14, 2),
    (58.103657427720279, 10.245242482348864, 2),
    (57.710708443294529, 12.266789758247803, 2),
    (12.266789758247807, 57.710708443294529, 2),
    (8.2112129566438625, 58.425816055752648, 2),
    (3.6125887437760129e-15, 59, 2),
    (-8.2112129566438554, 58.425816055752648, 2),
    (-12.266789758247802, 57.710708443294536, 2),
    (-57.710708443294536, 12.2667897582478, 2),
    (-58.103657427720272, 10.245242482348885, 2),
    (-59, 7.2251774875520258e-15, 2),
    (-58.103657427720272, -10.245242482348898, 2),
    (-57.710708443294529, -12.26678975824781, 2),
    (-12.266789758247828, -57.710708443294529, 2),
    (-8.2112129566438838, -58.425816055752648, 2),
    (-1.0837766231328039e-14, -59, 2),
    (8.2112129566438625, -58.425816055752648, 2),
    (12.266789758247807, -57.710708443294529, 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),
    (196, 51, -1, "", 0, 0),
    (198, 5, -1, "", 0, 0),
    (199, 201, -1, "", 0, 0),
    (200, 202, -1, "", 0, 0),
    (203, 205, -1, "", 0, 0),
    (204, 206, -1, "", 0, 0),
    (207, 11, -1, "", 0, 0),
    (208, 12, -1, "", 0, 0),
    (209, 211, -1, "", 0, 0),
    (210, 212, -1, "", 0, 0),
    (213, 216, -1, "", 0, 0),
    (215, 218, -1, "", 0, 0),
    (219, 20, -1, "", 0, 0),
    (220, 21, -1, "", 0, 0),
    (221, 224, -1, "", 0, 0),
    (223, 226, -1, "", 0, 0),
    (227, 229, -1, "", 0, 0),
    (228, 230, -1, "", 0, 0),
    (231, 27, -1, "", 0, 0),
    (233, 29, -1, "", 0, 0),
    (234, 236, -1, "", 0, 0),
    (235, 237, -1, "", 0, 0),
    (238, 240, -1, "", 0, 0),
    (239, 241, -1, "", 0, 0),
    (242, 35, -1, "", 0, 0),
    (243, 36, -1, "", 0, 0),
    (244, 246, -1, "", 0, 0),
    (245, 247, -1, "", 0, 0),
    (248, 251, -1, "", 0, 0),
    (250, 253, -1, "", 0, 0),
    (254, 44, -1, "", 0, 0),
    (255, 45, -1, "", 0, 0),
    (256, 259, -1, "", 0, 0),
    (258, 261, -1, "", 0, 0),
    (262, 264, -1, "", 0, 0),
    (263, 265, -1, "", 0, 0),
    (194, 266, -1, "", 0, 2),
    (150, 270, -1, "", 0, 2),
    (158, 271, -1, "", 0, 2),
    (162, 275, -1, "", 0, 2),
    (170, 276, -1, "", 0, 2),
    (174, 280, -1, "", 0, 2),
    (182, 281, -1, "", 0, 2),
    (186, 285, -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, 10, 4, "", 0, 0),
    (5, 6, 2, 4, "", 0, 0),
    (6, 7, 2, 4, "", 0, 0),
    (7, 8, 8, 4, "", 0, 0),
    (8, 9, 16, 4, "", 0, 0),
    (9, 10, 8, 4, "", 0, 0),
    (10, 11, 4, 4, "", 0, 0),
    (11, 12, 20, 4, "", 0, 0),
    (12, 13, 4, 4, "", 0, 0),
    (13, 14, 4, 4, "", 0, 0),
    (14, 15, 4, 4, "", 0, 0),
    (15, 16, 8, 4, "", 0, 0),
    (16, 17, 8, 4, "", 0, 0),
    (17, 18, 4, 4, "", 0, 0),
    (18, 19, 4, 4, "", 0, 0),
    (19, 20, 4, 4, "", 0, 0),
    (20, 21, 20, 4, "", 0, 0),
    (21, 22, 4, 4, "", 0, 0),
    (22, 23, 8, 4, "", 0, 0),
    (23, 24, 16, 4, "", 0, 0),
    (24, 25, 8, 4, "", 0, 0),
    (25, 26, 2, 4, "", 0, 0),
    (26, 27, 2, 4, "", 0, 0),
    (27, 28, 10, 4, "", 0, 0),
    (28, 29, 10, 4, "", 0, 0),
    (29, 30, 2, 4, "", 0, 0),
    (30, 31, 2, 4, "", 0, 0),
    (31, 32, 8, 4, "", 0, 0),
    (32, 33, 16, 4, "", 0, 0),
    (33, 34, 8, 4, "", 0, 0),
    (34, 35, 4, 4, "", 0, 0),
    (35, 36, 20, 4, "", 0, 0),
    (36, 37, 4, 4, "", 0, 0),
    (37, 38, 4, 4, "", 0, 0),
    (38, 39, 4, 4, "", 0, 0),
    (39, 40, 8, 4, "", 0, 0),
    (40, 41, 8, 4, "", 0, 0),
    (41, 42, 4, 4, "", 0, 0),
    (42, 43, 4, 4, "", 0, 0),
    (43, 44, 4, 4, "", 0, 0),
    (44, 45, 20, 4, "", 0, 0),
    (45, 46, 4, 4, "", 0, 0),
    (46, 47, 8, 4, "", 0, 0),
    (47, 48, 16, 4, "", 0, 0),
    (48, 49, 8, 4, "", 0, 0),
    (49, 50, 2, 4, "", 0, 0),
    (50, 51, 2, 4, "", 0, 0),
    (51, 4, 10, 4, "", 0, 0),
    (52, 53, 10, 4, "", 0, 0),
    (53, 54, 2, 4, "", 0, 0),
    (54, 55, 2, 4, "", 0, 0),
    (55, 56, 8, 4, "", 0, 0),
    (56, 57, 16, 4, "", 0, 0),
    (57, 58, 8, 4, "", 0, 0),
    (58, 59, 4, 4, "", 0, 0),
    (59, 60, 20, 4, "", 0, 0),
    (60, 61, 4, 4, "", 0, 0),
    (61, 62, 4, 4, "", 0, 0),
    (62, 63, 4, 4, "", 0, 0),
    (63, 64, 8, 4, "", 0, 0),
    (64, 65, 8, 4, "", 0, 0),
    (65, 66, 4, 4, "", 0, 0),
    (66, 67, 4, 4, "", 0, 0),
    (67, 68, 4, 4, "", 0, 0),
    (68, 69, 20, 4, "", 0, 0),
    (69, 70, 4, 4, "", 0, 0),
    (70, 71, 8, 4, "", 0, 0),
    (71, 72, 16, 4, "", 0, 0),
    (72, 73, 8, 4, "", 0, 0),
    (73, 74, 2, 4, "", 0, 0),
    (74, 75, 2, 4, "", 0, 0),
    (75, 76, 10, 4, "", 0, 0),
    (76, 77, 10, 4, "", 0, 0),
    (77, 78, 2, 4, "", 0, 0),
    (78, 79, 2, 4, "", 0, 0),
    (79, 80, 8, 4, "", 0, 0),
    (80, 81, 16, 4, "", 0, 0),
    (81, 82, 8, 4, "", 0, 0),
    (82, 83, 4, 4, "", 0, 0),
    (83, 84, 20, 4, "", 0, 0),
    (84, 85, 4, 4, "", 0, 0),
    (85, 86, 4, 4, "", 0, 0),
    (86, 87, 4, 4, "", 0, 0),
    (87, 88, 8, 4, "", 0, 0),
    (88, 89, 8, 4, "", 0, 0),
    (89, 90, 4, 4, "", 0, 0),
    (90, 91, 4, 4, "", 0, 0),
    (91, 92, 4, 4, "", 0, 0),
    (92, 93, 20, 4, "", 0, 0),
    (93, 94, 4, 4, "", 0, 0),
    (94, 95, 8, 4, "", 0, 0),
    (95, 96, 16, 4, "", 0, 0),
    (96, 97, 8, 4, "", 0, 0),
    (97, 98, 2, 4, "", 0, 0),
    (98, 99, 2, 4, "", 0, 0),
    (99, 52, 10, 4, "", 0, 0),
    (100, 101, 10, 4, "", 0, 2),
    (101, 102, 2, 4, "", 0, 2),
    (102, 103, 2, 4, "", 0, 2),
    (103, 104, 8, 4, "", 0, 2),
    (104, 105, 16, 4, "", 0, 2),
    (105, 106, 8, 4, "", 0, 2),
    (106, 107, 4, 4, "", 0, 2),
    (107, 108, 20, 4, "", 0, 2),
    (108, 109, 4, 4, "", 0, 2),
    (109, 110, 4, 4, "", 0, 2),
    (110, 111, 4, 4, "", 0, 2),
    (111, 112, 8, 4, "", 0, 2),
    (112, 113, 8, 4, "", 0, 2),
    (113, 114, 4, 4, "", 0, 2),
    (114, 115, 4, 4, "", 0, 2),
    (115, 116, 4, 4, "", 0, 2),
    (116, 117, 20, 4, "", 0, 2),
    (117, 118, 4, 4, "", 0, 2),
    (118, 119, 8, 4, "", 0, 2),
    (119, 120, 16, 4, "", 0, 2),
    (120, 121, 8, 4, "", 0, 2),
    (121, 122, 2, 4, "", 0, 2),
    (122, 123, 2, 4, "", 0, 2),
    (123, 124, 10, 4, "", 0, 2),
    (124, 125, 10, 4, "", 0, 2),
    (125, 126, 2, 4, "", 0, 2),
    (126, 127, 2, 4, "", 0, 2),
    (127, 128, 8, 4, "", 0, 2),
    (128, 129, 16, 4, "", 0, 2),
    (129, 130, 8, 4, "", 0, 2),
    (130, 131, 4, 4, "", 0, 2),
    (131, 132, 20, 4, "", 0, 2),
    (132, 133, 4, 4, "", 0, 2),
    (133, 134, 4, 4, "", 0, 2),
    (134, 135, 4, 4, "", 0, 2),
    (135, 136, 8, 4, "", 0, 2),
    (136, 137, 8, 4, "", 0, 2),
    (137, 138, 4, 4, "", 0, 2),
    (138, 139, 4, 4, "", 0, 2),
    (139, 140, 4, 4, "", 0, 2),
    (140, 141, 20, 4, "", 0, 2),
    (141, 142, 4, 4, "", 0, 2),
    (142, 143, 8, 4, "", 0, 2),
    (143, 144, 16, 4, "", 0, 2),
    (144, 145, 8, 4, "", 0, 2),
    (145, 146, 2, 4, "", 0, 2),
    (146, 147, 2, 4, "", 0, 2),
    (147, 100, 10, 4, "", 0, 2),
    (148, 149, 10, 4, "", 0, 2),
    (149, 150, 2, 4, "", 0, 2),
    (150, 151, 2, 4, "", 0, 2),
    (151, 152, 8, 4, "", 0, 2),
    (152, 153, 16, 4, "", 0, 2),
    (153, 154, 8, 4, "", 0, 2),
    (154, 155, 4, 4, "", 0, 2),
    (155, 156, 20, 4, "", 0, 2),
    (156, 157, 4, 4, "", 0, 2),
    (157, 158, 4, 4, "", 0, 2),
    (158, 159, 4, 4, "", 0, 2),
    (159, 160, 8, 4, "", 0, 2),
    (160, 161, 8, 4, "", 0, 2),
    (161, 162, 4, 4, "", 0, 2),
    (162, 163, 4, 4, "", 0, 2),
    (163, 164, 4, 4, "", 0, 2),
    (164, 165, 20, 4, "", 0, 2),
    (165, 166, 4, 4, "", 0, 2),
    (166, 167, 8, 4, "", 0, 2),
    (167, 168, 16, 4, "", 0, 2),
    (168, 169, 8, 4, "", 0, 2),
    (169, 170, 2, 4, "", 0, 2),
    (170, 171, 2, 4, "", 0, 2),
    (171, 172, 10, 4, "", 0, 2),
    (172, 173, 10, 4, "", 0, 2),
    (173, 174, 2, 4, "", 0, 2),
    (174, 175, 2, 4, "", 0, 2),
    (175, 176, 8, 4, "", 0, 2),
    (176, 177, 16, 4, "", 0, 2),
    (177, 178, 8, 4, "", 0, 2),
    (178, 179, 4, 4, "", 0, 2),
    (179, 180, 20, 4, "", 0, 2),
    (180, 181, 4, 4, "", 0, 2),
    (181, 182, 4, 4, "", 0, 2),
    (182, 183, 4, 4, "", 0, 2),
    (183, 184, 8, 4, "", 0, 2),
    (184, 185, 8, 4, "", 0, 2),
    (185, 186, 4, 4, "", 0, 2),
    (186, 187, 4, 4, "", 0, 2),
    (187, 188, 4, 4, "", 0, 2),
    (188, 189, 20, 4, "", 0, 2),
    (189, 190, 4, 4, "", 0, 2),
    (190, 191, 8, 4, "", 0, 2),
    (191, 192, 16, 4, "", 0, 2),
    (192, 193, 8, 4, "", 0, 2),
    (193, 194, 2, 4, "", 0, 2),
    (194, 195, 2, 4, "", 0, 2),
    (195, 148, 10, 4, "", 0, 2),
    (196, 197, 10, 4, "", 0, 0),
    (197, 198, 10, 4, "", 0, 0),
    (199, 200, 8, 4, "", 0, 0),
    (201, 202, 8, 4, "", 0, 0),
    (203, 204, 8, 4, "", 0, 0),
    (205, 206, 8, 4, "", 0, 0),
    (207, 208, 20, 4, "", 0, 0),
    (209, 210, 8, 4, "", 0, 0),
    (211, 212, 8, 4, "", 0, 0),
    (213, 214, 4, 4, "", 0, 0),
    (214, 215, 4, 4, "", 0, 0),
    (216, 217, 4, 4, "", 0, 0),
    (217, 218, 4, 4, "", 0, 0),
    (219, 220, 20, 4, "", 0, 0),
    (221, 222, 4, 4, "", 0, 0),
    (222, 223, 4, 4, "", 0, 0),
    (224, 225, 4, 4, "", 0, 0),
    (225, 226, 4, 4, "", 0, 0),
    (227, 228, 8, 4, "", 0, 0),
    (229, 230, 8, 4, "", 0, 0),
    (231, 232, 10, 4, "", 0, 0),
    (232, 233, 10, 4, "", 0, 0),
    (234, 235, 8, 4, "", 0, 0),
    (236, 237, 8, 4, "", 0, 0),
    (238, 239, 8, 4, "", 0, 0),
    (240, 241, 8, 4, "", 0, 0),
    (242, 243, 20, 4, "", 0, 0),
    (244, 245, 8, 4, "", 0, 0),
    (246, 247, 8, 4, "", 0, 0),
    (248, 249, 4, 4, "", 0, 0),
    (249, 250, 4, 4, "", 0, 0),
    (251, 252, 4, 4, "", 0, 0),
    (252, 253, 4, 4, "", 0, 0),
    (254, 255, 20, 4, "", 0, 0),
    (256, 257, 4, 4, "", 0, 0),
    (257, 258, 4, 4, "", 0, 0),
    (259, 260, 4, 4, "", 0, 0),
    (260, 261, 4, 4, "", 0, 0),
    (262, 263, 8, 4, "", 0, 0),
    (264, 265, 8, 4, "", 0, 0),
    (266, 267, 2, 4, "", 0, 2),
    (267, 268, 10, 4, "", 0, 2),
    (268, 269, 10, 4, "", 0, 2),
    (269, 270, 2, 4, "", 0, 2),
    (271, 272, 4, 4, "", 0, 2),
    (272, 273, 8, 4, "", 0, 2),
    (273, 274, 8, 4, "", 0, 2),
    (274, 275, 4, 4, "", 0, 2),
    (276, 277, 2, 4, "", 0, 2),
    (277, 278, 10, 4, "", 0, 2),
    (278, 279, 10, 4, "", 0, 2),
    (279, 280, 2, 4, "", 0, 2),
    (281, 282, 4, 4, "", 0, 2),
    (282, 283, 8, 4, "", 0, 2),
    (283, 284, 8, 4, "", 0, 2),
    (284, 285, 4, 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),
    (78.808311744383928, 45.499999999999993, "Линейная сталь", 3, "", 0, 0, 1),
    (25, 0, "Линейная сталь", 2, "", 0, 2, 1),
    (0, 0, "Воздух", 2, "", 0, 2, 1),
    (71, 0, "Линейная сталь", 1, "", 0, 0, 1),
    (66.573956140660741, -21.631189606246316, "Обмоточная область", 1, "Фаза А", 0, 0, -100),
    (66.573956140660741, 21.631189606246316, "Обмоточная область", 1, "Фаза А", 0, 0, 100),
    (35.500000000000007, 61.487803668695143, "Линейная сталь", 1, "", 0, 0, 1),
    (52.020137783417596, 46.839142445120075, "Обмоточная область", 1, "Фаза В", 0, 0, -100),
    (14.553818357243161, 68.470332051366384, "Обмоточная область", 1, "Фаза В", 0, 0, 100),
    (-35.499999999999986, 61.48780366869515, "Линейная сталь", 1, "", 0, 0, 1),
    (-14.553818357243154, 68.470332051366398, "Обмоточная область", 1, "Фаза С", 0, 0, -100),
    (-52.020137783417582, 46.839142445120082, "Обмоточная область", 1, "Фаза С", 0, 0, 100),
    (-71, 8.6947051121388785e-15, "Линейная сталь", 1, "", 0, 0, 1),
    (-66.573956140660741, 21.631189606246327, "Обмоточная область", 1, "Фаза А", 0, 0, 100),
    (-66.573956140660755, -21.631189606246309, "Обмоточная область", 1, "Фаза А", 0, 0, -100),
    (-35.500000000000028, -61.487803668695122, "Линейная сталь", 1, "", 0, 0, 1),
    (-52.020137783417596, -46.839142445120075, "Обмоточная область", 1, "Фаза В", 0, 0, 100),
    (-14.553818357243186, -68.470332051366384, "Обмоточная область", 1, "Фаза В", 0, 0, -100),
    (35.500000000000007, -61.487803668695143, "Линейная сталь", 1, "", 0, 0, 1),
    (14.553818357243159, -68.470332051366384, "Обмоточная область", 1, "Фаза С", 0, 0, 100),
    (52.020137783417596, -46.839142445120068, "Обмоточная область", 1, "Фаза С", 0, 0, -100),
    (47, 0, "Линейная сталь", 1, "", 0, 2, 1),
    (2.8778249314825866e-15, 47, "Линейная сталь", 1, "", 0, 2, 1),
    (-47, 5.7556498629651731e-15, "Линейная сталь", 1, "", 0, 2, 1),
    (-8.6334747944477597e-15, -47, "Линейная сталь", 1, "", 0, 2, 1),
    (59.273584536458863, 5.185766693485661, "Воздух", 0.25, "", 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. Модель полная; автоматический расчёт не запускался.")
