Files
kompas-plugin/plugin/skills/kompas-3d/reference/parametrization.md
T

5.1 KiB

Параметризация: сначала переменные, потом геометрия

Дополнение к SKILL.md §«Параметризация». Читай это перед первым эскизом нового документа — план переменными стоит один вызов на размер, пока деталь пуста, и пересборку после десятка операций.

В новом документе первым делом опиши будущую модель переменными — до первого эскиза. Набор переменных — это план построения числами и паспорт, по которому человек поймёт модель, не разбирая дерево.

  • Заводи переменной то, что было РЕШЕНИЕМ: габариты из ТЗ, толщины, зазоры, отступы, кегли, радиусы. Выводимое задавай формулой (plate_L = badge_L - 2*edge_gap) — правка ведущего размера пересчитает зависимые сама. Позиции, подобранные замером, оставляй числами: связь — обещание, что правка переменной даст осмысленный результат, а на позиционных числах она чаще ломает деталь.
  • Размер передавай выражением прямо в операцию (extrude(depth="badge_T")) — параметр сразу становится ведомым, внутреннее имя параметра («Расстояние 1») знать не нужно. Переменная должна существовать ДО операции — потому паспорт и заводят первым. Задним числом и для параметров, которых нет среди аргументов инструмента (углы уклона, второе направление), — link_parameter.
  • Промахи сервер ловит сам: ссылка на несуществующее имя — отказ с перечнем виновных (и в выражениях операций, и в set_variable; регистр значим), функции в формулах — предупреждение (тригонометрия в радианах, разделитель аргументов «;», непонятая запись = молчаливый 0). Твоя часть — сверить вычисленные значения из ответа со своей прикидкой.
  • note обязателен и пишется по-русски, со смыслом и единицей; (ТЗ) в тексте по-прежнему полезен человеку, но для машины число из ТЗ метится ПРИЗНАКОМ: set_variable([{name:"dish_r", expression:"90", note:"по ТЗ", information:true}]). Комментарий вычистка не читает, признак — читает. Что замерил — верни в переменную (фактический кегль, прирост каймы), иначе паспорт разойдётся с моделью и станет дезинформацией. Переосмысливать можно всё, кроме помеченного (ТЗ).
  • После связывания правка паспорта перестраивает деталь (проверено: set_variable(badge_T=4) → габарит по Z 3.00 → 4.00, объём 5154.5 → 5861.5 мм³). Это и есть параметрическая модель, а не комментарий к ней. До связывания — не перестраивает, и set_variable говорит об этом прямо: «⚠ НИЧЕГО НЕ ВЕДЁТ». Такой ответ — не успех: число поменялось, деталь нет. Исключение одно — переменная и не должна ничего вести (справка из ТЗ): пометь её information=true, и пометка уйдёт вместе с риском вычистки.
  • Сверка и уборка в конце: describe_model(sections=variables) помечает «⚠ ничего не ведёт» — это либо забытая связь, либо справка, которую забыли пометить, либо мусор; разбери все три. delete_variable(unused=true) не трогает справочные (information) и внешние (external) — остальное сносит без разбора. Значит порядок такой: link_parameter на всё, что должно вести геометрию, set_variable(information=true) на всё, что остаётся справкой, и только потом уборка.