4.5 KiB
4.5 KiB
Исполнения: одна модель — несколько геометрий
Дополнение к 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").