boltgen

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

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

Что делает

Создаёт:

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

Установить

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

Применение

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

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

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

boltgen 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 шт).

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

boltgen list --catalog catalog.json
boltgen 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 boltgen 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()

Структура

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

Тесты

python -m pytest
S
Description
No description provided
Readme
82 KiB
0 Stars 1 Watchers 0 Forks
Languages
C# 58.6%
Python 41.4%