Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Рисуем во фрикаде линзы

Итак, воодушевленный этой темой на ЛОРе и вдохновленный пользователем DR_SL, я продолжаю свои эксперименты с фрикадом. На сей раз я решил подправить для себя скрипты DR_SL'а для рисования линз.

Для того, чтобы линзы строились по оптическим правилам (т.е. знаки радиусов поверхностей были верными), да и вообще чтобы упростить немного алгоритм DR_SL'а, я с полтора часа просидел, рисуя различные варианты на листе бумаги. Еще довольно сложным было работать с чуждым мне языком python. При помощи многочисленных мануалов по фрикаду (скриптование, куда пихать файлы, немного сниппетов и т.п.) и гугола, я таки сделал это!
Помимо рисования одиночной линзы я добавил код для рисования набора линз. В результате вот такой вот код, введенный в консоль питона freecad'а:

import Lens
a=[[8,6,1,6,3], [10,-15,2.5,8,5], [-16,10,0.5,6,7], [-8,-6,0.5,4,3], [3,3,0.2,2,1], [0,0,0.1,1,0.1], [0,3,.3,1]]
Lens.makeLensBench(a)
b=[[-10,8,0.1,6], [8,16,0.5,6], [16,-9,1,6]]
Lens.makeLensBench(b,App.Vector(0,10,0))
Позволяет получить вот такую картинку:
Еще добавлю видео с этими линзами, а также еще одно видео, на котором видно, почему «лучше день потерять, зато потом за полчаса долететь».
Сам код можно посмотреть здесь. а здесь - взять mercurial'ом свежий репозиторий.
Если автор оригинала не возражает, код под лицензией WTFPL!
Tags: freecad, оптика
Subscribe

  • Опять Подорванка смыла мост

    В четверг лило настолько, что, похоже, опять на подорванке забилась стремнина бревнами, а потом внезапно это все прорвало. МЧСовсцы перетаскивали…

  • Аж коробит…

    Уже который раз вижу (даже в прессе) выражение: "ставить прививку". Это что за странное такое словоблудие? Либо эпохи царской России, либо даже…

  • Упаковочка

    Получил сегодня пару посылок с алиэкспресса. Одна из них была с новым для меня способом доставки (на посылке не указывался адрес, а лишь "до…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 2 comments