OpenClaw Coder 6f7697efd6
CI / test (3.10) (push) Canceled after 0s
CI / test (3.11) (push) Canceled after 0s
CI / test (3.12) (push) Canceled after 0s
CI / build-check (push) Canceled after 0s
feat(vedomost): автозаполнение графов ведомости по ГОСТ 2.119
- ОКПД2 автоматически по типу изделия (Болт/Гайка/Шайба/Шпилька/Саморез/Винт)
- поле product_type для ведомости ВЗ (элементы)
- render_markdown_full: таблица со всеми графами ГОСТ 2.119 (ОКПД2, масса)
- CLI: опция --full для полной спецификации
- CLI: unicode-safe source (no em-dash in code) - парсится на Python 3.10
- тесты: +3 (ОКПД2 автозаполнение, product_type, full render) -> 10 всего
2026-11-11 11:37:46 +10:00

fastengen

Генератор параметрического крепёжа со сравнительной базой и STEP-библиотекой.

Self-contained Python-решение — ** без КОМПАСА и других CAD-систем**: каталог изделий и генерация 3D-моделей в STEP через CadQuery.

Что делает

Создаёт:

  • Каталог (catalog.json) с параметрами изделий — обозначение, стандарт, материал, атрибуты, имя STEP-модели.
  • STEP-модели (out/*.step) — параметрическая геометрия болтов, гаек, шайб.

Установить

pip install cadquery      # тяжёлый пакет (OCP/OCCT), ставится ~1-2 мин
pip install -e .

Применение

Сгенерировать одну деталь

fastengen bolt-gen M10 40 --dir out
fastengen nut-gen M12 --dir out
fastengen washer-gen M8 --dir out

Сгенерировать всё семейство

fastengen gen-all --dir out --catalog catalog.json

Получается ~48 изделий:

  • Болты ГОСТ 7805-70 — M6, M8, M10, M12, M16, M20, M24 × 20..120 мм (34 шт).
  • Гайки ГОСТ 5915-70 — M6..M24 (7 шт).
  • Шайбы ГОСТ 11371-78 — M6..M24 (7 шт).

Просмотр каталога

fastengen list --catalog catalog.json
fastengen show bolt_M10_40 --catalog catalog.json

Каталог (JSON-схема)

{
  "id": "bolt_M10_40",
  "designation": "Болт M10x40 ГОСТ 7805-70",
  "type": "bolt",
  "category": "Крепёж",
  "standard": "ГОСТ 7805-70",
  "material": "Сталь 8.8",
  "model_file": "bolt_M10_40.step",
  "attributes": {
    "диаметр": "10",
    "длина": 40,
    "шаг_резьбы": 1.5,
    "размер_под_ключ": 16.0,
    "высота_головки": 6.4
  }
}

API

from fastengen import PortableCatalog, get_bolt

cat = PortableCatalog("catalog.json", models_dir="out")
rec = cat.add_bolt(get_bolt("M12", 45))
print(rec.designation, rec.model_file)
cat.save()

Структура

fastengen/
├── pyproject.toml
├── fastengen/
│   ├── standard.py    # ГОСТ/ISO размеры, спецификации
│   ├── model.py       # генерация 3D → STEP
│   ├── catalog.py     # каталог (JSON)
│   └── cli.py         # CLI
├── tests/
├── out/               # STEP-модели
└── catalog.json

Тесты

python -m pytest
S
Description
Генератор параметрического крепёжа с STEP-библиотекой (ГОСТ)
Readme
393 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 100%