7.3 KiB
Работа с импортом / сборками
Дополнение к SKILL.md — конвейер разбора ЧУЖОЙ модели/сборки: «импорт → разбор → извлечение детали →
осмотр → модификация → экспорт». Сборка С НУЛЯ — reference/assembly-playbook.md.
-
import_model—typeзадаёт документ:assembly(по умолчанию) илиpart. Формат берётся из расширения;.prtи.asmносят несколько САПР сразу — там задавайformatявно. Нужна отдельная деталь файлом — включайcreateComponentFiles(по умолчаниюfalse). Выключенный переключатель чистого диска НЕ гарантирует: конвертер пишет файлы рядом с ИСХОДНИКОМ и помимо него — замерено, четыре импорта положили четыре незапрошенных.m3d. Что реально изменилось в каталоге исходника, ответ перечисляет поимённо; не хочешь засорять чужой каталог — копируй файл во временный (help(topic="model-exchange")). STL/OBJ приходят СЕТКОЙ: «тел 0, объём 0.0 мм³» после такого импорта — норма, а не провал, проверяй габаритом; ответ говорит это вслух и называет число треугольников из самого файла. Плоский чертёж (.dxf/.dwg) читает не он, аimport_drawing. -
Разбор:
describe_model(sections=components)(у каждого компонента — origin, поворот, фиксация) иdescribe_model(sections=mates), если сборка пришла со связями; грани компонента —list_faces(component=N). Извлечённую деталь открывай самостоятельным документом. Гашение видимости компонента на снимок не влияет — изоляция так не делается. -
Осмотр — структурно (
describe_model: какая ось «высота», МЦХ, топология). Снимокmodel_snapshot(view=…)— ракурс выбирай по плоскости детали (плоскую смотри сверху или спереди, не в изометрии); один и тот жеviewдаёт воспроизводимый кадр «до/после». Пары ракурсов противоположны по оси:frontсмотрит из +Z,rear— из −Z, так жеtop/bottomиleft/right. Следствие, которое нужно чаще всего: деталь, лежащая на столе гранью Z=0 (эскиз на XOY, выдавливание вперёд), видна столу какrear, аfrontпокажет зеркальную картинку. Читаемость надписи или логотипа доказывают снимком с нужной стороны, а не рассуждением. Но «ортогонально» — правило про ПЛОСКУЮ деталь. Как только форма выходит из одной плоскости (кронштейн, косынка, изогнутый профиль), ортогональный кадр перестаёт читаться: он плоский, подписей осей на нём нет, и сопоставить увиденное с координатами не выходит —rightдаёт картинку, по которой не сказать, где перёд. Профиль такой детали смотриview="iso": там видно, что куда загнуто. -
Модификация «тупой» B-rep (итог — в ответе каждой операции). Инструмент выбирается по тому, ЧТО задано в требовании, а не по тому, что привычнее:
Требование звучит как Инструмент Почему не move_face«сдвинуть грань на N мм» move_faceэто он и есть «диаметр отверстия (бобышки) должен стать D» resize_faceзадаётся ДИАМЕТР, ось не двигается; move_faceсдвинул бы стенку на (D−d)/2, и это пришлось бы считать самому«грань должна встать НА объект: на плоскость, на грань соседнего тела» replace_faceрасстояние считает КОМПАС; move_faceтребует вычислить его заранеевставка N мм в призматическую ножку split_solid_by_plane→move_body→move_face(мост) →boolean_unionцепочка проверена end-to-end: проставка 39.45 → 41.45 мм resize_faceиreplace_faceтребуют КОМПАС v25; на версиях старше они отвечают отказом с номером установленной версии, и тогда остаётсяmove_faceс арифметикой.Проверяйте прямое редактирование РАЗНОСТЬЮ ОБЪЁМОВ против аналитической формулы — объём и так печатается в сводке каждой операции, лишних вызовов не нужно. Расточка отверстия обязана снять ровно
π(R²−r²)·h, наращивание грани — добавить ровноплощадь_грани × Δh. Считайте формулу по СВОИМ числам и сверяйте с тем, что напечатала операция: одно число ловит и «операция ушла не туда», и «отверстие перестало быть сквозным».Оси отверстий сверяют полем
axis. У грани типаcylinder,cone,toruslist_facesотдаётaxis— точку на оси и направление, в мировых координатах; у цилиндра и сферы там жеradius. Требование «оси сдвигать нельзя» доказывается сравнениемaxisдо и после, а не арифметикой по расстояниям. Осторожно с двумя соседними полями:normalу цилиндра — про сторону поверхности, а не про ось, аpointOnFaceлежит на стенке (help(topic="cylinder-axis")). -
Перед выдачей: последняя операция «Построение чистое» →
export_model(STEP для обмена, STL для печати).