v1.0: 夹紧缸模块真实数据替换 + 仓库瘦身

数据 (CLM 气动夹紧缸分类):
- 1 系列 demo -> 11 个官方系列, 6 型号 -> 859 个真实型号
- 参数化升级: 仅缸径 -> 最多 5 维 (缸径/臂位置/臂类型/臂样式/传感器)
- 11 系列各含官方图册附图 (84 张) + datasheet PDF
- 修复: 枚举维度空串必须为合法值 (否则级联过滤后下拉全空)
- 修复: catalog.json 分类 series 数组未更新导致新系列不进包
- 修复: _step 副本后缀归一化错误 (产生假型号)

工具:
- gen-clamp-series.py     数据清洗 (X盘数模 -> CSV/meta/STEP)
- copy-clamp-step.py      8线程并行复制 (网络盘 I/O 优化)
- gen-clamp-manual.py     官方图册 PDF -> 附图
- update-clamp-meta-attach.py / fix-clamp-meta-empty-enum.py

仓库瘦身:
- .gitignore 排除数模(5GB)/.opc(1.2GB)/编译产物/发布产物
- 移出索引: release/ bin产物 STEP数模 .opc 大型PDF 等
- 提交体积 17MB (原 15.97GB)

其他: SelfTest.cs 可解析选型逻辑放宽 (稀疏数据用真实变体回验)

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
wangruiguo
2026-09-14 15:24:16 +08:00
parent acbf6f2db0
commit 0584ba67b4
4301 changed files with 3366 additions and 1474787 deletions

View File

@@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
"""按 manual/<系列>/ 下实际存在的 p*.png 更新 meta.json 的附件引用。"""
import json, os, glob, re
CAT = r'D:/开发/OnebotCatalog/onebot-data/catalog'
SERIES = ['UCBP','UCBM','UCBT','UCBQ','UCBH','UCDP','UCIM','UCIP','UCNM','UCNP','UFL']
for s in SERIES:
d = os.path.join(CAT, 'manual', s)
if not os.path.isdir(d):
print(f'[{s}] 无 manual 目录,跳过'); continue
pngs = sorted(glob.glob(os.path.join(d, 'p*.png')))
if not pngs:
print(f'[{s}] 无 png,跳过'); continue
atts = []
for p in pngs:
atts.append({"kind": "manual", "lang": "", "source": f"manual/{s}/{os.path.basename(p)}", "model": None})
pdf = os.path.join(d, f'{s}_manual.pdf')
if os.path.exists(pdf):
atts.append({"kind": "datasheet", "lang": "", "source": f"manual/{s}/{s}_manual.pdf", "model": None})
mp = os.path.join(CAT, 'series', s + '.meta.json')
with open(mp, encoding='utf-8') as f:
meta = json.load(f)
meta['attachments'] = atts
with open(mp, 'w', encoding='utf-8') as f:
json.dump(meta, f, ensure_ascii=False, indent=1)
print(f'[{s}] 附件 {len(atts)} 个 ({len(pngs)}图 + {"1PDF" if os.path.exists(pdf) else "无PDF"})')