网页版选型改版 (仅网页版, 桌面版待同步)
- 新增零件号实时条: 边选边拼, 已确定片段实心高亮, 未定片段虚化, 进度条随选推进;
浅色配色 (初版深色块与页面不协调, 已改); 选满且唯一命中时整块转青色实心
- 技术方案: 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>
8.3 KiB
8.3 KiB
| 1 | model_code | size | stroke | rod | orient | sensor | step_file |
|---|---|---|---|---|---|---|---|
| 2 | ULM50015AEK0 | 50 | 15 | A | E | K | ULM50015AEK0.step |
| 3 | ULM50015ANK0 | 50 | 15 | A | N | K | ULM50015ANK0.step |
| 4 | ULM50015AOK0 | 50 | 15 | A | O | K | ULM50015AOK0.step |
| 5 | ULM50015ASK0 | 50 | 15 | A | S | K | ULM50015ASK0.step |
| 6 | ULM50015BXK0 | 50 | 15 | B | X | K | ULM50015BXK0.step |
| 7 | ULM50015CXK0 | 50 | 15 | C | X | K | ULM50015CXK0.step |
| 8 | ULM50015DEK0 | 50 | 15 | D | E | K | ULM50015DEK0.step |
| 9 | ULM50015DNK0 | 50 | 15 | D | N | K | ULM50015DNK0.step |
| 10 | ULM50015DOK0 | 50 | 15 | D | O | K | ULM50015DOK0.step |
| 11 | ULM50015DSK0 | 50 | 15 | D | S | K | ULM50015DSK0.step |
| 12 | ULM50015EXK0 | 50 | 15 | E | X | K | ULM50015EXK0.step |
| 13 | ULM50015FXK0 | 50 | 15 | F | X | K | ULM50015FXK0.step |
| 14 | ULM50015HXK0 | 50 | 15 | H | X | K | ULM50015HXK0.step |
| 15 | ULM50015IXK0 | 50 | 15 | I | X | K | ULM50015IXK0.step |
| 16 | ULM50025AEK0 | 50 | 25 | A | E | K | ULM50025AEK0.step |
| 17 | ULM50025ANK0 | 50 | 25 | A | N | K | ULM50025ANK0.step |
| 18 | ULM50025AOK0 | 50 | 25 | A | O | K | ULM50025AOK0.step |
| 19 | ULM50025ASK0 | 50 | 25 | A | S | K | ULM50025ASK0.step |
| 20 | ULM50025BXK0 | 50 | 25 | B | X | K | ULM50025BXK0.step |
| 21 | ULM50025CXK0 | 50 | 25 | C | X | K | ULM50025CXK0.step |
| 22 | ULM50025DEK0 | 50 | 25 | D | E | K | ULM50025DEK0.step |
| 23 | ULM50025DNK0 | 50 | 25 | D | N | K | ULM50025DNK0.step |
| 24 | ULM50025DOK0 | 50 | 25 | D | O | K | ULM50025DOK0.step |
| 25 | ULM50025DSK0 | 50 | 25 | D | S | K | ULM50025DSK0.step |
| 26 | ULM50025EXK0 | 50 | 25 | E | X | K | ULM50025EXK0.step |
| 27 | ULM50025FXK0 | 50 | 25 | F | X | K | ULM50025FXK0.step |
| 28 | ULM50025HXK0 | 50 | 25 | H | X | K | ULM50025HXK0.step |
| 29 | ULM50025IXK0 | 50 | 25 | I | X | K | ULM50025IXK0.step |
| 30 | ULM50040AEK0 | 50 | 40 | A | E | K | ULM50040AEK0.step |
| 31 | ULM50040ANK0 | 50 | 40 | A | N | K | ULM50040ANK0.step |
| 32 | ULM50040AOK0 | 50 | 40 | A | O | K | ULM50040AOK0.step |
| 33 | ULM50040ASK0 | 50 | 40 | A | S | K | ULM50040ASK0.step |
| 34 | ULM50040BXK0 | 50 | 40 | B | X | K | ULM50040BXK0.step |
| 35 | ULM50040CXK0 | 50 | 40 | C | X | K | ULM50040CXK0.step |
| 36 | ULM50040DEK0 | 50 | 40 | D | E | K | ULM50040DEK0.step |
| 37 | ULM50040DNK0 | 50 | 40 | D | N | K | ULM50040DNK0.step |
| 38 | ULM50040DOK0 | 50 | 40 | D | O | K | ULM50040DOK0.step |
| 39 | ULM50040DSK0 | 50 | 40 | D | S | K | ULM50040DSK0.step |
| 40 | ULM50040EXK0 | 50 | 40 | E | X | K | ULM50040EXK0.step |
| 41 | ULM50040FXK0 | 50 | 40 | F | X | K | ULM50040FXK0.step |
| 42 | ULM50040HXK0 | 50 | 40 | H | X | K | ULM50040HXK0.step |
| 43 | ULM50040IXK0 | 50 | 40 | I | X | K | ULM50040IXK0.step |
| 44 | ULM50050AEK0 | 50 | 50 | A | E | K | ULM50050AEK0.step |
| 45 | ULM50050ANK0 | 50 | 50 | A | N | K | ULM50050ANK0.step |
| 46 | ULM50050AOK0 | 50 | 50 | A | O | K | ULM50050AOK0.step |
| 47 | ULM50050ASK0 | 50 | 50 | A | S | K | ULM50050ASK0.step |
| 48 | ULM50050BXK0 | 50 | 50 | B | X | K | ULM50050BXK0.step |
| 49 | ULM50050CXK0 | 50 | 50 | C | X | K | ULM50050CXK0.step |
| 50 | ULM50050DEK0 | 50 | 50 | D | E | K | ULM50050DEK0.step |
| 51 | ULM50050DNK0 | 50 | 50 | D | N | K | ULM50050DNK0.step |
| 52 | ULM50050DOK0 | 50 | 50 | D | O | K | ULM50050DOK0.step |
| 53 | ULM50050DSK0 | 50 | 50 | D | S | K | ULM50050DSK0.step |
| 54 | ULM50050EXK0 | 50 | 50 | E | X | K | ULM50050EXK0.step |
| 55 | ULM50050FXK0 | 50 | 50 | F | X | K | ULM50050FXK0.step |
| 56 | ULM50050HXK0 | 50 | 50 | H | X | K | ULM50050HXK0.step |
| 57 | ULM50050IXK0 | 50 | 50 | I | X | K | ULM50050IXK0.step |
| 58 | ULM50060AEK0 | 50 | 60 | A | E | K | ULM50060AEK0.step |
| 59 | ULM50060ANK0 | 50 | 60 | A | N | K | ULM50060ANK0.step |
| 60 | ULM50060AOK0 | 50 | 60 | A | O | K | ULM50060AOK0.step |
| 61 | ULM50060ASK0 | 50 | 60 | A | S | K | ULM50060ASK0.step |
| 62 | ULM50060BXK0 | 50 | 60 | B | X | K | ULM50060BXK0.step |
| 63 | ULM50060CXK0 | 50 | 60 | C | X | K | ULM50060CXK0.step |
| 64 | ULM50060DEK0 | 50 | 60 | D | E | K | ULM50060DEK0.step |
| 65 | ULM50060DNK0 | 50 | 60 | D | N | K | ULM50060DNK0.step |
| 66 | ULM50060DOK0 | 50 | 60 | D | O | K | ULM50060DOK0.step |
| 67 | ULM50060DSK0 | 50 | 60 | D | S | K | ULM50060DSK0.step |
| 68 | ULM50060EXK0 | 50 | 60 | E | X | K | ULM50060EXK0.step |
| 69 | ULM50060FXK0 | 50 | 60 | F | X | K | ULM50060FXK0.step |
| 70 | ULM50060HXK0 | 50 | 60 | H | X | K | ULM50060HXK0.step |
| 71 | ULM50060IXK0 | 50 | 60 | I | X | K | ULM50060IXK0.step |
| 72 | ULM50015AXK0 | 50 | 15 | A | X | K | PLACEHOLDER.step |
| 73 | ULM50015BEK0 | 50 | 15 | B | E | K | PLACEHOLDER.step |
| 74 | ULM50015BNK0 | 50 | 15 | B | N | K | PLACEHOLDER.step |
| 75 | ULM50015BOK0 | 50 | 15 | B | O | K | PLACEHOLDER.step |
| 76 | ULM50015BSK0 | 50 | 15 | B | S | K | PLACEHOLDER.step |
| 77 | ULM50015CEK0 | 50 | 15 | C | E | K | PLACEHOLDER.step |
| 78 | ULM50015CNK0 | 50 | 15 | C | N | K | PLACEHOLDER.step |
| 79 | ULM50015COK0 | 50 | 15 | C | O | K | PLACEHOLDER.step |
| 80 | ULM50015CSK0 | 50 | 15 | C | S | K | PLACEHOLDER.step |
| 81 | ULM50015DXK0 | 50 | 15 | D | X | K | PLACEHOLDER.step |
| 82 | ULM50015EEK0 | 50 | 15 | E | E | K | PLACEHOLDER.step |
| 83 | ULM50015ENK0 | 50 | 15 | E | N | K | PLACEHOLDER.step |
| 84 | ULM50015EOK0 | 50 | 15 | E | O | K | PLACEHOLDER.step |
| 85 | ULM50015ESK0 | 50 | 15 | E | S | K | PLACEHOLDER.step |
| 86 | ULM50015FEK0 | 50 | 15 | F | E | K | PLACEHOLDER.step |
| 87 | ULM50015FNK0 | 50 | 15 | F | N | K | PLACEHOLDER.step |
| 88 | ULM50015FOK0 | 50 | 15 | F | O | K | PLACEHOLDER.step |
| 89 | ULM50015FSK0 | 50 | 15 | F | S | K | PLACEHOLDER.step |
| 90 | ULM50015HEK0 | 50 | 15 | H | E | K | PLACEHOLDER.step |
| 91 | ULM50015HNK0 | 50 | 15 | H | N | K | PLACEHOLDER.step |
| 92 | ULM50015HOK0 | 50 | 15 | H | O | K | PLACEHOLDER.step |
| 93 | ULM50015HSK0 | 50 | 15 | H | S | K | PLACEHOLDER.step |
| 94 | ULM50015IEK0 | 50 | 15 | I | E | K | PLACEHOLDER.step |
| 95 | ULM50015INK0 | 50 | 15 | I | N | K | PLACEHOLDER.step |
| 96 | ULM50015IOK0 | 50 | 15 | I | O | K | PLACEHOLDER.step |
| 97 | ULM50015ISK0 | 50 | 15 | I | S | K | PLACEHOLDER.step |
| 98 | ULM50025AXK0 | 50 | 25 | A | X | K | PLACEHOLDER.step |
| 99 | ULM50025BEK0 | 50 | 25 | B | E | K | PLACEHOLDER.step |
| 100 | ULM50025BNK0 | 50 | 25 | B | N | K | PLACEHOLDER.step |
| 101 | ULM50025BOK0 | 50 | 25 | B | O | K | PLACEHOLDER.step |
| 102 | ULM50025BSK0 | 50 | 25 | B | S | K | PLACEHOLDER.step |
| 103 | ULM50025CEK0 | 50 | 25 | C | E | K | PLACEHOLDER.step |
| 104 | ULM50025CNK0 | 50 | 25 | C | N | K | PLACEHOLDER.step |
| 105 | ULM50025COK0 | 50 | 25 | C | O | K | PLACEHOLDER.step |
| 106 | ULM50025CSK0 | 50 | 25 | C | S | K | PLACEHOLDER.step |
| 107 | ULM50025DXK0 | 50 | 25 | D | X | K | PLACEHOLDER.step |
| 108 | ULM50025EEK0 | 50 | 25 | E | E | K | PLACEHOLDER.step |
| 109 | ULM50025ENK0 | 50 | 25 | E | N | K | PLACEHOLDER.step |
| 110 | ULM50025EOK0 | 50 | 25 | E | O | K | PLACEHOLDER.step |
| 111 | ULM50025ESK0 | 50 | 25 | E | S | K | PLACEHOLDER.step |
| 112 | ULM50025FEK0 | 50 | 25 | F | E | K | PLACEHOLDER.step |
| 113 | ULM50025FNK0 | 50 | 25 | F | N | K | PLACEHOLDER.step |
| 114 | ULM50025FOK0 | 50 | 25 | F | O | K | PLACEHOLDER.step |
| 115 | ULM50025FSK0 | 50 | 25 | F | S | K | PLACEHOLDER.step |
| 116 | ULM50025HEK0 | 50 | 25 | H | E | K | PLACEHOLDER.step |
| 117 | ULM50025HNK0 | 50 | 25 | H | N | K | PLACEHOLDER.step |
| 118 | ULM50025HOK0 | 50 | 25 | H | O | K | PLACEHOLDER.step |
| 119 | ULM50025HSK0 | 50 | 25 | H | S | K | PLACEHOLDER.step |
| 120 | ULM50025IEK0 | 50 | 25 | I | E | K | PLACEHOLDER.step |
| 121 | ULM50025INK0 | 50 | 25 | I | N | K | PLACEHOLDER.step |
| 122 | ULM50025IOK0 | 50 | 25 | I | O | K | PLACEHOLDER.step |
| 123 | ULM50025ISK0 | 50 | 25 | I | S | K | PLACEHOLDER.step |
| 124 | ULM50040AXK0 | 50 | 40 | A | X | K | PLACEHOLDER.step |
| 125 | ULM50040BEK0 | 50 | 40 | B | E | K | PLACEHOLDER.step |
| 126 | ULM50040BNK0 | 50 | 40 | B | N | K | PLACEHOLDER.step |
| 127 | ULM50040BOK0 | 50 | 40 | B | O | K | PLACEHOLDER.step |
| 128 | ULM50040BSK0 | 50 | 40 | B | S | K | PLACEHOLDER.step |
| 129 | ULM50040CEK0 | 50 | 40 | C | E | K | PLACEHOLDER.step |
| 130 | ULM50040CNK0 | 50 | 40 | C | N | K | PLACEHOLDER.step |
| 131 | ULM50040COK0 | 50 | 40 | C | O | K | PLACEHOLDER.step |
| 132 | ULM50040CSK0 | 50 | 40 | C | S | K | PLACEHOLDER.step |
| 133 | ULM50040DXK0 | 50 | 40 | D | X | K | PLACEHOLDER.step |
| 134 | ULM50040EEK0 | 50 | 40 | E | E | K | PLACEHOLDER.step |
| 135 | ULM50040ENK0 | 50 | 40 | E | N | K | PLACEHOLDER.step |
| 136 | ULM50040EOK0 | 50 | 40 | E | O | K | PLACEHOLDER.step |
| 137 | ULM50040ESK0 | 50 | 40 | E | S | K | PLACEHOLDER.step |
| 138 | ULM50040FEK0 | 50 | 40 | F | E | K | PLACEHOLDER.step |
| 139 | ULM50040FNK0 | 50 | 40 | F | N | K | PLACEHOLDER.step |
| 140 | ULM50040FOK0 | 50 | 40 | F | O | K | PLACEHOLDER.step |
| 141 | ULM50040FSK0 | 50 | 40 | F | S | K | PLACEHOLDER.step |
| 142 | ULM50040HEK0 | 50 | 40 | H | E | K | PLACEHOLDER.step |
| 143 | ULM50040HNK0 | 50 | 40 | H | N | K | PLACEHOLDER.step |
| 144 | ULM50040HOK0 | 50 | 40 | H | O | K | PLACEHOLDER.step |
| 145 | ULM50040HSK0 | 50 | 40 | H | S | K | PLACEHOLDER.step |
| 146 | ULM50040IEK0 | 50 | 40 | I | E | K | PLACEHOLDER.step |
| 147 | ULM50040INK0 | 50 | 40 | I | N | K | PLACEHOLDER.step |
| 148 | ULM50040IOK0 | 50 | 40 | I | O | K | PLACEHOLDER.step |
| 149 | ULM50040ISK0 | 50 | 40 | I | S | K | PLACEHOLDER.step |
| 150 | ULM50050AXK0 | 50 | 50 | A | X | K | PLACEHOLDER.step |
| 151 | ULM50050BEK0 | 50 | 50 | B | E | K | PLACEHOLDER.step |
| 152 | ULM50050BNK0 | 50 | 50 | B | N | K | PLACEHOLDER.step |
| 153 | ULM50050BOK0 | 50 | 50 | B | O | K | PLACEHOLDER.step |
| 154 | ULM50050BSK0 | 50 | 50 | B | S | K | PLACEHOLDER.step |
| 155 | ULM50050CEK0 | 50 | 50 | C | E | K | PLACEHOLDER.step |
| 156 | ULM50050CNK0 | 50 | 50 | C | N | K | PLACEHOLDER.step |
| 157 | ULM50050COK0 | 50 | 50 | C | O | K | PLACEHOLDER.step |
| 158 | ULM50050CSK0 | 50 | 50 | C | S | K | PLACEHOLDER.step |
| 159 | ULM50050DXK0 | 50 | 50 | D | X | K | PLACEHOLDER.step |
| 160 | ULM50050EEK0 | 50 | 50 | E | E | K | PLACEHOLDER.step |
| 161 | ULM50050ENK0 | 50 | 50 | E | N | K | PLACEHOLDER.step |
| 162 | ULM50050EOK0 | 50 | 50 | E | O | K | PLACEHOLDER.step |
| 163 | ULM50050ESK0 | 50 | 50 | E | S | K | PLACEHOLDER.step |
| 164 | ULM50050FEK0 | 50 | 50 | F | E | K | PLACEHOLDER.step |
| 165 | ULM50050FNK0 | 50 | 50 | F | N | K | PLACEHOLDER.step |
| 166 | ULM50050FOK0 | 50 | 50 | F | O | K | PLACEHOLDER.step |
| 167 | ULM50050FSK0 | 50 | 50 | F | S | K | PLACEHOLDER.step |
| 168 | ULM50050HEK0 | 50 | 50 | H | E | K | PLACEHOLDER.step |
| 169 | ULM50050HNK0 | 50 | 50 | H | N | K | PLACEHOLDER.step |
| 170 | ULM50050HOK0 | 50 | 50 | H | O | K | PLACEHOLDER.step |
| 171 | ULM50050HSK0 | 50 | 50 | H | S | K | PLACEHOLDER.step |
| 172 | ULM50050IEK0 | 50 | 50 | I | E | K | PLACEHOLDER.step |
| 173 | ULM50050INK0 | 50 | 50 | I | N | K | PLACEHOLDER.step |
| 174 | ULM50050IOK0 | 50 | 50 | I | O | K | PLACEHOLDER.step |
| 175 | ULM50050ISK0 | 50 | 50 | I | S | K | PLACEHOLDER.step |
| 176 | ULM50060AXK0 | 50 | 60 | A | X | K | PLACEHOLDER.step |
| 177 | ULM50060BEK0 | 50 | 60 | B | E | K | PLACEHOLDER.step |
| 178 | ULM50060BNK0 | 50 | 60 | B | N | K | PLACEHOLDER.step |
| 179 | ULM50060BOK0 | 50 | 60 | B | O | K | PLACEHOLDER.step |
| 180 | ULM50060BSK0 | 50 | 60 | B | S | K | PLACEHOLDER.step |
| 181 | ULM50060CEK0 | 50 | 60 | C | E | K | PLACEHOLDER.step |
| 182 | ULM50060CNK0 | 50 | 60 | C | N | K | PLACEHOLDER.step |
| 183 | ULM50060COK0 | 50 | 60 | C | O | K | PLACEHOLDER.step |
| 184 | ULM50060CSK0 | 50 | 60 | C | S | K | PLACEHOLDER.step |
| 185 | ULM50060DXK0 | 50 | 60 | D | X | K | PLACEHOLDER.step |
| 186 | ULM50060EEK0 | 50 | 60 | E | E | K | PLACEHOLDER.step |
| 187 | ULM50060ENK0 | 50 | 60 | E | N | K | PLACEHOLDER.step |
| 188 | ULM50060EOK0 | 50 | 60 | E | O | K | PLACEHOLDER.step |
| 189 | ULM50060ESK0 | 50 | 60 | E | S | K | PLACEHOLDER.step |
| 190 | ULM50060FEK0 | 50 | 60 | F | E | K | PLACEHOLDER.step |
| 191 | ULM50060FNK0 | 50 | 60 | F | N | K | PLACEHOLDER.step |
| 192 | ULM50060FOK0 | 50 | 60 | F | O | K | PLACEHOLDER.step |
| 193 | ULM50060FSK0 | 50 | 60 | F | S | K | PLACEHOLDER.step |
| 194 | ULM50060HEK0 | 50 | 60 | H | E | K | PLACEHOLDER.step |
| 195 | ULM50060HNK0 | 50 | 60 | H | N | K | PLACEHOLDER.step |
| 196 | ULM50060HOK0 | 50 | 60 | H | O | K | PLACEHOLDER.step |
| 197 | ULM50060HSK0 | 50 | 60 | H | S | K | PLACEHOLDER.step |
| 198 | ULM50060IEK0 | 50 | 60 | I | E | K | PLACEHOLDER.step |
| 199 | ULM50060INK0 | 50 | 60 | I | N | K | PLACEHOLDER.step |
| 200 | ULM50060IOK0 | 50 | 60 | I | O | K | PLACEHOLDER.step |
| 201 | ULM50060ISK0 | 50 | 60 | I | S | K | PLACEHOLDER.step |