95cfecd9652fe178dea4c97a67425f16a3a6e6be
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
Languages
Python
100%