Расчет зон ЭМД
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Расчет зон ЭМД
Здравствуйте. Есть задача: на 3d подстилающей поверхности (stl импортированный из ГИС) раскрасить зону покрытия (ЭМД) источника радиоизлучения с заданными параметрами. Возможно ли это? Куда копать?
Я новичок в labview, поэтому любой совет полезен.
Поскольку тема по графике еще вопрос - при рисовании картинки в XY graph координаты мыши, курсора и графические разные - как привязать построение изображения к курсору?
Я новичок в labview, поэтому любой совет полезен.
Поскольку тема по графике еще вопрос - при рисовании картинки в XY graph координаты мыши, курсора и графические разные - как привязать построение изображения к курсору?
-
- advanced
- Сообщения: 150
- Зарегистрирован: 30 мар 2011, 22:41
- Награды: 1
- Версия LabVIEW: 8.2-2013
- Контактная информация:
Re: Расчет зон ЭМД
YanZorg, я не новичок ни в , ни в обработке изображений, но очень не сразу понял, что вам нужно. А, когда понял, восхитился верой вашего начальника в то, что новичок сможет эту задачу решить. ;)YanZorg писал(а):Здравствуйте. Есть задача: на 3d подстилающей поверхности (stl импортированный из ГИС) раскрасить зону покрытия (ЭМД) источника радиоизлучения с заданными параметрами. Возможно ли это? Куда копать?
Я новичок в labview, поэтому любой совет полезен.
Поскольку тема по графике еще вопрос - при рисовании картинки в XY graph координаты мыши, курсора и графические разные - как привязать построение изображения к курсору?
Это - очень приличный проект, с таким нестыдно и на конференцию выходить. Тут я вижу два варианта решения:
1. Решаете сами, вынося свои варианты сюда на обсуждение. Это будет долго, зато вы научитесь и , и решению таких задач. Плюс вам это не будет ничего стОить.
2. Заказываете решение этого проекта на этом же форуме за деньги. Это будет быстро, но обойдется вам в некоторую сумму и вряд ли чему-то вас научит.
Совместить эти два варианта в смысле - вам здесь все решат, но бесплатно - вряд ли получится.
Удачи!
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Re: Расчет зон ЭМД
О да, я прекрасно понимаю амбициозность и сложность задачи. Это элемент моей квалификационной работы, поэтому за деньги не вариант. Вся соль - овладеть LabView(время есть).
Физику процесса знаю, математику тоже. Уперся в то, что *.stl из ГИС не отображается (другие *.stl выводятся без проблем)
Приложу для примера скрин поверхности из турбокада. Вот как его отобразить на 3d pic control
Участок североамериканского архипелага))))
Физику процесса знаю, математику тоже. Уперся в то, что *.stl из ГИС не отображается (другие *.stl выводятся без проблем)
Приложу для примера скрин поверхности из турбокада. Вот как его отобразить на 3d pic control
Участок североамериканского архипелага))))
Последний раз редактировалось YanZorg 26 окт 2014, 16:32, всего редактировалось 1 раз.
-
- advanced
- Сообщения: 150
- Зарегистрирован: 30 мар 2011, 22:41
- Награды: 1
- Версия LabVIEW: 8.2-2013
- Контактная информация:
Re: Расчет зон ЭМД
YanZorg, если я правильно понял, проблема развалилась на две.
1. Экспорт изображения из ГИС или турбокада в форматы, приемлемые для .
2. Раскраска оных изображений.
1-ю задачу, вроде, кто-то здесь решал, передавая файлы из када в . Я тут точно не помощник. Спрашивайте. Когда ее решите - наверное, несложно будет помочь со второй. Для ее решения совершенно не обязательны картины или карты. Достаточно файла с массивом трех значений: координаты Х и У и значение функции в точке.
1. Экспорт изображения из ГИС или турбокада в форматы, приемлемые для .
2. Раскраска оных изображений.
1-ю задачу, вроде, кто-то здесь решал, передавая файлы из када в . Я тут точно не помощник. Спрашивайте. Когда ее решите - наверное, несложно будет помочь со второй. Для ее решения совершенно не обязательны картины или карты. Достаточно файла с массивом трех значений: координаты Х и У и значение функции в точке.
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Re: Расчет зон ЭМД
Спасибо, действительно первым делом импорт stl файла. На форуме есть примеры его отображения, но то, что работает, скажем с молотком, не работает с поверхностью.
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Расчет зон ЭМД
У Вас ASCII STL или двоичный формат?Уперся в то, что *.stl из ГИС не отображается (другие *.stl выводятся без проблем)
Если ASCII STL - то зная его устройство: https://ru.wikipedia.org/wiki/STL_(формат_файла)
http://download.novedge.com/Brands/FPS/ ... Format.pdf
можете считать его как текстовый файл,распарсить и получить желаемые
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
для отображения на 3d Surface.
Аналогично и для двоичного файла. Согласно описанию:
"Файл начинается с заголовка из 80 символов (который обычно игнорируется, но не должен начинаться с 'solid', так как с этой последовательности начинается ASCII STL файл). После заголовка идет 4 байтовое беззнаковое целое число, указывающее количество треугольных граней в данном файле. После этого идут данные, характеризующие каждый треугольник, в свою очередь.
Каждый треугольник описывается двенадцатью 32 битными числами с плавающей запятой: 3 числа для нормали и по 3 числа на каждую из трех вершин для X/Y/Z координат. После идут 2 байта беззнакового 'short', который называется 'attribute byte count'. В обычном файле должно быть равно нулю, так как большинство программ не понимают других значений."
Читаем,парсим и отображаем.
В LabVIEW есть средства,типа STL Geometry in 3D Picture Control.
http://www.ni.com/example/30218/en/
Если выложите сюда Вашу картинку в ASCII STL,то я попробую построить эту поверхность и показать Вам,как это делается.
Код набросал,отладиться не на чем...И помните,что:
Some CAD programs save STL files as binary STL files by default.
Последний раз редактировалось Vitekkz88 27 окт 2014, 21:34, всего редактировалось 1 раз.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Re: Расчет зон ЭМД
Вот файл который я получаю из ГИС
Судя по размеру он не бинарный, а ASCII, поверхность представлена как совокупность треугольников.
Буду очень признателен, так как
Код: Выделить всё
http://25medvedey.ru/STL2.STL
Буду очень признателен, так как
пока для меня тяжеловатоможете считать его как текстовый файл,распарсить и получить желаемые
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Re: Расчет зон ЭМД
С вложениями не разобрался (форумы чаще читаю, чем пишу) выкладываю исходники на свой хостинг - ссылку вводите, качайте.
Открывал в блокноте, толком ничего понять нельзя, заголовок есть, но не говорит о типе STL
Открывал в блокноте, толком ничего понять нельзя, заголовок есть, но не говорит о типе STL
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Расчет зон ЭМД
YanZorg
facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet,
то это ASCII STL,иначе в двоичном представлении.Подобные файлы открываю в MeshLab.Легкая и удобная в обращении программа. Позволяет сохранять STL-файлы в ASCII. В двоичном формате файл занимает меньше. Тот файл,который Вы выложили как раз двоичный и весит 7 МБ. Сохраняем в ASCII и файл уже 40 МБ(по крайней мере MeshLab до таких размеров сконвертировал).Зато содержимое понятно и работать удобней.
Теперь по заданию. С каким объемом данных планируете работать?Хватит ли у Вас аппаратных ресурсов,чтобы отрисовать целиком всю поверхность в LabVIEW?Извлечь необходимую информацию из ASCII STL можно с помощью парсинга. Этот вариант не слишком быстрый,но для начала сойдет. Выделите небольшой участок поверхности(500х500 точек,например) и попробуйте получить массивы Х Y Z(пример приложил).Затем проверьте,что читается то же самое,что и в исходном файле(по цифрам сравните).Даже не пробуйте целиком файл пихать - до утра ждать будете
Дальше следует определиться,как 3d отрисовать?Surface,Scatter,Mehs и т.д. Нужна ли будет интерполяция,децимация?Почитайте про построение трехмерных графиков в LabVIEW,примеры гляньте в Help-е.
Открываю WordPad-ом. По содержимому становится понятно,в какой форме данные. Если структура файла типа:Открывал в блокноте, толком ничего понять нельзя, заголовок есть, но не говорит о типе STL
facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet,
то это ASCII STL,иначе в двоичном представлении.Подобные файлы открываю в MeshLab.Легкая и удобная в обращении программа. Позволяет сохранять STL-файлы в ASCII. В двоичном формате файл занимает меньше. Тот файл,который Вы выложили как раз двоичный и весит 7 МБ. Сохраняем в ASCII и файл уже 40 МБ(по крайней мере MeshLab до таких размеров сконвертировал).Зато содержимое понятно и работать удобней.
Теперь по заданию. С каким объемом данных планируете работать?Хватит ли у Вас аппаратных ресурсов,чтобы отрисовать целиком всю поверхность в LabVIEW?Извлечь необходимую информацию из ASCII STL можно с помощью парсинга. Этот вариант не слишком быстрый,но для начала сойдет. Выделите небольшой участок поверхности(500х500 точек,например) и попробуйте получить массивы Х Y Z(пример приложил).Затем проверьте,что читается то же самое,что и в исходном файле(по цифрам сравните).Даже не пробуйте целиком файл пихать - до утра ждать будете
Дальше следует определиться,как 3d отрисовать?Surface,Scatter,Mehs и т.д. Нужна ли будет интерполяция,децимация?Почитайте про построение трехмерных графиков в LabVIEW,примеры гляньте в Help-е.
- Вложения
-
- ASCII STL.vi
- (99.64 КБ) 178 скачиваний
-
- STL2(ASCII2).zip
- Кусочек изображения в ASCII STL
- (14.15 КБ) 183 скачивания
Последний раз редактировалось Vitekkz88 29 окт 2014, 17:59, всего редактировалось 1 раз.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Re: Расчет зон ЭМД
Спасибо, массив с вершинами получен. Только почему стандартное средство не работает? Есть же блок считывания STL.
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Расчет зон ЭМД
Все работает.Кстати,и двоичные файлы тоже открываются на "ура"!Только почему стандартное средство не работает? Есть же блок считывания STL.
http://digital.ni.com/public.nsf/allkb/ ... B800734FB4
Для увеличения,уменьшения объекта зажмите клавишу Shift и используйте колёсик мышки либо тяните вниз/вверх.
Для перемещения объекта в стороны зажмите клавишу Ctrl и двигайте мышкой в желаемую сторону.
Скачайте пример программы по ссылке(внизу страницы находится,а так же картинку). Попробуйте,всё работает.
Так же NI напоминает,что:
Recommend checking the coordinates of your object. Is it actually located far from the origin (0,0,0)? If so, it could just be drawn off-screen.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Re: Расчет зон ЭМД
Пробовал переместить на 3 д сцене камеру по координатам поверхности, но так и не смог её найти, другие примеры в stl отображаются.
-
- beginner
- Сообщения: 11
- Зарегистрирован: 25 окт 2014, 23:28
- Версия LabVIEW: 2013
- Контактная информация:
Re: Расчет зон ЭМД
Поверхность нашел, вот только она качественно прорисоваться не может и нет Z координаты (поверхность почему-то плоская) Может надо воспользоваться OpenGL или ActivX???