Definition at line 284 of file general_optics_example.py. 00284 : 00285 inch=0.0254 00286 entrance_y=5.0*inch 00287 exit_y=13.5*inch 00288 my=ir_line 00289 optics={} 00290 00291 #first, list all mirrors, and point them at each other 00292 optics[my.M1]=mir("M1", (2*inch, entrance_y, 10*inch)) 00293 optics[my.M2]=mir("M2", (4*inch, entrance_y, 10*inch)) 00294 optics[my.TrM1]=mir("TrM1", (4*inch, entrance_y, 96*inch)) 00295 optics[my.TrM2]=mir("TrM2", (6*inch, entrance_y, 96*inch)) 00296 optics[my.TrM3]=mir("TrM3", (6*inch, entrance_y, 82.5*inch)) 00297 optics[my.TrM4]=mir("TrM4", (2*inch, entrance_y, 82.5*inch)) 00298 optics[my.M3]=mir("M3", (4*inch, entrance_y, 135*inch)) 00299 optics[my.M4]=mir("M4", (12*inch, entrance_y, 135*inch)) 00300 optics[my.M5]=mir("M5", (13*inch, entrance_y, 105*inch)) 00301 optics[my.M6]=mir("M6", (14*inch, entrance_y, 105*inch)) 00302 optics[my.M7]=mir("M7", (16.5*inch, entrance_y, 3*inch)) 00303 optics[my.M8]=mir("M8", (24*inch, entrance_y, 3*inch)) 00304 optics[my.M9]=mir("M9", (23*inch, entrance_y, 135*inch)) 00305 optics[my.M10]=mir("M10", (33*inch, entrance_y, 134.5*inch)) 00306 optics[my.M11]=mir("M11", (33*inch, entrance_y, -6*inch)) 00307 optics[my.BP4]=PL_brewster_filter("BP4", (33*inch, entrance_y, 27*inch), reversed=1) 00308 optics[my.M12]=mir("M12", (20*inch, entrance_y, 33*inch)) 00309 optics[my.M13]=mir("M13", (20*inch, entrance_y, 12*inch)) 00310 optics[my.M14]=mir("M14", (8.5*inch, entrance_y, 11.5*inch)) 00311 optics[my.M15]=mir("M15", (8.5*inch, exit_y, 11.5*inch)) 00312 00313 optics[my.EXIT]=sys_exit=null_optic("exit", (10.0*inch, exit_y, 142.0*inch)) 00314 00315 optics[my.L1]=lens("L1", f=+0.400).place_between(optics[my.M2], optics[my.TrM1], 12.0*inch) 00316 optics[my.L2]=lens("L2", f=+0.800).place_between(optics[my.L1], optics[my.TrM1], 1.30) 00317 optics[my.L3]=lens("L3", f=+0.750).place_between(optics[my.M6], optics[my.M7], 10*inch) 00318 optics[my.L4]=lens("L4", f=+1.500).place_between(optics[my.L3], optics[my.M7], 2.25) 00319 optics[my.L5]=lens("L5", f=+0.750).place_between(optics[my.M10], optics[my.M11], 5*inch) 00320 optics[my.L6]=lens("L6", f=+1.500).place_between(optics[my.L5], optics[my.M11], 95.5*inch) 00321 optics[my.L7]=lens("L7", f=+0.750).place_between(optics[my.M15], sys_exit, 4.5*inch) 00322 optics[my.L8]=lens("L8", f=+2.500, width=6*inch, thickness=0.25*inch).\ 00323 place_between(optics[my.M15], sys_exit, -1*inch).tilt_off_axis((0,45,0)) 00324 00325 optics[my.G9a]=laser_head("9mm-1", width=2.0*inch, thickness=6.0*inch, rodsize=0.009).\ 00326 place_between(optics[my.M4], optics[my.M5], 9*inch) 00327 optics[my.G9b]=laser_head("9mm-2", width=2.0*inch, thickness=6.0*inch, rodsize=0.009).\ 00328 place_between(optics[my.M4], optics[my.M5], 23*inch) 00329 00330 optics[my.G25a]=laser_head("25mm-1", width=6.0*inch, thickness=12.0*inch, rodsize=0.025).\ 00331 place_between(optics[my.M8], optics[my.M9], 74*inch) 00332 optics[my.G25b]=laser_head("25mm-2", width=6.0*inch, thickness=12.0*inch, rodsize=0.025).\ 00333 place_between(optics[my.M8], optics[my.M9], 94*inch) 00334 00335 optics[my.G50]=laser_head("50mm", width=9.0*inch, thickness=15.0*inch, rodsize=0.050).\ 00336 place_between(optics[my.M10], optics[my.M11], -19*inch) 00337 00338 optics[my.SERR1]=serrated_aperture("serrated aperture", diameter=0.003).\ 00339 place_between(optics[my.M2], optics[my.TrM1], 10*inch) 00340 optics[my.SF1]=plain_aperture("spatial filter 1", diameter=0.001).\ 00341 place_between(optics[my.M2], optics[my.TrM1], 35*inch) 00342 00343 optics[my.QR1]=halfwave_plate("QR1", width=1*inch, thickness=0.5*inch).\ 00344 place_between(optics[my.G9a], optics[my.G9b], 8*inch).rotate_axis(22.5) 00345 optics[my.FR12]=faraday_rotator("FR12", width=0.5*inch, thickness=6*inch, rotation=45).\ 00346 place_between(optics[my.M6], optics[my.M7], 5*inch) 00347 optics[my.VSF1]=vacuum_spatial_filter("VSF1", thickness=24*inch, width=2*inch).\ 00348 place_between(optics[my.L3], optics[my.L4], 0.750) 00349 00350 optics[my.QR2]=halfwave_plate("QR2", width=1*inch, thickness=0.5*inch).\ 00351 place_between(optics[my.G25a], optics[my.G25b], 8*inch).rotate_axis(22.5) 00352 00353 optics[my.BP2]=PL_brewster_filter("BP2", transmit=1).\ 00354 place_between(optics[my.G25b], optics[my.M9], 13*inch).rotate_axis(90) 00355 optics[my.QR3]=halfwave_plate("QR3", width=1*inch, thickness=0.5*inch).\ 00356 place_between(optics[my.G25b], optics[my.M9], 19*inch).rotate_axis(22.5) 00357 optics[my.FR25]=faraday_rotator("FR25", width=1.0*inch, thickness=6.0*inch, rotation=45).\ 00358 place_between(optics[my.G25b], optics[my.M9], 23*inch) 00359 optics[my.BP3]=PL_brewster_filter("BP3", transmit=1).\ 00360 place_between(optics[my.G25b], optics[my.M9], 30*inch).rotate_axis(0) 00361 00362 looks=[my.M1, my.M2, my.TrM1, my.TrM2, my.TrM3, my.TrM4, my.M3, my.M4, my.M5, 00363 my.M6, my.M7, my.M8, my.M9, 00364 my.M10, my.M11, my.BP4, my.M12, my.M13, my.M14, my.M15, my.EXIT] 00365 #align all mirrors 00366 for i in range(1, len(looks)-1): 00367 optics[looks[i]].set_direction(optics[looks[i-1]], optics[looks[i+1]]) 00368 00369 order=[my.M1, my.M2, my.SERR1, my.L1, my.SF1, my.L2, my.TrM1, my.TrM2, my.TrM3, my.TrM4, my.M3, my.M4, my.G9a, 00370 my.QR1, my.G9b, my.M5, 00371 my.M6, my.FR12, my.L3, my.VSF1, my.L4, my.M7, my.M8, my.G25a, my.QR2, my.G25b, 00372 my.BP2, my.QR3, my.FR25, my.BP3, 00373 my.M9, my.M10, my.L5, my.L6, my.G50, my.M11, my.BP4, my.M12, 00374 my.M13, my.M14, my.M15, my.L7, my.L8] 00375 00376 #specify center and reference as (0,0,0) to make our coordinates absolute 00377 composite_optic.init(self, "IR line", optics, order, (0,0,0), (0,0,0), 0, extras=extras ) 00378 class ir_compressor(composite_optic):
|