Layout Place
layout_placeArranges blocks into non-overlapping layers, applies computed coordinates, and recalculates wire geometry for session-created connections to prevent diagonal lines.
Instructions
Расставить блоки по слоям без наложений — с применением координат.
Координаты считает LayeredPlacer, и они тут же применяются к блокам
(set_center). Раньше инструмент только возвращал координаты текстом, а
блоки не двигал: агент получал подтверждение расстановки, которой не было.
Позиция задаётся до расчёта — она влияет только на вид схемы.
Размеры блоков не задаются: set_center сохраняет родной размер каждого
блока (он задан правилами разработки SimInTech, и подменять его нельзя), а
расстановка считается по фактическим габаритам из get_size.
Здесь же трассируются линии, созданные connect в этой сессии: после
сдвига блоков геометрия пересчитывается NormalizeWire, иначе провода
остаются диагональными (по прямой между портами). Это единственное место,
где трассировка возможна: до расстановки блоки лежат в (0,0) друг на
друге, и маршрут получается в обход наложенных блоков. Линии, созданные
не в этой сессии, недоступны: COM не умеет перечислять линии страницы.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| block_ids | Yes | блоки через запятую — имена (`k_0`, `kx_0`, `ToFile_0`; их даёт `list_blocks`) или числовые id. | |
| connections | Yes | пары `src->dst` через запятую, напр. `k_0->kx_0`. Оба конца должны быть перечислены в `block_ids`. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |