v2.0: 4 分类真实数据替换 + 手册彩色重做 + 网页版改版

数据 (定位销/勾销缸/翻转缸/电缸 → Univer 真实数模)
- 新增 19 系列 1124 型号 (PIN 303 / HOK 73 / ROT 741 / ELEC 9)
- 命名规则取自官方图册 CODIFICATION KEY (pdftotext 提取), 非推测
- 解析用「官方值域校验 + 左对齐 DFS 填空」, 可处理省略空位的型号
- 参数组合唯一性门禁: 1124 型号全部通过 (避免选型静默错配)
- 占位/测试文件 (如 USP50J_0___K0 销径为空) 在解析阶段丢弃
- catalog.json 分类系列表同步; crossref 失效引用清理

手册页
- 全部 42 系列改为彩色 (此前脚本误写死 csGRAY 转灰度), 346 页
- 修复 UCBT 附图只有 1 页 (筛选条件写死 UCBT40 且漏 CLAMPING ARMS)
- gen-pending-series.py 改为扫描 manual 目录自动生成附件清单,
  避免重跑脚本把多页附件覆盖回单页

网页版
- 首页改为系列缩略图网格 (40 张: 27 张真实产品图 + 13 张占位图),
  按大类分组; 图放 web/series/<系列码>.webp, 覆盖同名文件即可替换
- 左侧树改手风琴 (默认收起, 一次展开一个), 父级带 SVG 图标,
  悬停放大动画, 按钮间距随高度均匀分布; 可收起为图标窄条
- 修复分隔条被拖出容器后无法找回 (上限改为容器感知 + resize 重夹取
  + 双击复位); 同时阻止图片原生拖拽
- 购物车打包改取 .step.gz 副档 (传输量降至约 1/4.5), 无副档自动回退
- 修复搜索到型号后点结果内容区空白 (switchTab('dim') 已失效)
- OpcPackage 超大包 (>1.5GB) 改走临时文件, 绕过 MemoryStream 2GB 上限

工具
- gen-pending-series/manual, copy-pending-step, gen-step-gz,
  gen-series-thumbs, scan-pending-series 等 11 个脚本

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
wangruiguo
2026-09-15 01:05:17 +08:00
parent 0584ba67b4
commit 3c4f236cba
483 changed files with 6520 additions and 201 deletions

View File

@@ -0,0 +1,71 @@
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
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