网页版选型改版 (仅网页版, 桌面版待同步)
- 新增零件号实时条: 边选边拼, 已确定片段实心高亮, 未定片段虚化, 进度条随选推进;
浅色配色 (初版深色块与页面不协调, 已改); 选满且唯一命中时整块转青色实心
- 技术方案: 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>
1.7 KiB
1.7 KiB
| 1 | model_code | size | stroke | rod | orient | sensor | step_file |
|---|---|---|---|---|---|---|---|
| 2 | ULL50040AEK0 | 50 | 40 | A | E | K | ULL50040AEK0.step |
| 3 | ULL50040ANK0 | 50 | 40 | A | N | K | ULL50040ANK0.step |
| 4 | ULL50040AOK0 | 50 | 40 | A | O | K | ULL50040AOK0.step |
| 5 | ULL50040ASK0 | 50 | 40 | A | S | K | ULL50040ASK0.step |
| 6 | ULL50040BXK0 | 50 | 40 | B | X | K | ULL50040BXK0.step |
| 7 | ULL50040CXK0 | 50 | 40 | C | X | K | ULL50040CXK0.step |
| 8 | ULL50040DEK0 | 50 | 40 | D | E | K | ULL50040DEK0.step |
| 9 | ULL50040DNK0 | 50 | 40 | D | N | K | ULL50040DNK0.step |
| 10 | ULL50040DOK0 | 50 | 40 | D | O | K | ULL50040DOK0.step |
| 11 | ULL50040DSK0 | 50 | 40 | D | S | K | ULL50040DSK0.step |
| 12 | ULL50040EXK0 | 50 | 40 | E | X | K | ULL50040EXK0.step |
| 13 | ULL50040FXK0 | 50 | 40 | F | X | K | ULL50040FXK0.step |
| 14 | ULL50040HXK0 | 50 | 40 | H | X | K | ULL50040HXK0.step |
| 15 | ULL50040IXK0 | 50 | 40 | I | X | K | ULL50040IXK0.step |
| 16 | ULL50040AXK0 | 50 | 40 | A | X | K | PLACEHOLDER.step |
| 17 | ULL50040BEK0 | 50 | 40 | B | E | K | PLACEHOLDER.step |
| 18 | ULL50040BNK0 | 50 | 40 | B | N | K | PLACEHOLDER.step |
| 19 | ULL50040BOK0 | 50 | 40 | B | O | K | PLACEHOLDER.step |
| 20 | ULL50040BSK0 | 50 | 40 | B | S | K | PLACEHOLDER.step |
| 21 | ULL50040CEK0 | 50 | 40 | C | E | K | PLACEHOLDER.step |
| 22 | ULL50040CNK0 | 50 | 40 | C | N | K | PLACEHOLDER.step |
| 23 | ULL50040COK0 | 50 | 40 | C | O | K | PLACEHOLDER.step |
| 24 | ULL50040CSK0 | 50 | 40 | C | S | K | PLACEHOLDER.step |
| 25 | ULL50040DXK0 | 50 | 40 | D | X | K | PLACEHOLDER.step |
| 26 | ULL50040EEK0 | 50 | 40 | E | E | K | PLACEHOLDER.step |
| 27 | ULL50040ENK0 | 50 | 40 | E | N | K | PLACEHOLDER.step |
| 28 | ULL50040EOK0 | 50 | 40 | E | O | K | PLACEHOLDER.step |
| 29 | ULL50040ESK0 | 50 | 40 | E | S | K | PLACEHOLDER.step |
| 30 | ULL50040FEK0 | 50 | 40 | F | E | K | PLACEHOLDER.step |
| 31 | ULL50040FNK0 | 50 | 40 | F | N | K | PLACEHOLDER.step |
| 32 | ULL50040FOK0 | 50 | 40 | F | O | K | PLACEHOLDER.step |
| 33 | ULL50040FSK0 | 50 | 40 | F | S | K | PLACEHOLDER.step |
| 34 | ULL50040HEK0 | 50 | 40 | H | E | K | PLACEHOLDER.step |
| 35 | ULL50040HNK0 | 50 | 40 | H | N | K | PLACEHOLDER.step |
| 36 | ULL50040HOK0 | 50 | 40 | H | O | K | PLACEHOLDER.step |
| 37 | ULL50040HSK0 | 50 | 40 | H | S | K | PLACEHOLDER.step |
| 38 | ULL50040IEK0 | 50 | 40 | I | E | K | PLACEHOLDER.step |
| 39 | ULL50040INK0 | 50 | 40 | I | N | K | PLACEHOLDER.step |
| 40 | ULL50040IOK0 | 50 | 40 | I | O | K | PLACEHOLDER.step |
| 41 | ULL50040ISK0 | 50 | 40 | I | S | K | PLACEHOLDER.step |