{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "6026a74b", "metadata": {}, "outputs": [], "source": [ "%matplotlib widget\n", "\n", "isdark = False\n", "\n", "from rayoptics.environment import *" ] }, { "cell_type": "code", "execution_count": 2, "id": "c7d740ee", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "150.0 17.29156926912888 -30.45841339555312\n" ] } ], "source": [ "opm = OpticalModel()\n", "sm = opm['seq_model']\n", "osp = opm['optical_spec']\n", "pm = opm['parax_model']\n", "\n", "osp['pupil'] = PupilSpec(osp, key=['object', 'pupil'], value=16)\n", "osp['fov'] = FieldSpec(osp, key=['object', 'angle'], value=0.5, flds=[0., 0.707, 1.], is_relative=True)\n", "osp['wvls'] = WvlSpec([('F', 0.5), (587.5618, 1.0), ('C', 0.5)], ref_wl=1)\n", "\n", "opm.radius_mode = True\n", "\n", "sm.gaps[0].thi=1e10\n", "\n", "def calc_curvature(n, fl):\n", " return (n-1)*fl\n", "\n", "n_bk7 = 1.5168\n", "n_lasf9 = 1.85025\n", "n_f2 = 1.62005\n", "\n", "v_bk7 = 64.17\n", "v_lasf9 = 32.16\n", "v_f2 = 36.43\n", "# try for chaining a 3x telescope setup with a second 3x telescope setup\n", "f0 = 150\n", "f0_0 = (v_bk7-v_f2)*f0/v_bk7\n", "f0_1 = -f0_0*v_bk7/v_f2\n", "f0_actual = 1/(1/f0_0+1/f0_1)\n", "f1 = 40\n", "# 1/f = 1/f0 + 1/f1 = 1/f0 - v2/(f0*v1) = (v1-v2)/(v1*f0)\n", "# f0 = (v1-v2)*f/v1\n", "f1_0 = (v_bk7-v_f2)*f1/v_bk7\n", "f1_1 = -f1_0*v_bk7/v_f2\n", "print(f0_actual, f1_0, f1_1)\n", "f2 = 150\n", "f3 = 50\n", "\n", "f1_stacked = 2*f1\n", "\n", "r0 = calc_curvature(n_lasf9, f0)\n", "r0_0 = calc_curvature(n_bk7, f0_0)\n", "r0_1 = calc_curvature(n_f2, f0_1)\n", "r1 = calc_curvature(n_lasf9, f1)\n", "r1_0 = calc_curvature(n_bk7, f1_0)\n", "r1_1 = calc_curvature(n_f2, f1_1)\n", "r2 = calc_curvature(n_lasf9, f2)\n", "r3 = calc_curvature(n_lasf9, f3)\n", "\n", "sm.add_surface([r0_0, 2, 'N-BK7', 'Schott', 42/2])\n", "sm.add_surface([1e9, 2, 'N-F2', 'Schott', 42/2])\n", "#sm.add_surface([-r0_1, 180+2*f1])\n", "sm.add_surface([-r0_1, 180+2*36.])\n", "\n", "#sm.add_surface([r1_0, 6, 'N-BK7', 'Schott', 16])\n", "#sm.add_surface([1e9, 2, 'N-F2', 'Schott', 16])\n", "#sm.add_surface([-r1_1, 30])\n", "#sm.add_surface([1e9, 2, 'N-LASF9', 'Schott', 16])\n", "#sm.add_surface([-r1, f2+f3])\n", "\n", "#sm.add_surface([r2, 2, 'N-LASF9', 'Schott', 16])\n", "#sm.add_surface([1e9, f2+f3])\n", "#sm.add_surface([1e9, 2, 'N-LASF9', 'Schott', 16])\n", "#sm.add_surface([-r3, f3])\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "a26f0ff4", "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "98b58e1952da43188327834bb626eb8e", "version_major": 2, "version_minor": 0 }, "image/png": "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AQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHAMARAAAMAxBEAAAADHEAABAAAcQwAEAABwDAEQAADAMQRAAAAAxxAAAQAAHEMABAAAcAwBEAAAwDEEQAAAAMcQAAEAABxDAAQAAHDM/w9wJCiJr7VtPQAAAABJRU5ErkJggg==", "text/html": [ "\n", "