Ru-Board.club
← Вернуться в раздел «Программы»

» Программы для разработки, тестирования,... оптических систем

Автор: DEHiCKA
Дата сообщения: 06.07.2009 20:46
F.A. Jenkins, H.E. White, Fundamentals of Optics вроде в списке под номером 482, но на книголюбе что-то ненаходится.
Автор: paparazzo
Дата сообщения: 06.07.2009 21:16

Цитата:
F.A. Jenkins, H.E. White, Fundamentals of Optics вроде в списке под номером 482, но на книголюбе что-то ненаходится.


отправил
Автор: DEHiCKA
Дата сообщения: 06.07.2009 22:32
Спасибо!
Автор: 2w2w2w
Дата сообщения: 07.07.2009 15:59
У меня конкретная задача: при изготовлении объектива измеряются толщины готовых линз, данные поступают в Excel, как их от туда отправлять в Lens Data Editor (Zemax)
Заранее спасибо.

Проблема побеждена. Ничего не надо ни куда забивать, все делается само. У кого будет такая же задача- передать уйму данных из Excel в Lens Data Editor (Zemax)-обращайтесь
Автор: Xamez
Дата сообщения: 08.07.2009 17:40
Р. Хопкинс, к сожалению, умер.
http://www.rochester.edu/news/show.php?id=3403
Автор: VECTORRR
Дата сообщения: 15.07.2009 10:19
Здравствуйте!
В посреднее время пользуюсь ASAP. У Земакса в непоследовательном режиме не могу найти параксиальную линзу, которая есть в ASAP. Её нет в NSC Земакса?
В ASAP можно повернуть объект вокруг произвольно удалённой точки на оси? В NSC Земакса этого нет?
Автор: paparazzo
Дата сообщения: 15.07.2009 12:06

Цитата:
Здравствуйте!
В посреднее время пользуюсь ASAP. У Земакса в непоследовательном режиме не могу найти параксиальную линзу, которая есть в ASAP. Её нет в NSC Земакса?
В ASAP можно повернуть объект вокруг произвольно удалённой точки на оси? В NSC Земакса этого нет?


1. Нет параксиальной линзы. Можно придумать используя User Defined Object
2. Можно воспользоватся опцией reference object, задав неиспользуемый (dummy) объект, установив его ка нужно, а наш объект вращая относительно него.
Автор: VECTORRR
Дата сообщения: 16.07.2009 07:24

Цитата:
1. Нет параксиальной линзы. Можно придумать используя User Defined Object
2. Можно воспользоватся опцией reference object, задав неиспользуемый (dummy) объект, установив его ка нужно, а наш объект вращая относительно него.


Сходу мне замутить DLL будет нелегко. Мне нужно смоделировать проектор, в котором нужно рассчитать осветительную часть. От проекционного объектива мне известен только фокус и диаметр входного зрачка, т.е. нужен параксиал. Почему до сих пор не добавили в Zemax параксиал?
Тут тоже спрашивают
http://www.optima-research.com/forum/viewtopic.php?t=173&sid=ed6a746507cba18f0e540a1a6c5ec7da

Предлагают Sweatt lens, параметры которой не понятно как задавать.

А поворот с референсом тоже не фурычит. Если это линза, то она будет поворачиваться вокруг своей первой вершины, а не от заданной точки пространства.

В данном случае будет проше всё это сделать в ASAP.

Автор: paparazzo
Дата сообщения: 16.07.2009 08:55

Цитата:
Сходу мне замутить DLL будет нелегко. Мне нужно смоделировать проектор, в котором нужно рассчитать осветительную часть. От проекционного объектива мне известен только фокус и диаметр входного зрачка, т.е. нужен параксиал. Почему до сих пор не добавили в Zemax параксиал?


На досуге попробую замутить Dll, интересно просто. Завтра выложу, максимум после выходных.


Цитата:
А поворот с референсом тоже не фурычит. Если это линза, то она будет поворачиваться вокруг своей первой вершины, а не от заданной точки пространства.


Почему не фурычит??? Что нужно конкретно, дайте цифры - проверю, так ли это?
Автор: VECTORRR
Дата сообщения: 16.07.2009 09:15
Тьфу, фурычит!
Поворачивал сам объект, а надо было поворачивать Null Object.
Спасибо!
Автор: paparazzo
Дата сообщения: 18.07.2009 12:09
Парксисальная линза, но не совсем, она просто собирает весь свет, независимо от угла падения в фокус (или разводит из фокуса). Создал при помощи рассеяния, т.к. в User Object сложно сделать..

http://rapidshare.de/files/47881505/Paraxial_Scatter.rar.html

есть замечания - можно доделать, ради интереса. Заняло 15 минут всё дело.

Добавлено:
Автор: VECTORRR
Дата сообщения: 19.07.2009 04:41

Цитата:
Парксисальная линза, но не совсем, она просто собирает весь свет, независимо от угла падения в фокус (или разводит из фокуса).


Круто, т.е если у нас вблизи фокуса линзы расположен слайд, то изображение будет представлять выжженную на экране дырку . Мне же нужно контролировать равномерность освещённости изображения на экране, т.е. создать хороший проектор со сменными объективами, которые заранее обладают хорошим качеством и подобраны правильно, т.е. их конструктивные параметры меня сильно не должны волновать, т.е. было бы желательно иметь параксиальную линзу.

Значит, действительно, у ASAP есть плюс в наличии параксиальной линзы, хотя ввод данных занимает больше времени.
Автор: paparazzo
Дата сообщения: 19.07.2009 08:52

Цитата:
Круто, т.е если у нас вблизи фокуса линзы расположен слайд, то изображение будет представлять выжженную на экране дырку . Мне же нужно контролировать равномерность освещённости изображения на экране, т.е. создать хороший проектор со сменными объективами, которые заранее обладают хорошим качеством и подобраны правильно, т.е. их конструктивные параметры меня сильно не должны волновать, т.е. было бы желательно иметь параксиальную линзу.


А последовательный режим Zemax чем не подходит??? Там ведь есть параксиальная линза...
Автор: VECTORRR
Дата сообщения: 19.07.2009 13:41

Цитата:
А последовательный режим Zemax чем не подходит???

AGAIN

Цитата:
Мне же нужно контролировать равномерность освещённости изображения на экране

Ибо, зачем же ещё существует непоследовательный режим?

Можно иногда обойтись без NSC, приближённо зная угол охвата источника и диаграмму излучения, но у меня не всё так просто, т.к. есть несколько расположенных в пространстве источников с отнюдь не точечными телами излучения. Для отчёта ещё нужны картинки распределения, фотошопить которые я бы задолбался.
Автор: paparazzo
Дата сообщения: 19.07.2009 14:55

Цитата:
Ибо, зачем же ещё существует непоследовательный режим?

Можно иногда обойтись без NSC, приближённо зная угол охвата источника и диаграмму излучения, но у меня не всё так просто, т.к. есть несколько расположенных в пространстве источников с отнюдь не точечными телами излучения. Для отчёта ещё нужны картинки распределения, фотошопить которые я бы задолбался


1. Создаем источниками в непоследовательном режиме картину засветки слайда
2. Экспортируем в BMP
3. В последовательном режиме сразу за объектом ставим непоследовательный компонент Slide с нашей картинкой
4. При последовательных расчетах (напримет Image Simulation) ставим галку Use polarization, тогда учтет поглощение на слайде - картинка ниже.

наверное так.
Тем более для параксиального объектива углы особой роли игрпть не будут, и Stray Light тоже не имеет смысла... только пространсвенное распределеніе света от предмета.

Пример, представим что источники дают засветку в виде сетки в объекте, правда не параксиальные линзы здесь, но не важно. http://rapidshare.de/files/47890531/test.rar.html

Автор: VECTORRR
Дата сообщения: 19.07.2009 16:40
Похоже, что я плохо описал вопрос.
Допустим, что схема создана кривым оптиком и представлена ниже

Пусть слайд освещён равномерно (чего конечно не будет). Экспорт слайда в BMP создаст только освещённость слайда, но сам то слайд не несёт информацию о дальнейшем пути лучей и мы будем иметь то, что поток, обозначенный штриховкой, уёдёт мимо проекционного объектива. На экране будет изображена часть слайда, которая заключёна между двумя ближайшими к оси кружками на слайде (см. картинка).

Короче, последовательный не уместен, т.к. изначально основан на том что (см.картинку ниже), чего у нас нет.
Или я не прав?
Автор: paparazzo
Дата сообщения: 19.07.2009 22:29

Цитата:
Пусть слайд освещён равномерно (чего конечно не будет). Экспорт слайда в BMP создаст только освещённость слайда, но сам то слайд не несёт информацию о дальнейшем пути лучей и мы будем иметь то, что поток, обозначенный штриховкой, уёдёт мимо проекционного объектива. На экране будет изображена часть слайда, которая заключёна между двумя ближайшими к оси кружками на слайде (см. картинка).


То что он уйдет можно оценить и так, без обектива.
В любом случае объектив имеет входной угол (апертуру которую он пропустит), определяемый его апертурной диафрагмой, т.е. больше света он не возьмет. Т.о. разницы в последовательном и непоследовательном здесь нет, тем более линза параксиальная - посторонний свет ничего в ней не сделает ...
Т.е. в в последовательном мы имеем только тот свет, что попал в объектив. А что попало можем оценить и так - зная лишь диаметр объектива грубо..
хотя, возможно, я вас понимаю, информацию о яркости слайд не несет, только об освещенности.... т.е. разные области слайда могут излучать по углу неодинаково. В этом наверное и затык...
Всё же, какой должна быть парксиальная линза в непоследовательном режиме - пока не совсем понятно....
Автор: VECTORRR
Дата сообщения: 20.07.2009 05:28

Цитата:
Всё же, какой должна быть парксиальная линза в непоследовательном режиме - пока не совсем понятно....

Что именно непонятно? В ASAP она ведь есть и ничем не лучше параксиальной линзы в последовательном режиме ZEMAX. Задаёшь фокусное, диаметр и всё работает по закону Z*Z'=-f'^2. А грубо оценивать сложно, т.к. стоящий перед источником конденсор простой и имеет большие аберрации пучка, а значит вносит большие изменения в равномерности строения пучка.
Да и как грубо оценивать, допустим один из вариантов моего конденсора, в качестве источника которого - диод с пластиковой насадкой - коллиматором, которая в свою очередь разделяет поток на две части со своей расходимостью, а из параметров мне известна толко сама 3D модель.

В ASAP напрягает программистский стиль введения данных, но с практикой к этому привыкаешь.
Впрочем, да ладно с ней, кому надо, тот и без неё обойдётся, но всё-таки не я один интересовался этим и параксиалка должна быть в NSC (см. выше обсуждение на сайте optima research)!
Автор: paparazzo
Дата сообщения: 20.07.2009 07:43

Цитата:
Что именно непонятно? В ASAP она ведь есть и ничем не лучше параксиальной линзы в последовательном режиме ZEMAX. Задаёшь фокусное, диаметр и всё работает по закону Z*Z'=-f'^2. А грубо оценивать сложно, т.к. стоящий перед источником конденсор простой и имеет большие аберрации пучка, а значит вносит большие изменения в равномерности строения пучка.
Да и как грубо оценивать, допустим один из вариантов моего конденсора, в качестве источника которого - диод с пластиковой насадкой - коллиматором, которая в свою очередь разделяет поток на две части со своей расходимостью, а из параметров мне известна толко сама 3D модель.


А поставить асферику с заданным фокусом вместо параксиальной линзы в NSQ режиме не подойдет разве?

Я так делал обычно раньше, а идея параксиальной линзы в голову не приходила как-то.
Кстати на форуме оптимы объясняют почему нельзя это сделать.

Цитата:
In NS mode rays can come from any source, at any angle, from either side, and computing the OPD is very hard as there may not even be conjugate positions.


Это одна из причин...
Насколько хорошо она работает в АСАП по закону Z*Z'=-f'^2 не знаю, мбо АСАП не использую, т.к. Zemax достаточно для большинства задач..
Тем более расстояние Z (от предмета до фокуса линзы) как с ними быть, откуда Zemax его будет знать для параксиальной линзы в непоследовательном режиме?
Если это однозначно - я просто могу вбить алгоритм в Dll для Zemax, но это не так просто... В последовательном положеніе предмета всегда явно...
Автор: VECTORRR
Дата сообщения: 20.07.2009 08:23

Цитата:
А поставить асферику с заданным фокусом вместо параксиальной линзы в NSQ режиме не подойдет разве?

НЕТ, ибо, как известно, асферика на то и асферика, что позволяет получить точечное изображение только ОДНОЙ ТОЧКИ НА ОСИ. Для внеосевых точек изображение будет портиться ещё быстрее, чем в случае с простой сферической линзой. А слайд у меня большой и на краях мне даже страшно подумать что будет вместо изображения.


Цитата:
Тем более расстояние Z (от предмета до фокуса линзы) как с ними быть, откуда Zemax его будет знать для параксиальной линзы в непоследовательном режиме?

Уважаемый paparazzo, быстро идём учим МАТЧАСТЬ в разделе букваря "Расчёт хода луча через идеальную систему"!
Формулу Z*Z'=-f'^2 я привёл образно описывая действие линзы, а расчёт хода лучей проводится по формулам произвольных тангенсов:
Формула углов:


Формула высот:


Нам здесь нужна только формула углов, которую и надо вводить в DLL. Углы и высоты падения на поверхность можно извлечь из Земакса?
В Земаксе я только делал один макрос, а DLL пока обходился, так что вникать сил пока нет.

А объяснение на сайте оптимы мне просто смешно

Цитата:
In NS mode rays can come from any source, at any angle, from either side, and computing the OPD is very hard as there may not even be conjugate positions.

Значит по формуле n*sin(a)=n'*sin(a') углы преломления посчитать можно, а по формуле тангесов угол посчитать нельзя.
Автор: paparazzo
Дата сообщения: 20.07.2009 09:13

Цитата:
Уважаемый paparazzo, быстро идём учим МАТЧАСТЬ в разделе букваря "Расчёт хода луча через идеальную систему"!
Формулу Z*Z'=-f'^2 я привёл образно описывая действие линзы, а расчёт хода лучей проводится по формулам произвольных тангенсов:


Да, я это знаю. Просто не знал, как это реализовано в АСАП и формула Ньютона очень удивила. Хотя, матчасть мне учить нужно, наверное, все же.


Цитата:
Углы и высоты падения на поверхность можно извлечь из Земакса?


Да, конечно. В Dll об'екта Zemax мы получаем от Zemax направляющие косинусы и координаты луча падающего на поверхность. Но косинусы луча после мы отдать Zemax не можем, мы отдаём лишь вектор нормали к поверхности, на которой происходит преломление. Отсюда и сложности, т.е. для параксиальной линзы нужно вводить фиктивные поверхности с нормалями, чтоб получить нужные нам углы, согласно приведенным вами формулам.
В той модели что я использовал, рассеяние, мы отдаем Zemax непосредственно косинусы. Поэтому, таким образом, работать будет.

Добавлено:

Цитата:
Значит по формуле n*sin(a)=n'*sin(a') углы преломления посчитать можно, а по формуле тангесов угол посчитать нельзя.


Можно, просто непоследовательный режим весь построен так, что преломление на поверхности идет именно по формуле n*sin(a)=n'*sin(a'). Возможно им просто неудобно код переделывать.
Я с этим столкнулся уже, когда просил добавить простейшую вещь, реализованную в LightTools.

Добавлено:
Кстати, интересно, что в пользовательском объекте последовательного режима, есть отдельная функция (отдаваемая Zemax) для расчета параксиального хода луча. Более того, там пользователь считает преломление луча. В непоследовательном же решили, что достаточно реального преломления. Это моё ИМХО, на основе кода пользовательских об'ектов.
Автор: VECTORRR
Дата сообщения: 20.07.2009 10:13

Цитата:
В той модели что я использовал, рассеяние, мы отдаем Zemax непосредственно косинусы. Поэтому, таким образом, работать будет.

Если это ещё будет работать как надо, а не как концентратор в точку всего и всея отовсюду (см. рис) и была бы возможностью менять фокус линзы, то было бы хорошо.
Автор: paparazzo
Дата сообщения: 20.07.2009 10:19
Кстати, если быть точным, что касается реальных лучей - закон преломления не n*sin(a)=n'*sin(a'), если быть точным, а N x (n2*a2-n1*a1)=0
Где N - вектор нормали к поверхности, a2 - вектор луча после поверхности, a1 - вектор луча до поверхности, n1, n2 - показатели преломления.

Как формулу тангенсов подвести по это дело, я не знаю. Она вводилась для осесимметричных систем, одномерного случая. Мозг уже не соображает, сорри...

Добавлено:

Цитата:
Если это ещё будет работать как надо, а не как концентратор в точку всего и всея отовсюду (см. рис) и была бы возможностью менять фокус линзы, то было бы хорошо.


Да, я знаю, но нужна формула для пересчета углов в общем виде, не одномерном.
Автор: VECTORRR
Дата сообщения: 20.07.2009 10:26
Короче, ZEMAX

Автор: paparazzo
Дата сообщения: 20.07.2009 10:46
Только из-за отсуствия параксиальной линзы?
То же самое можно про ASAP сказать.
Автор: VECTORRR
Дата сообщения: 20.07.2009 11:06
Я пробовал Trace Pro и LightTools, которые в освоении проще, но от работы в них меня .
ASAP более открыт для меня, правда пришлось с ним помучаться в освоении и при продолжительном отсутствии работы навык в нём теряется быстрее.

А ZEMAX - классика
Автор: paparazzo
Дата сообщения: 20.07.2009 12:35

Цитата:
Я пробовал Trace Pro и LightTools, которые в освоении проще, но от работы в них меня .
ASAP более открыт для меня, правда пришлось с ним помучаться в освоении и при продолжительном отсутствии работы навык в нём теряется быстрее.

А ZEMAX - классика


Возможно и так.
а в справке ASAP есть формулы по какім рассчитывается ход луча в параксиальной линзе?
Автор: VECTORRR
Дата сообщения: 20.07.2009 16:11

Цитата:
а в справке ASAP есть формулы по какім рассчитывается ход луча в параксиальной линзе?

Нет, т.к это всего лишь одна из функций из тысячи их. А если сообразить, то в пространстве ход лучей рассчитывается также по формуле углов, но только нужно раскладывать луч на две проекции X и Y, т.е. будет две высоты и два угла между плоскостями. Или тут нужна векторная форма? Я думаю, что тоже можно сообразить.

А большой плюс у Земакса существует - поддержка многоядерности, причём уже давно, когда ещё это была многопроцессорность.
Последней версии Асапа у меня нет, но в версии 7.5 её ещё не было (наверное и сейчас нет - надо проверить), т.е. у Асапа всегда задейтвовано только одно ядро и Земакс работает в 2 или 4 раза быстрее, в зависимости от процессора. В Асапе есть прикол - можно выбрать рабочее ядро, что ничего правда не даёт, т.к. ядра работают одинаково.
Автор: paparazzo
Дата сообщения: 20.07.2009 16:51

Цитата:
А большой плюс у Земакса существует - поддержка многоядерности, причём уже давно, когда ещё это была многопроцессорность.
Последней версии Асапа у меня нет, но в версии 7.5 её ещё не было (наверное и сейчас нет - надо проверить), т.е. у Асапа всегда задейтвовано только одно ядро и Земакс работает в 2 или 4 раза быстрее, в зависимости от процессора. В Асапе есть прикол - можно выбрать рабочее ядро, что ничего правда не даёт, т.к. ядра работают одинаково.


Есть такая штука У меня работает 8-мь ядер. Очень впечатляет.
Для меня достоинства Zemax - простой неперегруженный интерфейс, скорость работы, широкие возможности для пользователя: макроязык, возможность в виде Dll задавать источники, объекты, поверхности, рассеяние, диффракцию и т.п.
Причем макросы можно пихать куда угодно - в оптимизатор, в picup, в solves.
Т.е. я чувствую себя свободно с Zemax, непоняток нет.


Цитата:
Нет, т.к это всего лишь одна из функций из тысячи их. А если сообразить, то в пространстве ход лучей рассчитывается также по формуле углов, но только нужно раскладывать луч на две проекции X и Y, т.е. будет две высоты и два угла между плоскостями. Или тут нужна векторная форма? Я думаю, что тоже можно сообразить.


По моему кто-то мне из этого форума присылал куски мануала ASAP по поводу рассения, там все расписано с формулами...
Суть такова - Zemax дает мне направляющие косинусы луча, его координаты на поверхности, я должен отдать ему косинусы луча после поверхности. Всё! Остальное расчёт, любой алгоритм для их расчета на языке С.
Ориентация луча может быть произвольной, это не последовательный режим, где луч обычно лежит в плоскости оптической оси. Общий случай нужен, т.е. векторы наверное.
Автор: paparazzo
Дата сообщения: 20.07.2009 20:37
Сообразил, бинго, все элементарно.
работает параксиальная линза в непоследовательном Zemax.

Пример
http://rapidshare.de/files/47901524/paraxial_scatter.rar.html

По крайней мере изображения объектов строит



Используется dll рассеяния, поместить её в папку Zemax\Objects\DLL\SurfaceScatter\

Велина фокуса задается на вкладке coat\scatter
При расчетах должна быть активирована галка "Scatter rays", или соответсвующий флаг.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

Предыдущая тема: LogMeIn Hamachi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.