Semantic DFX
A semantic check uses a real authored identity, not a guessed component name or nearby polygon. The initial bounded check asks whether one instance port faces an expected direction in its parent cell.
import lumicron_validate as lv
result = lv.dfx.port_orientation(
layout,
parent_cell="TOP",
instance_id=authored_instance_id,
port="fiber",
expected_degrees=90,
tolerance_degrees=0.01,
)
print(result.status, result.reason)
print(result.is_current(layout))Obtain authored_instance_id from the authored CellRef.authored_id in the Layout snapshot or its validated semantic projection. Two identical placements have different IDs. The check resolves that exact ID and named port; it does not search geometry for a replacement.
The check applies the existing reflection-then-rotation convention to the child port. Translation and positive magnification do not change direction. The frame is the named parent definition, not the top-level world frame. A missing or ambiguous ID, legacy identity, missing port, or array reference is unsupported. Array-occurrence and arbitrary nested-world addressing are not established by this check.
A failed angular comparison is failed, not unsupported. Settings are retained in the result, including the angular tolerance. Directions use degrees modulo 360 and the shortest angular difference.
Extension boundary
New semantic checks should follow the same rule: address exact authored evidence, identify its coordinate frame, record settings and bind the result to its inputs. Add a narrowly owned function and independent tests. No generic graph, implicit component matching, or blanket DFX qualification is provided here.