37 lines
4.5 KiB
Markdown
37 lines
4.5 KiB
Markdown
# Исполнения: одна модель — несколько геометрий
|
||
|
||
Дополнение к SKILL.md. Типоразмеры (профиль на 100, 200, 500 мм), правое и левое зеркало, версии с
|
||
отверстием и без часто живут **в одном файле** исполнениями. Тогда всё, что ты меришь и
|
||
экспортируешь, относится к **текущему** исполнению — не к «детали вообще».
|
||
|
||
- **Признак замечаешь не ты, а ответ.** У модели с несколькими исполнениями `describe_model` сам
|
||
пишет, сколько их и какое сейчас текущее. Увидел эту строку — прежде чем считать массу или резать
|
||
чертёж, посмотри `describe_model(sections=embodiments)`: там габарит и масса **каждого**, и это
|
||
чтение ничего не переключает.
|
||
- **Переключение равно смене документа.** `embodiment(action="set", target="L200")` обнуляет
|
||
сессию построения: хендлы `sk_…`/`op_…` после него мертвы. Сохраняй документ до переключения.
|
||
- **Индекс живёт до первой правки дерева**: после `delete` индексы смещаются. Адресуй обозначением
|
||
(«L500»), а индексом — только сразу после того, как увидел список. У **варианта** обозначение
|
||
родительское, и адресовать его номером нельзя вовсе — под «-01» подходят двое; зови его по имени
|
||
(«M5-01») или индексом.
|
||
- **Исполнения делай ПОСЛЕДНИМ шагом.** Переключение убивает хендлы, и дальнейшая правка дерева
|
||
идёт уже через `feature_delete(featureIndex=…)` по `describe_model(sections=tree)` — путь рабочий,
|
||
но менее удобный. Сначала доведи базовую геометрию и параметризацию, потом размножай.
|
||
- **Строишь новое исполнение** — `embodiment(action="add", number="02")`; оно сразу становится
|
||
текущим, строй в нём немедленно. `depended=false` нужен, когда правки НЕ должны наследоваться от
|
||
родителя, — иначе изменение уедет и в него.
|
||
- **В сборку исполнение выбирается явно**: `assembly_add_component(embodiment="L500")`. Без
|
||
параметра встанет **базовое** исполнение, а не то, что сохранено в файле текущим. Обозначение
|
||
нужно ПОЛНОЕ («ПРОБА.001-01», а не «-01»); сервер откажет, если КОМПАС подсунет базовое.
|
||
- **«Удлинить эти профили с 500 до 600» — это смена исполнения экземпляра, а не новая вставка**:
|
||
`embodiment(action="set", target="L600", component=N)` и затем `rebuild`. Сопряжения при этом
|
||
**сохраняются** — пересоздание вставки, наоборот, порвало бы их все. Какие исполнения есть у
|
||
конкретного экземпляра, показывает `describe_model(sections="embodiments", component=N)`.
|
||
- **Выгнать всю линейку на печать** — `export_model(embodiment="all")`: каждое исполнение в свой
|
||
файл с суффиксом обозначения.
|
||
- **После смены исполнения в собранном узле проверь сопряжения** (`sections="mates"`): если у нового
|
||
исполнения нет объекта, на который опиралась связь, она рвётся — «ССЫЛКА ПОТЕРЯНА», `valid: false`,
|
||
компонент недоопределён. Что было потеряно, хранит имя сопряжения; `assembly_delete` сотрёт и его.
|
||
|
||
Подробности и границы — `help(topic="embodiments")`.
|