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

8.3 KiB

1model_codesizestrokerodorientsensorstep_file
2ULM50015AEK05015AEKULM50015AEK0.step
3ULM50015ANK05015ANKULM50015ANK0.step
4ULM50015AOK05015AOKULM50015AOK0.step
5ULM50015ASK05015ASKULM50015ASK0.step
6ULM50015BXK05015BXKULM50015BXK0.step
7ULM50015CXK05015CXKULM50015CXK0.step
8ULM50015DEK05015DEKULM50015DEK0.step
9ULM50015DNK05015DNKULM50015DNK0.step
10ULM50015DOK05015DOKULM50015DOK0.step
11ULM50015DSK05015DSKULM50015DSK0.step
12ULM50015EXK05015EXKULM50015EXK0.step
13ULM50015FXK05015FXKULM50015FXK0.step
14ULM50015HXK05015HXKULM50015HXK0.step
15ULM50015IXK05015IXKULM50015IXK0.step
16ULM50025AEK05025AEKULM50025AEK0.step
17ULM50025ANK05025ANKULM50025ANK0.step
18ULM50025AOK05025AOKULM50025AOK0.step
19ULM50025ASK05025ASKULM50025ASK0.step
20ULM50025BXK05025BXKULM50025BXK0.step
21ULM50025CXK05025CXKULM50025CXK0.step
22ULM50025DEK05025DEKULM50025DEK0.step
23ULM50025DNK05025DNKULM50025DNK0.step
24ULM50025DOK05025DOKULM50025DOK0.step
25ULM50025DSK05025DSKULM50025DSK0.step
26ULM50025EXK05025EXKULM50025EXK0.step
27ULM50025FXK05025FXKULM50025FXK0.step
28ULM50025HXK05025HXKULM50025HXK0.step
29ULM50025IXK05025IXKULM50025IXK0.step
30ULM50040AEK05040AEKULM50040AEK0.step
31ULM50040ANK05040ANKULM50040ANK0.step
32ULM50040AOK05040AOKULM50040AOK0.step
33ULM50040ASK05040ASKULM50040ASK0.step
34ULM50040BXK05040BXKULM50040BXK0.step
35ULM50040CXK05040CXKULM50040CXK0.step
36ULM50040DEK05040DEKULM50040DEK0.step
37ULM50040DNK05040DNKULM50040DNK0.step
38ULM50040DOK05040DOKULM50040DOK0.step
39ULM50040DSK05040DSKULM50040DSK0.step
40ULM50040EXK05040EXKULM50040EXK0.step
41ULM50040FXK05040FXKULM50040FXK0.step
42ULM50040HXK05040HXKULM50040HXK0.step
43ULM50040IXK05040IXKULM50040IXK0.step
44ULM50050AEK05050AEKULM50050AEK0.step
45ULM50050ANK05050ANKULM50050ANK0.step
46ULM50050AOK05050AOKULM50050AOK0.step
47ULM50050ASK05050ASKULM50050ASK0.step
48ULM50050BXK05050BXKULM50050BXK0.step
49ULM50050CXK05050CXKULM50050CXK0.step
50ULM50050DEK05050DEKULM50050DEK0.step
51ULM50050DNK05050DNKULM50050DNK0.step
52ULM50050DOK05050DOKULM50050DOK0.step
53ULM50050DSK05050DSKULM50050DSK0.step
54ULM50050EXK05050EXKULM50050EXK0.step
55ULM50050FXK05050FXKULM50050FXK0.step
56ULM50050HXK05050HXKULM50050HXK0.step
57ULM50050IXK05050IXKULM50050IXK0.step
58ULM50060AEK05060AEKULM50060AEK0.step
59ULM50060ANK05060ANKULM50060ANK0.step
60ULM50060AOK05060AOKULM50060AOK0.step
61ULM50060ASK05060ASKULM50060ASK0.step
62ULM50060BXK05060BXKULM50060BXK0.step
63ULM50060CXK05060CXKULM50060CXK0.step
64ULM50060DEK05060DEKULM50060DEK0.step
65ULM50060DNK05060DNKULM50060DNK0.step
66ULM50060DOK05060DOKULM50060DOK0.step
67ULM50060DSK05060DSKULM50060DSK0.step
68ULM50060EXK05060EXKULM50060EXK0.step
69ULM50060FXK05060FXKULM50060FXK0.step
70ULM50060HXK05060HXKULM50060HXK0.step
71ULM50060IXK05060IXKULM50060IXK0.step
72ULM50015AXK05015AXKPLACEHOLDER.step
73ULM50015BEK05015BEKPLACEHOLDER.step
74ULM50015BNK05015BNKPLACEHOLDER.step
75ULM50015BOK05015BOKPLACEHOLDER.step
76ULM50015BSK05015BSKPLACEHOLDER.step
77ULM50015CEK05015CEKPLACEHOLDER.step
78ULM50015CNK05015CNKPLACEHOLDER.step
79ULM50015COK05015COKPLACEHOLDER.step
80ULM50015CSK05015CSKPLACEHOLDER.step
81ULM50015DXK05015DXKPLACEHOLDER.step
82ULM50015EEK05015EEKPLACEHOLDER.step
83ULM50015ENK05015ENKPLACEHOLDER.step
84ULM50015EOK05015EOKPLACEHOLDER.step
85ULM50015ESK05015ESKPLACEHOLDER.step
86ULM50015FEK05015FEKPLACEHOLDER.step
87ULM50015FNK05015FNKPLACEHOLDER.step
88ULM50015FOK05015FOKPLACEHOLDER.step
89ULM50015FSK05015FSKPLACEHOLDER.step
90ULM50015HEK05015HEKPLACEHOLDER.step
91ULM50015HNK05015HNKPLACEHOLDER.step
92ULM50015HOK05015HOKPLACEHOLDER.step
93ULM50015HSK05015HSKPLACEHOLDER.step
94ULM50015IEK05015IEKPLACEHOLDER.step
95ULM50015INK05015INKPLACEHOLDER.step
96ULM50015IOK05015IOKPLACEHOLDER.step
97ULM50015ISK05015ISKPLACEHOLDER.step
98ULM50025AXK05025AXKPLACEHOLDER.step
99ULM50025BEK05025BEKPLACEHOLDER.step
100ULM50025BNK05025BNKPLACEHOLDER.step
101ULM50025BOK05025BOKPLACEHOLDER.step
102ULM50025BSK05025BSKPLACEHOLDER.step
103ULM50025CEK05025CEKPLACEHOLDER.step
104ULM50025CNK05025CNKPLACEHOLDER.step
105ULM50025COK05025COKPLACEHOLDER.step
106ULM50025CSK05025CSKPLACEHOLDER.step
107ULM50025DXK05025DXKPLACEHOLDER.step
108ULM50025EEK05025EEKPLACEHOLDER.step
109ULM50025ENK05025ENKPLACEHOLDER.step
110ULM50025EOK05025EOKPLACEHOLDER.step
111ULM50025ESK05025ESKPLACEHOLDER.step
112ULM50025FEK05025FEKPLACEHOLDER.step
113ULM50025FNK05025FNKPLACEHOLDER.step
114ULM50025FOK05025FOKPLACEHOLDER.step
115ULM50025FSK05025FSKPLACEHOLDER.step
116ULM50025HEK05025HEKPLACEHOLDER.step
117ULM50025HNK05025HNKPLACEHOLDER.step
118ULM50025HOK05025HOKPLACEHOLDER.step
119ULM50025HSK05025HSKPLACEHOLDER.step
120ULM50025IEK05025IEKPLACEHOLDER.step
121ULM50025INK05025INKPLACEHOLDER.step
122ULM50025IOK05025IOKPLACEHOLDER.step
123ULM50025ISK05025ISKPLACEHOLDER.step
124ULM50040AXK05040AXKPLACEHOLDER.step
125ULM50040BEK05040BEKPLACEHOLDER.step
126ULM50040BNK05040BNKPLACEHOLDER.step
127ULM50040BOK05040BOKPLACEHOLDER.step
128ULM50040BSK05040BSKPLACEHOLDER.step
129ULM50040CEK05040CEKPLACEHOLDER.step
130ULM50040CNK05040CNKPLACEHOLDER.step
131ULM50040COK05040COKPLACEHOLDER.step
132ULM50040CSK05040CSKPLACEHOLDER.step
133ULM50040DXK05040DXKPLACEHOLDER.step
134ULM50040EEK05040EEKPLACEHOLDER.step
135ULM50040ENK05040ENKPLACEHOLDER.step
136ULM50040EOK05040EOKPLACEHOLDER.step
137ULM50040ESK05040ESKPLACEHOLDER.step
138ULM50040FEK05040FEKPLACEHOLDER.step
139ULM50040FNK05040FNKPLACEHOLDER.step
140ULM50040FOK05040FOKPLACEHOLDER.step
141ULM50040FSK05040FSKPLACEHOLDER.step
142ULM50040HEK05040HEKPLACEHOLDER.step
143ULM50040HNK05040HNKPLACEHOLDER.step
144ULM50040HOK05040HOKPLACEHOLDER.step
145ULM50040HSK05040HSKPLACEHOLDER.step
146ULM50040IEK05040IEKPLACEHOLDER.step
147ULM50040INK05040INKPLACEHOLDER.step
148ULM50040IOK05040IOKPLACEHOLDER.step
149ULM50040ISK05040ISKPLACEHOLDER.step
150ULM50050AXK05050AXKPLACEHOLDER.step
151ULM50050BEK05050BEKPLACEHOLDER.step
152ULM50050BNK05050BNKPLACEHOLDER.step
153ULM50050BOK05050BOKPLACEHOLDER.step
154ULM50050BSK05050BSKPLACEHOLDER.step
155ULM50050CEK05050CEKPLACEHOLDER.step
156ULM50050CNK05050CNKPLACEHOLDER.step
157ULM50050COK05050COKPLACEHOLDER.step
158ULM50050CSK05050CSKPLACEHOLDER.step
159ULM50050DXK05050DXKPLACEHOLDER.step
160ULM50050EEK05050EEKPLACEHOLDER.step
161ULM50050ENK05050ENKPLACEHOLDER.step
162ULM50050EOK05050EOKPLACEHOLDER.step
163ULM50050ESK05050ESKPLACEHOLDER.step
164ULM50050FEK05050FEKPLACEHOLDER.step
165ULM50050FNK05050FNKPLACEHOLDER.step
166ULM50050FOK05050FOKPLACEHOLDER.step
167ULM50050FSK05050FSKPLACEHOLDER.step
168ULM50050HEK05050HEKPLACEHOLDER.step
169ULM50050HNK05050HNKPLACEHOLDER.step
170ULM50050HOK05050HOKPLACEHOLDER.step
171ULM50050HSK05050HSKPLACEHOLDER.step
172ULM50050IEK05050IEKPLACEHOLDER.step
173ULM50050INK05050INKPLACEHOLDER.step
174ULM50050IOK05050IOKPLACEHOLDER.step
175ULM50050ISK05050ISKPLACEHOLDER.step
176ULM50060AXK05060AXKPLACEHOLDER.step
177ULM50060BEK05060BEKPLACEHOLDER.step
178ULM50060BNK05060BNKPLACEHOLDER.step
179ULM50060BOK05060BOKPLACEHOLDER.step
180ULM50060BSK05060BSKPLACEHOLDER.step
181ULM50060CEK05060CEKPLACEHOLDER.step
182ULM50060CNK05060CNKPLACEHOLDER.step
183ULM50060COK05060COKPLACEHOLDER.step
184ULM50060CSK05060CSKPLACEHOLDER.step
185ULM50060DXK05060DXKPLACEHOLDER.step
186ULM50060EEK05060EEKPLACEHOLDER.step
187ULM50060ENK05060ENKPLACEHOLDER.step
188ULM50060EOK05060EOKPLACEHOLDER.step
189ULM50060ESK05060ESKPLACEHOLDER.step
190ULM50060FEK05060FEKPLACEHOLDER.step
191ULM50060FNK05060FNKPLACEHOLDER.step
192ULM50060FOK05060FOKPLACEHOLDER.step
193ULM50060FSK05060FSKPLACEHOLDER.step
194ULM50060HEK05060HEKPLACEHOLDER.step
195ULM50060HNK05060HNKPLACEHOLDER.step
196ULM50060HOK05060HOKPLACEHOLDER.step
197ULM50060HSK05060HSKPLACEHOLDER.step
198ULM50060IEK05060IEKPLACEHOLDER.step
199ULM50060INK05060INKPLACEHOLDER.step
200ULM50060IOK05060IOKPLACEHOLDER.step
201ULM50060ISK05060ISKPLACEHOLDER.step