kompas 0.3.0 (из fcedb44f5661313ffd0570e3808a5309f6ae8cb7)
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# Параметризация: сначала переменные, потом геометрия
|
||||
|
||||
Дополнение к 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)` на всё, что остаётся справкой, и только потом уборка.
|
||||
Reference in New Issue
Block a user