fullseye

set_vignetting — OPTICS design op

使い方

Compute the vignetting factors that remove every aperture-clipped ray, as “set vignetting” does (table).

For each field (a list of radial field values; default the existing records’ fields, else the system’s own field) the real-ray-aimed pupil is searched along ±x and ±y for the edge of the clear region (bisection to 1e-13): VDX, VDY are the centres and VCX, VCY one minus the half-widths, VAN is 0.

mode "four" (the default) is the definition of the format’s user guide (knowledge-base article KA-01393): the factors are chosen so that exactly the four marginal rays — top (0, 1), bottom (0, -1), left (-1, 0) and right (1, 0) of the vignetted pupil — pass every aperture. It is what reproduces the factors recorded in a file, but when the clear region is not an ellipse (e.g. two offset circles) rays between the four can still be clipped. "grid" is the stricter option: if a rings-ring hexapolar grid plus a 72-point rim of the resulting ellipse still has clipped rays the ellipse is shrunk about its centre until none is, so afterwards no ray of the grid is clipped. A field with nothing clipped gets all-zero factors (to 1e-9 and in practice exactly). A field whose chief ray is itself clipped raises ValueError. Returns a copy of system with aim="stop" (the factors are fractions of the stop pupil, so they belong to real-ray aiming) and the records for those fields replaced; vignetting_set records the fields, grid (rings, n_checked rays per field), and wavelength the factors were verified on.

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

abcd_matrix · wavefront_stats · sfr_from_edge · paraxial_trace · seidel_coefficients · spot_stats · tolerance_analysis · wavefront_from_opd

同カテゴリ(design)

lens_system · thick_lens · glass · example_system · glass_catalog · sellmeier · paraxial_trace · seidel_coefficients


Provenance: raytrace.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.