Старая программа DOS-овских времён

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

  А нынче? Кого и чем можно нынче удивить. Вопрос риторический.
  Итак, достав старую программу с Яндекс облака, куда я заботливо её загрузил по окончании надобности в её работе, я опробовал её, нашёл её вполне работоспособной и даже чуть-чуть её усовершенствовал.

  Должен сказать, что это "чуть-чуть" далось мне с большим трудом. Сочинённое в прошлом веке,  плохо поддавалось расшифровке. Да я и не пытался расшифровать всё.
  Достаточно сказать, что программа работает не в текстовом, а в графическом режиме. Цифры и буквы кириллицы и латиницы не содержатся в стандартном шрифте, а рисуются  прямым отображением в видеопамять небольших фрагментов размером 8х14 пикселей каждый, и только поэтому русскоязычную программу можно использовать, запуская её через так называемый ящик, эмулирующий DOS для системы Виндос.
  В общем, программа работает и сейчас. И даже Вы можете сделать это.

  Программа называется «Расчёт оптики методом Монте-Карло по формулам Федера».   OPT - оптика  R – random, случайный  F – формулы Федера, отсюда и название файла -   OPTR_F.

  Вы поняли – расчёт заключается в генерировании множества лучей и в прогоне этих лучей через оптическую систему.  Метод вполне эффективный, большинство  современных программ работает таким образом.
  Источником лучей может быть круг, Гауссов контур, или линия.
  В нашем случае, представленном на иллюстрации, предмет задаётся вертикально ориентированной линией размером 5 мм.

  Из каждой точки источника лучи могут идти или параллельно друг другу,  или несколько рассеиваясь. В случае рассеяния направление луча тоже  разыгрывается, но делается это уже в плоскости входного зрачка.
  Итак, начав двигаться от предмета к входному зрачку,  лучи  сразу же попадают в оптическую систему.

  Конфигурация оптической системы задаётся последовательностью строк. Эта последовательность записывается в отдельном окне, и вы можете видеть её на иллюстрации. В каждой строке, после номера, задаётся величина L – это расстояние, пройденное лучами от предыдущего элемента до вершинной плоскости элемента, описываемого строкой.
  Если L=0 или отсутствует, то это значит, что элементы находятся вплотную друг к другу.

  Не только линзы, прозрачные поверхности или зеркала, могут быть в составе элементов. Элементом может быть разворот пучка лучей на заданный угол, или поперечное смещение пучка на заданное расстояние.
  Имеются и вспомогательные элементы. Это строки MARK и  RETURN.
 Строки  MARK  используются для фиксации и накопления результатов, а строка  RETURN  возвращает программу к розыгрышу и к прогону следующего луча.
  В системе, представленной на иллюстрации, имеется две плоскости  MARK – на входе и на выходе системы. На них лучи и оставляют свои следы.  Потом,  в режиме просмотра, следы соединяются друг с другом, и создаётся впечатление, что лучи шли от одной плоскости к другой так, будто между плоскостями ничего и не было – посмотрите на иллюстрацию. Видите там будто бы сходящийся пучок?

  Пучок этот совершенно плоский – на той проекции, что справа, он изображается точками, ложащимися на вертикальную ось Y. Пучок сходится в малюсенькую точку. Ну, как её разглядеть?
  Однако та диаграмма, что справа внизу – особенная. На ней для точек по горизонтальной оси берутся координаты  Y  с первой плоскости  MARK, а по вертикальной – со второй. Последние значения ещё и увеличиваются более чем в сто раз.  Размер  диаграммы по горизонтали чуть более   2В=5,  а по вертикали точно равен  2А=.04,  то есть составляет 40 микрон.
  На диаграмме мы видим жёлтую и зелёную кривые. Почему же кривых две, и откуда они взялись?
  Дело в том, что вначале было просчитано 60 лучей для того зазора между линзами, который вы видите на чёрном поле слева  – это 0.26 мм, а потом было просчитано 60 лучей для зазора 0.264 мм.  Такое небольшое изменение зазора, всего на 4 микрона, привело к тому, что точки с жёлтой кривой переместились на зелёную.

  А что означают расстояния точек до горизонтальной оси?
  Одна точка находится к оси ближе, другая - дальше, а вместе они определяют размер пятна сфокусированного лазерного излучения. Если бы фокусировка была бы идеальной, то мы бы получили ноль. Но поскольку фокусирующий объектив, составленный из двух линз, с марками стекла К8 и ТФ2, имеет аберрации, то сфокусированное пятно получается общим размером  Н=0.02688.  И это значение мы можем видеть на самом верху справа.
  Это очень хорошая величина. Такая тонкая фокусировка обеспечивается небольшим воздушным зазором между линзами объектива. Видите, как кривые в своей правой части загибаются вниз? Без зазора они продолжали бы идти вверх, и пятно лазерного излучения получилось бы у нас существенно больше.

  И, ах какая красота! Так, сравнительно легко и просто можно узнавать всё о тех оптических системах, которые Вы собираетесь конструировать.
  Ещё о возможностях программы Вы можете узнать тут - http://proza.ru/2015/05/19/1630

____________
Программу можно скачать из этой папки http://disk.yandex.ru/d/H-CW5wV8FRRrKA  только сначала скачайте её описание http://disk.yandex.ru/d/HzujvEnCC7DhXQ и из него вы узнаете, какие файлы нужно скачивать.  Позаботьтесь также о том, чтобы скачать DOS-ящик. Без него программа работать не будет.

Трудно ли в наши дни встретить любителей антиквариата?
Верю, что есть и такие )))

_________
21.04.2022

видео о программе смотрим здесь - http://youtu.be/MF8RmX_lBfo