Files
OnebotCatalog/onebot-data/catalog/csv/ULM.csv
wangruiguo fc5ee1dd36 v2.1: DESTACO 风格选型界面 + 参数组合补全(缺组合也能出零件号)
网页版选型改版 (仅网页版, 桌面版待同步)
- 新增零件号实时条: 边选边拼, 已确定片段实心高亮, 未定片段虚化, 进度条随选推进;
  浅色配色 (初版深色块与页面不协调, 已改); 选满且唯一命中时整块转青色实心
- 技术方案: 40 系列中仅 KC 有编码模板 → 改用「当前候选型号的最长公共前缀」,
  已验证 40/40 系列前缀单调增长(不回退)
- 参数选择由下拉菜单改为可视化选项块: 悬停抬升+青色投影, 选中青色填充+✓,
  不可选取值置灰(虚线+划线, 不消失, 让用户看到选项存在但当前组合不适用),
  再点一次取消; 有说明的显示代号+说明, 纯数值用紧凑文字块
- 参数联动仍复用 allowedOptions 规则引擎, 语义未变, 只改渲染

参数组合补全
- 原逻辑: 必须有真实数模才能生成型号 → 库里没有的组合选不出来也出不了号
- infer-sku-template.py 从已有型号反推编码模板, 得 23 个系列 100% 可复现
- verify-templates.py 作为门禁: 用模板重渲染每个已有型号必须逐字一致 ——
  该检查抓出 ULM/ULP 行程补零位数写错(2位写3位), 否则会生成 3000 个不存在的零件号
- gen-missing-combos.py 补全 8 个系列共 3157 个型号 (全库 54136 → 57293)
- 占位数模: 3157 个型号共用 1 个 PLACEHOLDER.step(4.5KB), 构建器按路径打包只存一份,
  数据包仅 2.10GB → 2.14GB (中途用硬链接方案踩坑: NTFS 上限 1024, 超出退化为拷贝白占 500MB)
- _pending_models.csv 输出待补数模清单, 供 AI 补完后替换 step_file

新增脚本: infer-sku-template / verify-templates / quantify-combo-gap /
          gen-missing-combos / gen-placeholder-step / check-combo-unique
新增文档: docs/更改说明-v2.1.md

发现未处理 (已记录在更改说明):
- 夹紧缸 9 系列一组参数对应多型号 (310 个型号, 编码含参数外尾缀, 旧码/新码混用)
- UAGP/LAGP 参数顺序与官方编码结构不符 (传感器应在转角之前)
- 17 个系列因模板不干净未补全 (宁可少补, 不生成可能不存在的零件号)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-15 02:14:55 +08:00

202 lines
8.3 KiB
CSV

model_code,size,stroke,rod,orient,sensor,step_file
ULM50015AEK0,50,15,A,E,K,ULM50015AEK0.step
ULM50015ANK0,50,15,A,N,K,ULM50015ANK0.step
ULM50015AOK0,50,15,A,O,K,ULM50015AOK0.step
ULM50015ASK0,50,15,A,S,K,ULM50015ASK0.step
ULM50015BXK0,50,15,B,X,K,ULM50015BXK0.step
ULM50015CXK0,50,15,C,X,K,ULM50015CXK0.step
ULM50015DEK0,50,15,D,E,K,ULM50015DEK0.step
ULM50015DNK0,50,15,D,N,K,ULM50015DNK0.step
ULM50015DOK0,50,15,D,O,K,ULM50015DOK0.step
ULM50015DSK0,50,15,D,S,K,ULM50015DSK0.step
ULM50015EXK0,50,15,E,X,K,ULM50015EXK0.step
ULM50015FXK0,50,15,F,X,K,ULM50015FXK0.step
ULM50015HXK0,50,15,H,X,K,ULM50015HXK0.step
ULM50015IXK0,50,15,I,X,K,ULM50015IXK0.step
ULM50025AEK0,50,25,A,E,K,ULM50025AEK0.step
ULM50025ANK0,50,25,A,N,K,ULM50025ANK0.step
ULM50025AOK0,50,25,A,O,K,ULM50025AOK0.step
ULM50025ASK0,50,25,A,S,K,ULM50025ASK0.step
ULM50025BXK0,50,25,B,X,K,ULM50025BXK0.step
ULM50025CXK0,50,25,C,X,K,ULM50025CXK0.step
ULM50025DEK0,50,25,D,E,K,ULM50025DEK0.step
ULM50025DNK0,50,25,D,N,K,ULM50025DNK0.step
ULM50025DOK0,50,25,D,O,K,ULM50025DOK0.step
ULM50025DSK0,50,25,D,S,K,ULM50025DSK0.step
ULM50025EXK0,50,25,E,X,K,ULM50025EXK0.step
ULM50025FXK0,50,25,F,X,K,ULM50025FXK0.step
ULM50025HXK0,50,25,H,X,K,ULM50025HXK0.step
ULM50025IXK0,50,25,I,X,K,ULM50025IXK0.step
ULM50040AEK0,50,40,A,E,K,ULM50040AEK0.step
ULM50040ANK0,50,40,A,N,K,ULM50040ANK0.step
ULM50040AOK0,50,40,A,O,K,ULM50040AOK0.step
ULM50040ASK0,50,40,A,S,K,ULM50040ASK0.step
ULM50040BXK0,50,40,B,X,K,ULM50040BXK0.step
ULM50040CXK0,50,40,C,X,K,ULM50040CXK0.step
ULM50040DEK0,50,40,D,E,K,ULM50040DEK0.step
ULM50040DNK0,50,40,D,N,K,ULM50040DNK0.step
ULM50040DOK0,50,40,D,O,K,ULM50040DOK0.step
ULM50040DSK0,50,40,D,S,K,ULM50040DSK0.step
ULM50040EXK0,50,40,E,X,K,ULM50040EXK0.step
ULM50040FXK0,50,40,F,X,K,ULM50040FXK0.step
ULM50040HXK0,50,40,H,X,K,ULM50040HXK0.step
ULM50040IXK0,50,40,I,X,K,ULM50040IXK0.step
ULM50050AEK0,50,50,A,E,K,ULM50050AEK0.step
ULM50050ANK0,50,50,A,N,K,ULM50050ANK0.step
ULM50050AOK0,50,50,A,O,K,ULM50050AOK0.step
ULM50050ASK0,50,50,A,S,K,ULM50050ASK0.step
ULM50050BXK0,50,50,B,X,K,ULM50050BXK0.step
ULM50050CXK0,50,50,C,X,K,ULM50050CXK0.step
ULM50050DEK0,50,50,D,E,K,ULM50050DEK0.step
ULM50050DNK0,50,50,D,N,K,ULM50050DNK0.step
ULM50050DOK0,50,50,D,O,K,ULM50050DOK0.step
ULM50050DSK0,50,50,D,S,K,ULM50050DSK0.step
ULM50050EXK0,50,50,E,X,K,ULM50050EXK0.step
ULM50050FXK0,50,50,F,X,K,ULM50050FXK0.step
ULM50050HXK0,50,50,H,X,K,ULM50050HXK0.step
ULM50050IXK0,50,50,I,X,K,ULM50050IXK0.step
ULM50060AEK0,50,60,A,E,K,ULM50060AEK0.step
ULM50060ANK0,50,60,A,N,K,ULM50060ANK0.step
ULM50060AOK0,50,60,A,O,K,ULM50060AOK0.step
ULM50060ASK0,50,60,A,S,K,ULM50060ASK0.step
ULM50060BXK0,50,60,B,X,K,ULM50060BXK0.step
ULM50060CXK0,50,60,C,X,K,ULM50060CXK0.step
ULM50060DEK0,50,60,D,E,K,ULM50060DEK0.step
ULM50060DNK0,50,60,D,N,K,ULM50060DNK0.step
ULM50060DOK0,50,60,D,O,K,ULM50060DOK0.step
ULM50060DSK0,50,60,D,S,K,ULM50060DSK0.step
ULM50060EXK0,50,60,E,X,K,ULM50060EXK0.step
ULM50060FXK0,50,60,F,X,K,ULM50060FXK0.step
ULM50060HXK0,50,60,H,X,K,ULM50060HXK0.step
ULM50060IXK0,50,60,I,X,K,ULM50060IXK0.step
ULM50015AXK0,50,15,A,X,K,PLACEHOLDER.step
ULM50015BEK0,50,15,B,E,K,PLACEHOLDER.step
ULM50015BNK0,50,15,B,N,K,PLACEHOLDER.step
ULM50015BOK0,50,15,B,O,K,PLACEHOLDER.step
ULM50015BSK0,50,15,B,S,K,PLACEHOLDER.step
ULM50015CEK0,50,15,C,E,K,PLACEHOLDER.step
ULM50015CNK0,50,15,C,N,K,PLACEHOLDER.step
ULM50015COK0,50,15,C,O,K,PLACEHOLDER.step
ULM50015CSK0,50,15,C,S,K,PLACEHOLDER.step
ULM50015DXK0,50,15,D,X,K,PLACEHOLDER.step
ULM50015EEK0,50,15,E,E,K,PLACEHOLDER.step
ULM50015ENK0,50,15,E,N,K,PLACEHOLDER.step
ULM50015EOK0,50,15,E,O,K,PLACEHOLDER.step
ULM50015ESK0,50,15,E,S,K,PLACEHOLDER.step
ULM50015FEK0,50,15,F,E,K,PLACEHOLDER.step
ULM50015FNK0,50,15,F,N,K,PLACEHOLDER.step
ULM50015FOK0,50,15,F,O,K,PLACEHOLDER.step
ULM50015FSK0,50,15,F,S,K,PLACEHOLDER.step
ULM50015HEK0,50,15,H,E,K,PLACEHOLDER.step
ULM50015HNK0,50,15,H,N,K,PLACEHOLDER.step
ULM50015HOK0,50,15,H,O,K,PLACEHOLDER.step
ULM50015HSK0,50,15,H,S,K,PLACEHOLDER.step
ULM50015IEK0,50,15,I,E,K,PLACEHOLDER.step
ULM50015INK0,50,15,I,N,K,PLACEHOLDER.step
ULM50015IOK0,50,15,I,O,K,PLACEHOLDER.step
ULM50015ISK0,50,15,I,S,K,PLACEHOLDER.step
ULM50025AXK0,50,25,A,X,K,PLACEHOLDER.step
ULM50025BEK0,50,25,B,E,K,PLACEHOLDER.step
ULM50025BNK0,50,25,B,N,K,PLACEHOLDER.step
ULM50025BOK0,50,25,B,O,K,PLACEHOLDER.step
ULM50025BSK0,50,25,B,S,K,PLACEHOLDER.step
ULM50025CEK0,50,25,C,E,K,PLACEHOLDER.step
ULM50025CNK0,50,25,C,N,K,PLACEHOLDER.step
ULM50025COK0,50,25,C,O,K,PLACEHOLDER.step
ULM50025CSK0,50,25,C,S,K,PLACEHOLDER.step
ULM50025DXK0,50,25,D,X,K,PLACEHOLDER.step
ULM50025EEK0,50,25,E,E,K,PLACEHOLDER.step
ULM50025ENK0,50,25,E,N,K,PLACEHOLDER.step
ULM50025EOK0,50,25,E,O,K,PLACEHOLDER.step
ULM50025ESK0,50,25,E,S,K,PLACEHOLDER.step
ULM50025FEK0,50,25,F,E,K,PLACEHOLDER.step
ULM50025FNK0,50,25,F,N,K,PLACEHOLDER.step
ULM50025FOK0,50,25,F,O,K,PLACEHOLDER.step
ULM50025FSK0,50,25,F,S,K,PLACEHOLDER.step
ULM50025HEK0,50,25,H,E,K,PLACEHOLDER.step
ULM50025HNK0,50,25,H,N,K,PLACEHOLDER.step
ULM50025HOK0,50,25,H,O,K,PLACEHOLDER.step
ULM50025HSK0,50,25,H,S,K,PLACEHOLDER.step
ULM50025IEK0,50,25,I,E,K,PLACEHOLDER.step
ULM50025INK0,50,25,I,N,K,PLACEHOLDER.step
ULM50025IOK0,50,25,I,O,K,PLACEHOLDER.step
ULM50025ISK0,50,25,I,S,K,PLACEHOLDER.step
ULM50040AXK0,50,40,A,X,K,PLACEHOLDER.step
ULM50040BEK0,50,40,B,E,K,PLACEHOLDER.step
ULM50040BNK0,50,40,B,N,K,PLACEHOLDER.step
ULM50040BOK0,50,40,B,O,K,PLACEHOLDER.step
ULM50040BSK0,50,40,B,S,K,PLACEHOLDER.step
ULM50040CEK0,50,40,C,E,K,PLACEHOLDER.step
ULM50040CNK0,50,40,C,N,K,PLACEHOLDER.step
ULM50040COK0,50,40,C,O,K,PLACEHOLDER.step
ULM50040CSK0,50,40,C,S,K,PLACEHOLDER.step
ULM50040DXK0,50,40,D,X,K,PLACEHOLDER.step
ULM50040EEK0,50,40,E,E,K,PLACEHOLDER.step
ULM50040ENK0,50,40,E,N,K,PLACEHOLDER.step
ULM50040EOK0,50,40,E,O,K,PLACEHOLDER.step
ULM50040ESK0,50,40,E,S,K,PLACEHOLDER.step
ULM50040FEK0,50,40,F,E,K,PLACEHOLDER.step
ULM50040FNK0,50,40,F,N,K,PLACEHOLDER.step
ULM50040FOK0,50,40,F,O,K,PLACEHOLDER.step
ULM50040FSK0,50,40,F,S,K,PLACEHOLDER.step
ULM50040HEK0,50,40,H,E,K,PLACEHOLDER.step
ULM50040HNK0,50,40,H,N,K,PLACEHOLDER.step
ULM50040HOK0,50,40,H,O,K,PLACEHOLDER.step
ULM50040HSK0,50,40,H,S,K,PLACEHOLDER.step
ULM50040IEK0,50,40,I,E,K,PLACEHOLDER.step
ULM50040INK0,50,40,I,N,K,PLACEHOLDER.step
ULM50040IOK0,50,40,I,O,K,PLACEHOLDER.step
ULM50040ISK0,50,40,I,S,K,PLACEHOLDER.step
ULM50050AXK0,50,50,A,X,K,PLACEHOLDER.step
ULM50050BEK0,50,50,B,E,K,PLACEHOLDER.step
ULM50050BNK0,50,50,B,N,K,PLACEHOLDER.step
ULM50050BOK0,50,50,B,O,K,PLACEHOLDER.step
ULM50050BSK0,50,50,B,S,K,PLACEHOLDER.step
ULM50050CEK0,50,50,C,E,K,PLACEHOLDER.step
ULM50050CNK0,50,50,C,N,K,PLACEHOLDER.step
ULM50050COK0,50,50,C,O,K,PLACEHOLDER.step
ULM50050CSK0,50,50,C,S,K,PLACEHOLDER.step
ULM50050DXK0,50,50,D,X,K,PLACEHOLDER.step
ULM50050EEK0,50,50,E,E,K,PLACEHOLDER.step
ULM50050ENK0,50,50,E,N,K,PLACEHOLDER.step
ULM50050EOK0,50,50,E,O,K,PLACEHOLDER.step
ULM50050ESK0,50,50,E,S,K,PLACEHOLDER.step
ULM50050FEK0,50,50,F,E,K,PLACEHOLDER.step
ULM50050FNK0,50,50,F,N,K,PLACEHOLDER.step
ULM50050FOK0,50,50,F,O,K,PLACEHOLDER.step
ULM50050FSK0,50,50,F,S,K,PLACEHOLDER.step
ULM50050HEK0,50,50,H,E,K,PLACEHOLDER.step
ULM50050HNK0,50,50,H,N,K,PLACEHOLDER.step
ULM50050HOK0,50,50,H,O,K,PLACEHOLDER.step
ULM50050HSK0,50,50,H,S,K,PLACEHOLDER.step
ULM50050IEK0,50,50,I,E,K,PLACEHOLDER.step
ULM50050INK0,50,50,I,N,K,PLACEHOLDER.step
ULM50050IOK0,50,50,I,O,K,PLACEHOLDER.step
ULM50050ISK0,50,50,I,S,K,PLACEHOLDER.step
ULM50060AXK0,50,60,A,X,K,PLACEHOLDER.step
ULM50060BEK0,50,60,B,E,K,PLACEHOLDER.step
ULM50060BNK0,50,60,B,N,K,PLACEHOLDER.step
ULM50060BOK0,50,60,B,O,K,PLACEHOLDER.step
ULM50060BSK0,50,60,B,S,K,PLACEHOLDER.step
ULM50060CEK0,50,60,C,E,K,PLACEHOLDER.step
ULM50060CNK0,50,60,C,N,K,PLACEHOLDER.step
ULM50060COK0,50,60,C,O,K,PLACEHOLDER.step
ULM50060CSK0,50,60,C,S,K,PLACEHOLDER.step
ULM50060DXK0,50,60,D,X,K,PLACEHOLDER.step
ULM50060EEK0,50,60,E,E,K,PLACEHOLDER.step
ULM50060ENK0,50,60,E,N,K,PLACEHOLDER.step
ULM50060EOK0,50,60,E,O,K,PLACEHOLDER.step
ULM50060ESK0,50,60,E,S,K,PLACEHOLDER.step
ULM50060FEK0,50,60,F,E,K,PLACEHOLDER.step
ULM50060FNK0,50,60,F,N,K,PLACEHOLDER.step
ULM50060FOK0,50,60,F,O,K,PLACEHOLDER.step
ULM50060FSK0,50,60,F,S,K,PLACEHOLDER.step
ULM50060HEK0,50,60,H,E,K,PLACEHOLDER.step
ULM50060HNK0,50,60,H,N,K,PLACEHOLDER.step
ULM50060HOK0,50,60,H,O,K,PLACEHOLDER.step
ULM50060HSK0,50,60,H,S,K,PLACEHOLDER.step
ULM50060IEK0,50,60,I,E,K,PLACEHOLDER.step
ULM50060INK0,50,60,I,N,K,PLACEHOLDER.step
ULM50060IOK0,50,60,I,O,K,PLACEHOLDER.step
ULM50060ISK0,50,60,I,S,K,PLACEHOLDER.step