measure oppairs → tableimport fullseye as fs; fs.ledger.profile_sides(contour, n=101, normalise=True) (実装を直接呼ぶなら import profileops; profileops.profile_sides(contour, n=101, normalise=True)、台帳から引くなら opsprofile.get("profile_sides"))上面・下面を弦方向の関数として取り出す。返りは dict。
弦を n 等分し、各位置で輪郭と交わる上下の点を線形補間で拾う。
開いた曲線はここで拒否される —— 1 価の関数(MTF 曲線のような)を渡すと
下面が取れないので、「これは閉じた断面ではない」と明示して落とす。型ではなく
検証で守っている(pairs は関数データにも閉輪郭にも使われる語彙なので、
型を分けると既存の輪郭生成 op から繋がらなくなる)。
Returns:
dict: x((n,))、upper / lower((n,))、normalised。
py -3.11 examples/profile_frame_tour.pytable を入力に取れる)—
measure)profile_thickness · profile_camber · profile_leading_edge_radius · profile_trailing_edge_gap
Provenance: profileops.py — PROFILE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.