Автор |
Сообщение |
|
Дата: 29 Авг 2018 19:02:43 · Поправил: Redoutable (30 Авг 2018 12:23:40)
#
Привееет всееем!
Некоторое время тому назад при решении некоторых своих задач уперся в ограничения бесплатной MMAN-ы. На бескрайних просторах сети пришлось найти исходник и кой-как приспособить его для своих целей. В принципе, свою задачу я решил, но осталась программа. Жалко её просто так бросать. Здесь ее выложу, как только подготовлю к публикации. Может кому и пригодится. А пока, ссылка на видео. https://www.youtube.com/watch?v=wFcfGoEPSt0 В субтитрах там есть кой-какие пояснения. Так же имееца Хелп: https://cloud.mail.ru/public/DXbe/s17cHnTgC и несколько скрин-шотов:
|
|
Дата: 29 Авг 2018 20:23:55
#
Redoutable
Симпатично.
Так вы ею бесплатно народ одаривать будете или как?
Поясните пожалуйста про количество земных поверхностей, что имеется в виду?
|
Реклама Google
|
|
|
Дата: 29 Авг 2018 20:51:05 · Поправил: Redoutable (29 Авг 2018 21:09:40)
#
1) Задарма, ибонех. Моя там только оболочка. Движок - слова и музыка - "народные".
2) Поверхность задается кругом с центром в начале координат. Таких поверхностей может быть несколько расположенных в порядке возрастания радиусов. При расчете учитывается от какой поверхности отражается луч пришедший на антенну с соответствующего направления. Поверхностей максимально может быть 6. С исходником пока не разобрался как сделать больше. В перспективе, поверхности можно сделать не только кругообразными, а например прямоугольными или еще более сложной формы.
|
|
Дата: 29 Авг 2018 21:13:02
#
Redoutable
Поверхность задается кругом с центром в начале координат. Таких поверхностей может быть несколько расположенных в порядке возрастания радиусов. При расчете учитывается от какой поверхности отражается луч пришедший на антенну с соответствующего направления.
Это что будет, метод геометрической оптики хотите подцепить?
|
|
Дата: 29 Авг 2018 21:23:56 · Поправил: Redoutable (29 Авг 2018 21:33:29)
#
Я ничего не выдумывал. В исходнике на антенну с соответствующего направления падает прямой луч и луч отраженный от поверхности земли. В зависимости от диэлектрических свойств поверхности в точке падения отраженный луч имеет соответствующую поляризацию, амплитуду и фазу.
|
|
Дата: 30 Авг 2018 10:48:18
#
Redoutable
Т.е. речь идет о бесконечной отражающей поверхности с Kотр. по Френелю. Или у вас конечные размеры? Для какого класса задач вы предполагаете это использовать?
|
|
Дата: 30 Авг 2018 12:06:09 · Поправил: Redoutable (30 Авг 2018 12:22:00)
#
Да всё как в MANN-e. Там этот же "движок".
|
|
Дата: 30 Авг 2018 14:03:33
#
Redoutable
Понял теперь.
|
|
Дата: 31 Авг 2018 09:45:41 · Поправил: Redoutable (31 Авг 2018 09:48:50)
#
|
|
Дата: 31 Авг 2018 16:53:30 · Поправил: Ефвфы (31 Авг 2018 16:54:34)
#
Программа запускается, файл загружается, при нажатии View 2D, View 3D скоропостижно закрывается виндоусами.
Указаний на какую либо конкретную ошибку нет.
|
|
Дата: 31 Авг 2018 17:35:15
#
А Windows и NET FrameWork у вас какой? Для этого посмотреть: реестр\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET.Framework\NDP
|
|
Дата: 31 Авг 2018 20:59:45
#
OS W7. По указанному пути в реестре отсутствует пункт NDP.
Но перед инсталяцией я запускал установку .NET Framework Version 4.6.1. Получил сообщение, что уже установлено.
|
|
Дата: 31 Авг 2018 21:15:45 · Поправил: Redoutable (31 Авг 2018 21:19:21)
#
Надеюсь, директория куда установилась mn3see не особо экзотическая для которой нужны особые права? Если так, запустите программу от имени администратора.
Попробуйте запустить файл mn3.x32.exe или mn3.x64.exe из директории mn3see. В зависимости от того будет он работать или нет будем разбираться дальше.
|
|
Дата: 31 Авг 2018 21:22:15
#
Красиво реализовано. Интересно. Спасибо, утянул к себе :)
|
|
Дата: 31 Авг 2018 21:34:55 · Поправил: Ефвфы (31 Авг 2018 21:35:21)
#
Всё в порядке. Я установил в Program Files. При запуске с правами админа всё крутится.
Спасибо, хорошая работа.
|
|
Дата: 31 Авг 2018 21:42:46 · Поправил: Redoutable (31 Авг 2018 22:01:08)
#
Надо будет сделать чтобы временные файлы создавались где-нибудь в AppData\Local\Temp
Кстати, нашел уже 1 ошибку. Реальную землю чета перестала считать.
Так же жду претензии по неправильной работе от Beta-Тестеров.
Буду исправлять по мере поступления.
|
|
Дата: 02 Сен 2018 09:08:00
#
Заодно поправьте димменсию частоты. Мегагерцы принято обозначать MHz.
|
|
Дата: 03 Сен 2018 12:43:42 · Поправил: Redoutable (03 Сен 2018 12:45:14)
#
|
|
Дата: 03 Сен 2018 16:04:55
#
Всё как обещано :-) Землю ещё не исследовал.
Ещё бы при следущем обновлении в меню Files заменить Resent Files на Recent Files.
|
|
Дата: 19 Сен 2018 16:37:11
#
|
|
Дата: 18 Дек 2018 11:42:29
#
Неплохо было бы руссифицировать
|
|
Дата: 18 Дек 2018 14:06:12 · Поправил: Redoutable (18 Дек 2018 15:59:18)
#
Да там, вроде все термины общеупотребительные. Перевод на русский, обычно только путает дело. Более правильно, на мой взгляд, сделать возможность ввода файлов в формате *.nec А то формат *.maa уж очень примитивненький.(((
P.S. Да и сам nec-формат надо бы дополнить финтифлюшками. Скажем, проводник должен задаваться не одним отрезком, а последовательностью отрезков. А то по два раза указываются одни и те же координаты. Опять же, предусмотреть возможность оперировать не только отрезками, но и точками. И уже из точек лепить отрезки и проводники когда это уместно.
Например:
P1 x1, y1, z1 'задание точки
P2 x2, y2, z2
P3 x3, y3, z3
...
R1 P1, P2 'задание отрезка (точками)
R2 P2, P3
R3 x4,y4,z4 '(координатами)
...
W1 P1, P2, P3 ' проводник из 3 точек, и 2 отрезков соответственно (точками)
...
W2 R1, R2 'альтернативная форма (отрезками)
...
W3 x1, y1, z1, x2, y2, z2, x3, y3, z3 'альтернативная форма (координатами)
...
Опять же, задавать радиус проводника в каждой строчке - жуткая тавтология. Лучше завести отдельную команду:
RW 0.005, 0.01, 0.003, ... 'где можно было бы указать несколько последовательных радиусов для каждого последующего отрезка
Да и число сегментов лучше задавать так же отдельной командой, например:
SE 10,11,12,.. 'в лямбдах, т.е. сколько сегментов на длину волны
|
|
Дата: 18 Дек 2018 14:36:30 · Поправил: Redoutable (18 Дек 2018 14:48:17)
#
У кого есть какие предложения на эту тему просьба высказаться. Постараюсь их реализовать как дойдут руки.
Или просто сделать отдельную утилиту преобразующую расширенный формат в "канонический" *.nec или *.maa ?
|
|
Дата: 26 Июл 2019 23:40:50 · Поправил: Redoutable (27 Июл 2019 00:32:56)
#
/*
Продолжая тему языка описания антенн.
Выбешивает задание отрезков парами точек. Почему бы не задавать сразу целый провод перечислением входящих в него вершин? Опять же, зачем каждый раз указывать радиус провода и сегментацию? Тавтология какая-то! Радиус надо указывать только в том месте когда он меняется на другой. Просятся так же операторы пространственного преобразования MOVE, ROTATE, SCALE, REPEAT... Такой язык мог бы выглядеть примерно так:
*/
#define LW %1 # длина волны (задается в командной строке)
#include "text.ant"
#pragma code (MAA) # GAA, NEC - формат представления результата
{
H = 10; D = 6 # высота, плечо
RADIUS = 0.001 # радиус провода
SEGMENT = LW / 100 # размер сегмента
GND = [0, 0, 0] # земля
TOCHKA = [5, 3, H] # точка пересечения проводов 4 и 5
< [1, 2, 3] TOCHKA [4, 5, 6] [7, 8, 9] > # определение провода 4 точками
I = 0
REPEAT (3) # повторить 3 раза
{
< GND [I+10, 5, H] [3, 2 * D, 1] TOCHKA [9, 8, 7] > # будет 3 провода по 5 точек
MOVE (dx, dy, dz) # подвинуть все начиная от {-скобки до сюда
ROTATE (a, b, c * I) # повернуть
SCALE (-1,1,1) # зеркально отразить вдоль оси OX
RADIUS = RADIUS + 0.001 # приращение радиуса провода
I = I + 0.123
}
}
Антенна описанная таким образом будет гораздо более читабельней и манипулируемей чем любая тупая колонка из цифр. Конечно, в графическом виде антенна наглядней. Но это когда она уже готова. А когда нужно собирать с нуля или делать глобальную перестройку - лучше языка ничего нет. |
|
Дата: 26 Июл 2019 23:51:18 · Поправил: Redoutable (27 Июл 2019 00:35:14)
#
Так, команды пространственных преобразований MOVE, ROTATE, ... действуют в пределах от ближайшей фигурной скобки до текущего оператора:
{ #1
...
{ #2
...
ROTATE (a,b,c) # вращает всё начиная от скобки #2 до этого места
... }
...
MOVE (x,y,z) # перемещает всё начиная от скобки #1 до этого места
... } |
|
Дата: 27 Июл 2019 00:05:09 · Поправил: Redoutable (27 Июл 2019 00:29:03)
#
{ DOCK_1 = [10, 20, 30] # определить некую точку "контакта"
#include "dipol.ant" # взять заготовку
SCALE (2,1,-1) # растянуть её по оси ОX, зеркально отразить по оси OZ
ROTATE ( [1,1,1], 45) # затем повернуть на 45 градусов вокруг вектора [1,1,1]
MOVE (DOCK_1) # и поместить в точку контакта } |
|
Дата: 27 Июл 2019 00:18:49 · Поправил: Redoutable (27 Июл 2019 00:38:04)
#
# А в "dipol.ant" может лежать например такой провод:
< [0,0,0] [1,-2,3] [4,5,-6]
[-7,8,9]
[10,-11,-12]>
|
|
Дата: 27 Июл 2019 00:46:40 · Поправил: Redoutable (27 Июл 2019 00:58:02)
#
Вопрос, как задавать нагрузки и источники? Один из вариантов мог бы выглядеть так:
< [1,2,3] SOURCE (P, I, J) [4,5,6] [7,8,9] > # источник включен между точками [1,2,3] и [4,5,6]
< [1,2,3] [4,5,6] LOAD (P, R, Z) [7,8,9] > # нагрузка включена между точками [4,5,6] и [7,8,9]
где:
P - позиция между точками (вещественное число из диапазона [0.0 .. 1.0])
I, J - амплитуда, фаза
R, X - волновое сопротивление
|
|
Дата: 30 Июл 2019 14:05:24
#
Redoutable
Продолжая тему языка описания антенн.
Выбешивает задание отрезков парами точек. Почему бы не задавать сразу целый провод перечислением входящих в него вершин? Опять же, зачем каждый раз указывать радиус провода и сегментацию? Тавтология какая-то! Радиус надо указывать только в том месте когда он меняется нмта другой.
ИМХО, не нужно изобретать велосипед. Во всех известных антенных симуляторах составной провод задается именно так (не как вы предлагаете). Иначе, потом могут быть проблемы при удалении какого-нибудь не крайнего участка составного провода.
Другое дело, если вы напишите нормальный графический интерфейс для задания соответствующих значений.
Просятся так же операторы пространственного преобразования MOVE, ROTATE, SCALE, REPEAT...
Естественно.
Кроме того огромным бонусом была бы возможность введения параметрических переменных. Программно это несложно, зато одним чихом можно менять геометрию.
|
|
Дата: 30 Июл 2019 20:51:51 · Поправил: Redoutable (30 Июл 2019 20:54:31)
#
По поводу изобретения велосипедов.
Возможность задавать провод перечислением вершин гораздо круче отрезочного "мельтешения". Нравится лепить отрезки - разбивай провод на отрезки, указывай 105-й раз число сегментов и радиус. Хочешь жить как белый человек - задавай список вершин. И указывай радиус и сегментацию когда в этом есть необходимость.
По поводу параметрических переменных.
В формате *.nec есть определение констант SY NAME = ... Помещенная в начале файла она частично решает вопрос параметризации. Почему в *.maa такого нет - нипанятна.
|
Реклама Google |
|