wangruiguo e94d2aebc9 v2.2: 桌面版同步 DESTACO 风格选型 + 网页预览后台启动
桌面版 (仅网页版 v2.1 已做的部分, 本次补齐桌面端, 两端语义一致)
- 新增 OptionTile 控件类: 三态选项块 (可选/已选/不可选), 替代 ComboBox 下拉
  不可选取值置灰+删除线但保留占位 (让用户看到选项存在, 而非从列表消失);
  悬停青色高亮, 再点一次取消选择
- 新增零件号实时条: 复用与网页版同一套「候选型号最长公共前缀」算法,
  已确定片段深青实心 + 待定位数虚化 + 进度条, 选满唯一命中时整块转青色实心
- 维度标题后回显当前已选值
- range 参数 (连续域) 保留可编辑下拉, 无法枚举成卡片
- 参数联动仍复用 Configurator.AllowedOptions, 规则引擎未改动

网页预览后台启动 (无 PowerShell 窗口)
- 新增 tools/serve-web-bg.ps1: Start-Process -WindowStyle Hidden 启动,
  带 -Stop / -Status; 用命令行匹配定位进程 (比只看 PID 文件可靠)
- _start_web.bat / _start_all.bat 改用之, 不再弹窗口

工具
- ui-diagnose.ps1 增强: 原只检查 _boxes (下拉), 现同时检查选项块数量、
  每维度是否有可选值、零件号条输出 —— 可自动发现"某维度全被置灰无从下手"
- 新增 assess-combo-risk.py: 用量化口径评估生成候选的风险
  (以同缸径真实数据值域为官方值域的代理)
- 新增 make-pending-list.py: 重写待补清单, 增加 nearest_real / diff_from_nearest
  列, 每个候选与其最近的真实型号并列, 便于逐个核实

文档
- 新增 工作总结-2026-09.md: 两阶段工作回顾、发现的问题、踩坑经验

验证
- 编译首次通过; UI 诊断 40/40 系列 0 问题
- 零件号条实测: KC0032-10 / ULP32020AEK0 / UAGP075OK120WS0 / LAE140NN31 均完整;
  UCBP 正确提示"该组合对应 2 个型号" (暴露已知数据问题)

踩坑记录
- PowerShell 变量名大小写不敏感: $root 与 $Root 是同一变量, 互相覆盖导致
  启动脚本指向错误目录 (改用 $projRoot)
- .ps1 必须带 UTF-8 BOM, 否则 PS 5.1 按 ANSI 读, 中文注释破坏解析

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-15 18:27:11 +08:00

OnebotCatalog —— 欧霓博气动元件电子目录软件(自研)

对标 CADENAS PARTdataManager 目录光盘,但不依赖任何 CADENAS 组件。目标:普通客户通过软件选型并下载 STEP 文件,导入自己的 CAD 使用。

📌 项目全景/架构/踩坑/待办见同目录 项目总览.md(继续开发的入口);本文件夹各目录用途见 文件夹说明.md;改数据看 onebot-data\数据维护说明书.md;NX 母模建模看 sample-data\tools\NX母模建模操作说明书.md。

现状(2026-08-22)

  • M1/M2/M3 全部完成:桌面版(含维护入口)+ 网页版(纯静态)+ 一键发布三份产物 + 真实数据入库(17 系列 52,193 型号;含 2026-08-23 新增的 6 个 UNIVER 系分类样板系列 UCBM/ULP/USP/UGP/UAGP/LAE)
  • 数据源:onebot-data\catalog\(catalog.json + series*.meta.json + csv\ + step\ + manual\ + crossref.csv 平替对照)
  • 特色功能:平替对照(竞品型号↔我方型号,搜索/标签页双入口)、手册页对照、新迪 3D(menu=min 精简)、.stp/.step 后缀兼容
  • 自测:ONEBOT 包 25 项 / 样例包 40 项(--selftest,结果 sample\selftest.log)
  • 品牌:ONEBOT;维护密码:onebot888

目录结构(自包含布局,整体拷贝不断链)

OnebotCatalog/
├── 项目总览.md / 文件夹说明.md / 设计文档 / 开发提示词   ← 文档都在根
├── src/            # 源代码: App(WPF界面) + CatalogCore(数据包/规则引擎/构建器) + Viewer3D(自绘3D)
├── bin/            # 编译产物: OnebotCatalog.exe(开发版) + OnebotCatalog-Customer.exe(客户版) + 维护入口.bat
├── sample/         # 数据包 .opc + selftest.log + SC-meta.json(单系列配置样例)
├── release/        # 交付产物: OnebotCatalog_2026.08\(客户版目录) + update_2026.08\(增量包) + web_2026.08\(网页站)
├── web/            # 网页版前端源码 (纯静态: index.html/app.js/style.css)
├── viewer/         # 新迪 3D 查看器本地副本 (桌面浏览器预览/网页 3D; 原项目 Z 盘只读)
├── tools/          # build.ps1 编译 / publish.ps1 一键发布 / serve-web.ps1 本地预览(16并发) / fix-bom.ps1 等
├── assets/         # OneBot 图标 (编译进 exe)
├── docs/           # 用户手册 / 维护手册
├── onebot-data/    # ★唯一数据源★ catalog\ + 生成工具 + 数据维护说明书.md
└── sample-data/    # 样例数据 + NX 工具 (nx-batch-export.vb 批量导出 / nx-batch-export-glb.vb / 母模说明书)

常用命令

# 编译开发版
powershell -NoProfile -ExecutionPolicy Bypass -File tools\build.ps1

# 自测 (结果看 sample\selftest.log)
bin\OnebotCatalog.exe --selftest sample\OnebotCatalog_2026.08.opc

# 全量构建 (统一路线: 源目录 → .opc; 维护窗口【重建全量目录】同内核)
bin\OnebotCatalog.exe --buildfull onebot-data\catalog sample\OnebotCatalog_2026.08.opc

# 一键发布 (自测门禁 → 客户版 exe(数据内置) → 光盘目录+增量包+网页站; ★先停 serve-web 和运行中的 exe★)
powershell -NoProfile -ExecutionPolicy Bypass -File tools\publish.ps1

# 本地网页预览 (localhost:8080, 关掉即停)
powershell -NoProfile -ExecutionPolicy Bypass -File tools\serve-web.ps1

# 运行 (客户模式 / 维护模式)
bin\OnebotCatalog.exe sample\OnebotCatalog_2026.08.opc
bin\OnebotCatalog.exe sample\OnebotCatalog_2026.08.opc --admin    # 或双击 维护入口.bat (密码 onebot888)

注意: 编辑任何含中文的 .ps1/.cs/.vb 后必须运行 sample-data\tools\fix-bom.ps1 再编译/运行(PowerShell 5.1/csc 对无 BOM 文件按 GBK 读取)。

与设计文档的偏差(环境适配)

设计文档 (M1) 实际实现 原因
C# / .NET 8 (WPF+MVVM) C# / .NET Framework 4.8 (代码式 WPF) 本机无 .NET SDK;net48 内置于 Win10/11,客户机免装运行时
SQLite + FTS5 catalog.json (zip 内) + 内存查询 避免外部依赖;10 万级变体内存 LINQ 足够
Helix Toolkit 渲染 WPF 内置 Viewport3D + 自绘解析器 零依赖;真实 B-rep 走浏览器+新迪查看器(内嵌本机服务器)
预生成预览网格 占位几何直接解析;真实数模浏览器预览 真实 CAD 通用 STEP 由 NX 母模批量导出(预生成变体)
MVVM 代码式事件驱动 保持模块分层(Core 不依赖 UI)

已知简化(诚实清单)

  • 维护密码硬编码 onebot888(在 App.cs,未移配置)
  • 桌面 3D:真实 B-rep 窗口内直渲、不弹浏览器——有 STL 网格走开源 Helix Toolkit(MIT),无网格走 WebView2 内嵌新迪查看器(真实 STEP 直接渲染,Win11 自带运行时);两者都不可用才回退外部浏览器;网页轻量化(glTF)待办 9
  • 行程为离散标准档位(10/20/30/50/75/100);"任意行程"待参数化二期(NX 运行时生成,待办 7)
  • 网页 3D 对占位 STEP 走 Canvas 回退;真实 NX STEP 走新迪渲染(已验证)
  • 发布站 app.js 的 VIEWER_BASE 需按生产部署改前缀(见项目总览 §12)

待办(见项目总览 §9 完整清单)

  • NX 母模批量导出真实 STEP(KC-00-32x10 已试点;母模说明书见 sample-data\tools\)
  • 代码签名证书 / 虚拟机验收 / 检查更新 / 参数化二期 / TC 集成(可选)
Description
用于自动生成数模的一个参数化建模程序
Readme 317 MiB
Languages
C# 29%
JavaScript 20.9%
Python 16.4%
Visual Basic .NET 10%
PowerShell 9.6%
Other 14.1%