kompas 0.3.0 (из fcedb44f5661313ffd0570e3808a5309f6ae8cb7)
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# Чертёж: оформить деталь по ГОСТ
|
||||
|
||||
Дополнение к SKILL.md — методика оформления 2D-чертежа. Чертёж строится не так, как деталь:
|
||||
**авто-валидации здесь нет**. Правило трёх проверок из SKILL.md §«Два правила прежде всего» в 2D не
|
||||
работает — операция не отчитывается «построилось верно», потому что верность тут не про геометрию,
|
||||
а про место на листе. Проверять приходится самому, и способ ровно один: посмотреть.
|
||||
|
||||
**Порядок, который окупается:**
|
||||
|
||||
1. **Деталь строится в чертёжной ориентации.** Набор видов задаётся ОТ модели: `mainOrientation`
|
||||
выбирает, какую ориентацию модели показывает главный вид, но саму ориентацию модели он не
|
||||
вращает. Если самая информативная проекция детали — не одна из шести стандартных, чертежа по
|
||||
ГОСТ не выйдет; планируешь чертёж — строй эскизы так, чтобы главный вид попадал на плоскость
|
||||
с наибольшей информацией.
|
||||
2. **`drawing_set_sheet_format`** (формат до видов — иначе виды придётся двигать), при
|
||||
необходимости `drawing_add_sheet` для второго листа.
|
||||
3. **`drawing_create_standard_views(views=[…], mainOrientation=…, hiddenLines=…)`** — бери ровно те
|
||||
проекции, которые нужны: лишний вид — лишнее место и лишний повод ошибиться видом. **Главный вид
|
||||
входит в набор сам**: перечисленные коды — это проекции ОТНОСИТЕЛЬНО него, поэтому `views=["top"]`
|
||||
даёт ДВА вида (главный и сверху). Ответ возвращает НОМЕРА видов, и дальше всё адресуется ими.
|
||||
4. **Координаты — замером, а не формулой.** `drawing_get_view_info(viewNumber)` отдаёт паспорт вида
|
||||
одним вызовом: положение на листе, масштаб, габарит и — главное — локальную СК: куда попадает
|
||||
начало координат модели и куда смотрят её оси +X/+Y/+Z в координатах вида (нулевой орт = ось
|
||||
проекции, вдоль неё вид смотрит). Этого хватает, чтобы пересчитывать точки модели в вид
|
||||
арифметикой; отдельные точки переводит `drawing_project_point(x, y, z, viewNumber)`.
|
||||
Выводить оси из головы не надо и вредно: у КОМПАС «спереди» показывает плоскость XY детали, а
|
||||
«сверху» — X и **минус Z**, и **знаки инверсии зависят от `mainOrientation`** — формула,
|
||||
выведенная на одном чертеже, на соседнем врёт.
|
||||
5. **Разрез — до размеров, а не после.** Внутреннюю геометрию (зенковка, ступенчатое отверстие,
|
||||
паз, глубокая расточка, полость) показывай разрезом, а не невидимыми линиями: по штриховой линии
|
||||
нельзя ни поставить нормальный размер, ни разобрать форму. `drawing_add_section_view` — см.
|
||||
§«Разрез» ниже. Размеры внутренней геометрии ставятся УЖЕ НА РАЗРЕЗЕ, поэтому строить его надо
|
||||
раньше простановки, иначе размеры придётся переносить.
|
||||
6. **Размеры**, `drawing_add_axis` (осевые и центровые), шероховатость, выноски, техтребования,
|
||||
штамп. **Осевые сначала посмотри, потом добивай**: ассоциативные виды приходят со СВОИМИ
|
||||
центровыми и осевыми, которые КОМПАС ставит сам, и `drawing_add_axis` вслепую даёт дубли поверх
|
||||
существующих. Сначала `list_drawing_objects(kind="axis"|"centreMarker", viewNumber=…)`.
|
||||
7. **`drawing_export_image`** — посмотреть глазами. Пока картинки не было, чертёж не сдан.
|
||||
|
||||
## Разрез
|
||||
|
||||
`drawing_add_section_view` делает всё сразу: проводит линию разреза на базовом виде и строит по ней
|
||||
производный вид со штриховкой. Механика, ступенчатый разрез и встроенная проверка честности —
|
||||
`help(topic="drawing-sections")`; здесь только решения, которые принимаешь ты:
|
||||
|
||||
- **Разрез или `hiddenLines`.** Разрез — когда внутреннее нужно ИЗМЕРИТЬ или показать форму:
|
||||
зенковка и цековка, ступенчатое или резьбовое отверстие, паз, канавка, глубокая расточка, тонкая
|
||||
стенка полой детали. Невидимые линии — только намёк на то, что уже показано где-то ещё; размер к
|
||||
штриховой линии не привязывают.
|
||||
- **Веди линию с запасом за габарит** (плита 60 мм → от −40 до +40): линия по самому краю режет не
|
||||
всю деталь. Координаты — в ЛСК БАЗОВОГО вида, её даёт `drawing_get_view_info`.
|
||||
- **Строй разрез, когда модель готова**: после правки детали перестраивается только ПЕРВЫЙ разрез
|
||||
базового вида. Модель всё же изменилась — снеси разрезы и построй заново.
|
||||
- Сам разрез дальше — обычный вид: размеры и обозначения ставятся на него по его номеру.
|
||||
|
||||
**Промах простановки лечится, а не остаётся навсегда.** Отката (undo) у чертежа нет, но
|
||||
`list_drawing_objects` показывает обозначения с индексами, `drawing_delete_object` убирает одно, а
|
||||
`drawing_move_object` его СДВИГАЕТ — слипшиеся тексты соседних размеров лечат именно сдвигом, а не
|
||||
заменой размера на выноску. Так же правится и компоновка: `drawing_move_view` переставляет вид со
|
||||
всеми обозначениями, `drawing_add_view` доносит недостающую проекцию, `drawing_delete_view` убирает
|
||||
лишнюю. Пересоздавать документ ради компоновки не нужно. Подробности адресации и порядок удаления —
|
||||
`help(topic="drawing-fixing")`.
|
||||
|
||||
**Три вещи, на которых чертёж молча выходит неверным** — держи их в голове, детали в справочнике:
|
||||
|
||||
- `viewNumber=0` — это НЕ главный вид, а координаты ЛИСТА; знак, поставленный «на главном виде» с
|
||||
нулём, уезжает за границы формата (`help(topic="drawing-views")`);
|
||||
- ассоциативны только диаметральный и радиальный размеры; линейный и угловой меряют координаты, и
|
||||
«60» останется, когда деталь станет 70 — после правки модели перепроверяй их сам
|
||||
(`help(topic="drawing-dimensions")`);
|
||||
- допуск, не легший в размер, виден только по пустому read-back в ответе — техтребования его не
|
||||
заменят (`help(topic="drawing-dimension-text")`).
|
||||
|
||||
Ещё две ловушки, о которых узнаёшь только столкнувшись: штамп частично ведёт МОДЕЛЬ, а не чертёж
|
||||
(`help(topic="drawing-title-block")`), и у цилиндрической грани нет «координат оси» — её
|
||||
восстанавливают и проверяют сходимостью площадей (`help(topic="cylinder-axis")`).
|
||||
|
||||
**Чего нет.** Выносного элемента (увеличенный фрагмент), МЕСТНОГО разреза внутри вида, местного
|
||||
вида и вида с разрывом. Ассоциативного ЛИНЕЙНОГО размера нет и не будет: в API у него нет привязки к геометрии
|
||||
ни под каким именем (проверено QI, поздним связыванием и размером с обрывом). Экспорта в PDF/DXF
|
||||
тоже нет — наружу уходит растр (`drawing_export_image`) и STEP.
|
||||
Reference in New Issue
Block a user