附图报价助手 --- 项目综合总结
版本 :v1.0(截止 2026-03-31)
项目路径 :d:\QuoteApp\
打包产物 :dist\QuoteApp\QuoteApp.exe(49.6 MB,Windows 10/11 x64 绿色版)
一、项目背景与目标
1.1 业务背景
中国中小制造业(5~50 人机加工厂)长期依赖资深工艺师手工看图、核算报价,存在三大痛点:
| 痛点 |
现象 |
影响 |
| 依赖老师傅 |
工艺核算需月薪万元以上工艺师 |
人力成本高、易受人员变动影响 |
| 报价周期长 |
传统人工核算 2~3 天 |
海外客户快速响应要求下频繁丢单 |
| 报价不透明 |
成本"黑盒",无法拆解工序明细 |
降低客户信任度,议价空间受限 |
1.2 目标用户
- 主要用户:中小机加工厂报价员/工艺主管(5~50 人规模,模具/精密零件加工)
- 次要用户:大型制造企业工艺/报价工程师个人使用
1.3 核心价值
上传图纸 → 系统自动解析几何特征 → 计算工序工时 → 生成含税报价单
核心流程 ≤ 5 步,从收到图纸到发出报价单 <1 小时
二、需求清单
2.1 功能需求(已实现状态)
| 编号 |
功能 |
优先级 |
状态 |
| FR-01-1 |
STEP/STP/STL/OBJ 3D 模型上传与解析 |
P0 |
✅ |
| FR-01-2 |
PDF/DXF/DWG 2D 图纸上传与解析 |
P1 |
✅ |
| FR-01-3 |
拖拽上传 |
P1 |
✅ |
| FR-01-4 |
自动提取包围盒(L×W×H,mm) |
P0 |
✅ |
| FR-01-5 |
自动计算表面积(mm²)和体积(mm³) |
P0 |
✅ |
| FR-01-6 |
自动统计孔数量及孔径分布(11 段区间) |
P0 |
✅ |
| FR-01-7 |
识别工艺特征:螺纹孔/圆角/凹槽/平面 |
P1 |
✅ |
| FR-01-8 |
3D 模型实时预览(实体/线框/半透明 + 尺寸标注) |
P2 |
✅ |
| FR-02-1~6 |
材料库(7 种预置 + 用户自定义) |
P0/P1 |
✅ |
| FR-03-1~11 |
11 道工序工时定额自动计算(HCB 体系) |
P0 |
✅ |
| FR-03-N |
定额系数校准(可修改/恢复默认) |
P1 |
✅ |
| FR-04 |
完整成本链:材料费→加工费→管销费→利润→税费→含税单价 |
P0 |
✅ |
| FR-05-1 |
多零件批量报价(含独立批量面板) |
P1 |
✅ |
| FR-05-2~4 |
报价单字段完整 + Excel/Word 导出 |
P0/P1 |
✅ |
| FR-05-5~7 |
历史报价本地存储、查询、重新导出 |
P0/P1 |
✅ |
| FR-06 |
参数库维护(材料/工序单价/辅材/税率等) |
P0/P1 |
✅ |
| --- |
DWG 格式图纸解析支持(ezdxf) |
P1 |
✅ |
| --- |
PaddleOCR 图纸文字识别(三级降级链) |
P1 |
✅ |
| --- |
OpenVINO 加速 OCR 自动检测与切换 |
P2 |
✅ |
| --- |
GUI + CLI 双模式(--cli 参数分流) |
P1 |
✅ |
| --- |
批量报价面板(多文件拖拽→批量解析→合并导出) |
P1 |
✅ |
| --- |
多工件报价清单(QuoteList 独立 Tab) |
P1 |
✅ |
2.2 非功能需求
| 类型 |
要求 |
状态 |
| 性能 |
STEP 解析不阻塞主界面;核算 ❤️ 秒 |
✅ QThread 异步 |
| 离线可用 |
全程本地,无需联网 |
✅ |
| 兼容性 |
Windows 10/11 64 位 |
✅ |
| 可安装 |
单文件绿色 exe(PyInstaller) |
✅ 49.6 MB |
| 数据安全 |
本地 SQLite,数据不上云 |
✅ |
| 可维护 |
所有参数通过 UI 调整,无需改代码 |
✅ |
| 估算精度 |
常规零件 <20% 误差;复杂件 <35%(提示复核) |
✅ |
| 易用性 |
核心流程 ≤ 5 步 |
✅ |
三、业务模型
3.1 核心业务实体
复制代码
┌─────────────────────────────────────────────────────────────────┐
│ 业务实体层 │
│ │
│ GeometryFeatures ProcessItem QuoteSummary │
│ ├─ bbox L/W/H (mm) ├─ process_code ├─ 材料费 │
│ ├─ surface_area (mm²) ├─ time_hours ├─ 加工费合计│
│ ├─ volume (mm³) ├─ unit_price_per_h ├─ 管销费 │
│ ├─ hole_counts {seg: n} ├─ cost_rmb ├─ 利润 │
│ ├─ complexity_score (0~1) └─ is_manual_override ├─ 税费 │
│ └─ parse_confidence ├─ 不含税单价│
│ └─ 含税单价 │
│ │
│ Material ProcessParam AuxCostItem QuoteRecord │
│ ├─ name ├─ process_code ├─ name ├─ 快照JSON │
│ ├─ density ├─ price_per_hour ├─ unit_price └─ is_locked│
│ ├─ price_per_kg ├─ base_coeff └─ is_default │
│ └─ category └─ formula_type │
└─────────────────────────────────────────────────────────────────┘
3.2 报价公式链
复制代码
用料重量 (kg) = 体积(mm³)/1000 × 密度(g/cm³) × 余量系数(1.15)
材料费 = 用料重量 × 原材料单价(元/kg) × 数量
工时(各工序) → 工序费 = 工时(h) × 工序单价(元/h)
加工费合计 = Σ 11道工序费
产品成本 = 材料费 + 加工费合计
管销费 = 产品成本 × 管销费率(默认 2.88%)
利润 = 产品成本 × 利润率(默认 13%)
不含税单价 = 产品成本 + 管销费 + 利润
含税单价 = 不含税单价 × (1 + 税率)(默认 13% 增值税)
总价(含税) = 含税单价 × 数量
3.3 11 道工序体系(对标 HCB 成本报表)
| # |
工序 |
工时公式依据 |
工序单价(元/H) |
| 1 |
编程 |
规则引擎:f(复杂度评分, 对角线) |
70.0 |
| 2 |
调机(准终) |
手册查表:f(简单/中等/复杂, qty 摊薄) |
56.0 |
| 3 |
空乘时间 |
装卸公式:f(净重G, 装卡方式, 吊车) |
50.7 |
| 4 |
热处理 |
工艺类型×净重 |
0.0(按工艺选择) |
| 5 |
线切割 |
切割路径×单价 |
45.0 |
| 6 |
孔加工 |
十一章钻床定额 T=f(D,L,K材料) |
54.9 |
| 7 |
车/铣/磨(粗) |
一章车床定额 T=f(D,L,光洁度,K材料) |
46.6 |
| 8 |
车/铣/磨(精) |
六章磨床定额 T=f(F面积,h余量) |
54.9 |
| 9 |
检测 |
f(公差特征数, 复杂度) |
34.5 |
| 10 |
包装 |
固定费用/按重量 |
15.0 |
| 11 |
表面处理 |
f(F表面积, 工艺类型) |
0.0(按工艺选择) |
3.4 复杂度评分规则(0~100 分)
| 维度 |
计分规则 |
最高分 |
| 孔数量 |
0孔=0; 1-3孔=+10; 4-10孔=+20; >10孔=+30 |
30 |
| 螺纹孔/深孔 |
各 +10 |
20 |
| 包围盒对角线 |
≤100mm=+5; ≤500mm=+15; >500mm=+25 |
25 |
| 特征面数 |
face_count/10,上限15 |
15 |
| 凹槽/圆角 |
各 +5 |
10 |
| 档次映射 |
<30=简单; 30-64=中等; ≥65=复杂 |
--- |
四、系统架构设计
4.1 分层架构
复制代码
┌─────────────────────────────────────────────────────────────────┐
│ UI 层(PyQt6) │
│ MainWindow ─ Tab1:QuotePanel ─ Tab2:BatchQuotePanel │
│ └─ Tab3:HistoryPanel ─ Tab4:QuoteListPanel │
│ └─ Tab5:SettingsPanel │
│ QuotePanel 内置三列 Splitter: │
│ 左(控制) │ 中(3D预览+工序表) │ 右(费用汇总卡) │
│ BatchQuotePanel 内置左右 Splitter: │
│ 左(文件区+表格+操作) │ 右(报价信息面板,可折叠) │
├─────────────────────────────────────────────────────────────────┤
│ 业务逻辑层(src/core/) │
│ GeometryExtractor → PreviewEngine → ProcessEngine │
│ CostCalculator → QuoteGenerator │
│ BatchExtractor(批量异步解析/计算) │
│ QuotaFormulas(定额手册公式库) │
│ CLIRunner(命令行无头模式) │
├─────────────────────────────────────────────────────────────────┤
│ 数据访问层(src/models/) │
│ Material | ProcessParam | AuxCostItem | QuoteRecord | Database │
├─────────────────────────────────────────────────────────────────┤
│ 持久化层(SQLite) │
│ data/quote.db │
└─────────────────────────────────────────────────────────────────┘
↑ 文件输入 ↓ 文件输出
STEP/STL/PDF/DXF/DWG Excel(.xlsx) / Word(.docx)
4.2 关键技术选型
| 层次 |
技术 |
版本 |
用途 |
| 桌面框架 |
PyQt6 |
≥6.6 |
GUI 主框架 |
| 3D 解析 |
pythonOCC(cascadio) |
≥7.9 |
STEP/IGES 工业级解析 |
| 轻量解析 |
trimesh |
≥4.0 |
STL/OBJ 解析 + 体积/面积 |
| 2D 图纸 |
pdfplumber + ezdxf |
--- |
PDF/DXF/DWG 尺寸提取 |
| OCR |
PaddleOCR |
2.x |
2D 图纸文字识别(三级降级) |
| OCR 加速 |
OpenVINO |
可选 |
PaddleOCR 推理加速 |
| 3D 渲染 |
PyQt6 QOpenGLWidget + GLSL |
--- |
实时 3D 预览(Phong 着色) |
| 数据库 |
SQLite + SQLAlchemy ORM |
2.0+ |
本地持久化 |
| 报表导出 |
openpyxl + python-docx |
--- |
Excel/Word 报价单 |
| 打包 |
PyInstaller |
≥6.0 |
Windows 绿色 exe |
4.3 数据库 Schema(5 张核心表)
| 表名 |
主要字段 |
说明 |
materials |
id, name, alias, density_g_cm3, price_per_kg, category |
材料库,7 种预置 |
process_params |
id, process_code, process_name, price_per_hour, base_time_coefficient, formula_type |
工序参数,11 道工序 |
aux_cost_items |
id, name, category, unit_price, is_default_selected |
辅材费,20 种 |
quote_records |
id, drawing_no, part_name, material_id, process_detail_json, geometry_info_json, unit_price_inc_tax, is_locked |
报价历史(含快照) |
meta |
key, value |
全局配置(税率/管销费率/利润率/OCR 设置等) |
五、功能清单(按模块)
- STEP/STP:pythonOCC BRep → 包围盒/体积/表面积/孔径分布/螺纹孔/圆角/凹槽
- STL/OBJ:trimesh → 包围盒/体积/面积
- PDF:pdfplumber 文字 + pdfminer → φ/⌀/M×× 标注提取
- DXF/DWG:ezdxf → Circle/Line/Dimension 实体提取
- OCR 降级:PaddleOCR 三级降级链(矢量→OCR→兜底估算)
- 后台异步 :QThread
ExtractWorker,不阻塞 UI
- 解析置信度:3D 高精度/2D 降级模式标识,低置信度触发 UI 提示
- 3D 渲染:QOpenGLWidget + GLSL Phong 着色,轨道相机(旋转/平移/缩放)
- 6 标准视图:前/后/左/右/顶/底/等轴测
- 渲染模式:实体/线框/半透明切换
- 尺寸标注:QPainter 叠加 L/W/H 三条标注线 + 延伸线 + 文字
- 2D 渲染:QPainter DXF 线框 + PDF 栅格
- 预览面板:右侧 L/W/H SpinBox 手工修改 → 实时更新 3D 标注 → 回写几何特征 → 触发重新报价
- 工时公式库:车床(C620)/ 磨床 / 钻床(摇臂钻/立钻/台钻)/ 铣床 / 材料系数表
- 工件类型推断:轴类(L/D≥3)/ 盘类 / 箱体(不走车床路线)
- 深孔处理:L/D>5 时工时 ×1.5
- 台钻范围限制:D>12mm 自动切换立钻公式
- 复杂度评分 → 准终时间三档查表(简单/中等/复杂)
5.4 成本核算(cost_calculator.py,229 行)
- 完整报价公式链(见 §3.2)
- 辅材费默认勾选电费分摊 + 清洗(合计 ¥13)
- 碳排放估算(总工时 × 碳排放系数)
- 金额精度:单价 2 位小数;工时 4 位小数
5.5 报价单导出(quote_generator.py,1256 行)
- Excel(.xlsx):openpyxl,对齐 HCB 报表格式,含工序明细表
- Word(.docx):python-docx,正规商务报价单样式
- 报价单头部字段:客户名称/收货地址/收件人/电话/备注/报价单号(QT-YYYYMMDD-XXXX)/付款方式/税率/物流费/审核员/报价员/平台签章/客户签章
- 工件清单字段:物料名称/平台型号/客户型号/模具编号/零件编号/材质/品牌/单位/数量/含税单价/合计金额/交期(天)
- 多文件拖拽上传(DropZone)
BatchExtractWorker:异步并行解析,进度实时回显
BatchCalcWorker:批量计算,结果写入表格
- 表格支持双击编辑(材质/数量/单价/交期)→ 实时同步数据模型
- 一键导出合并 Excel/Word(含所有工件清单)
- 右侧可折叠报价信息面板(客户名称/地址/付款方式/物流费等)
5.7 历史记录(history_panel.py,401 行)
- 按图纸号/客户/日期范围搜索
- 点击行展开完整工序明细(快照还原)
- 支持从历史记录重新导出 Excel/Word
- 历史记录快照:
process_detail_json + geometry_info_json,不受参数变更影响
5.8 多工件报价清单(quote_list_panel.py,349 行)
- 手动添加多行工件(零件名/材质/数量/单价等)
- 汇总合计金额、自动生成报价单号
- 导出完整的多工件报价清单 Excel/Word
5.9 参数维护(settings_panel.py,922 行)
- 材料库:增删改查,7 种预置材料(铝6061/T6、钢45#、冷拉钢、不锈钢304、灰铸铁、黄铜)
- 工序参数:11 道工序单价 + 工时系数调整
- 辅材费:20 种辅材,勾选/自定义,默认选中电费分摊+清洗
- 定额系数:30+ 条定额公式系数,支持修改 + 一键恢复默认值
- 全局参数:税率/管销费率/利润率/余量系数/碳排放系数
- OCR 配置:OpenVINO 加速开关(持久化到 DB meta 表)
5.10 CLI 模式(cli_runner.py,399 行)
复制代码
QuoteApp.exe --cli --help
QuoteApp.exe --cli --list-materials
QuoteApp.exe --cli --input file.step --output ./quotes
QuoteApp.exe --cli --input ./drawings --batch --format excel
六、代码规模统计
6.1 各模块代码行数
| 分类 |
文件 |
行数 |
| 入口 |
main.py |
116 |
| 核心层 |
geometry_extractor.py |
1,729 |
|
process_engine.py |
238 |
|
cost_calculator.py |
229 |
|
quote_generator.py |
1,256 |
|
quota_formulas.py |
254 |
|
batch_extractor.py |
214 |
|
cli_runner.py |
399 |
|
preview_engine.py |
445 |
| 核心层小计 |
9 个文件 |
4,764 |
| 数据层 |
database.py |
141 |
|
material.py |
119 |
|
process_param.py |
224 |
|
quote_record.py |
236 |
| 数据层小计 |
4 个文件 |
720 |
| UI 层 |
main_window.py |
126 |
|
quote_panel.py |
1,213 |
|
batch_quote_panel.py |
983 |
|
history_panel.py |
401 |
|
settings_panel.py |
922 |
|
process_table.py |
257 |
|
preview_panel.py |
616 |
|
gl_3d_widget.py |
649 |
|
dxf_2d_widget.py |
201 |
|
quote_list_panel.py |
349 |
|
theme.py |
479 |
| UI 层小计 |
11 个文件 |
6,196 |
| 测试 |
smoke_test.py |
116 |
|
test_cost_calculator.py |
158 |
|
test_geometry_extractor.py |
118 |
|
test_quota_formulas.py |
168 |
|
test_ui_layout.py |
88 |
| 测试小计 |
5 个文件 |
648 |
| 🔢 项目总计 |
29 个 .py 文件 |
12,444 行 |
6.2 代码构成比例
复制代码
核心层 38.3% ████████████████████████
UI 层 49.8% ███████████████████████████████
数据层 5.8% ████
测试 5.2% ███
入口 0.9% █
七、关键设计决策
7.1 图纸解析降级策略(三级)
复制代码
Level 1(最优):pythonOCC 解析 STEP → 精确几何特征
↓ 失败或 STL/OBJ
Level 2(备选):trimesh 解析 → 包围盒/体积/面积(无孔特征)
↓ 2D 文件
Level 3(降级):PaddleOCR + ezdxf → 文字标注提取(误差±30%,提示用户)
7.2 历史快照设计
quote_records 表存储三类快照,确保历史报价不受后续参数变更影响:
process_detail_json:当时的完整 11 道工序明细
geometry_info_json:当时的几何特征数据
- 材料单价/税率等直接存储数值,不引用外键
7.3 手工覆写标识
工序工时或费用被手工修改后:
- UI 单元格背景变为绿色
is_manual_override = True 标记
- 覆写工时 → 自动重算当前工序费用
- 任意覆写 → 触发整体报价汇总重算
- 重新上传图纸 → 清除所有覆写标记
7.4 UI 线程安全
所有耗时操作(图纸解析、批量计算)通过 QThread 异步执行,通过 pyqtSignal 将结果传递回主线程,保证 UI 不卡冻。
7.5 报价锁定机制
导出成功后 is_locked = True,防止报价数据被事后篡改;需修改时必须新建报价或二次确认解锁。
7.6 OpenVINO 自动检测
geometry_extractor.py 中 _detect_openvino() 自动探测 OpenVINO 是否可用:
- 可用 →
use_onnx=True 后端(CPU 硬件加速)
- 不可用 → 回退
enable_mkldnn=True(软件优化)
- 用户可在设置面板手动开关,持久化到 DB
八、UI 布局说明
8.1 主窗口(1200×800 最小尺寸)
复制代码
┌─────────────────────────────────────────────────────────────────┐
│ 附图报价助手 v1.0 [报价工作台][批量报价][历史记录][报价清单][参数维护]│
├─────────────────────────────────────────────────────────────────┤
│ [报价工作台] --- 三列 QSplitter(Horizontal) │
│ ┌──────────────┬─────────────────────────┬──────────────────┐ │
│ │ 左侧控制区 │ 中间:3D预览 + 工序明细 │ 右侧:费用汇总 │ │
│ │ 文件拖拽区 │ ─────────────────────── │ 材料费:¥xx.xx │ │
│ │ 材质选择 │ [3D 渲染区] │ 加工费:¥xx.xx │ │
│ │ 数量/热处理 │ ─────────────────────── │ 含税单价:¥xx │ │
│ │ 表面处理 │ 序号|工序|时长|成本|单价 │ [导出Excel] │ │
│ │ [开始计算] │ │ [导出Word] │ │
│ └──────────────┴─────────────────────────┴──────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
8.2 批量报价面板(左右 QSplitter + 可折叠信息面板)
复制代码
┌─────────────────────────────────────────────────────────────────┐
│ [批量报价] 标题栏 [添加文件][清空][开始解析] [报价信息 ◀/▶] │
├───────────────────────────────────────┬─────────────────────────┤
│ 左侧主区(弹性) │ 右侧报价信息(300px,可折叠)│
│ [文件拖拽区] │ 客户名称: │
│ 解析进度: ████████████░ 7/10 │ 收货地址: │
│ ┌─────────────────────────────────┐ │ 付款方式: │
│ │ 序号|文件名|零件|材质|数量|单价...│ │ 物流费: 0.00 元 │
│ │ ... │ │ │
│ └─────────────────────────────────┘ │ │
│ 共 N 件工件 | 合计金额:¥xxx.xx │ │
│ [移除选中] [批量计算报价][导出Excel][导出Word] │
└───────────────────────────────────────┴─────────────────────────┘
九、测试覆盖
| 测试文件 |
覆盖内容 |
用例数 |
test_cost_calculator.py |
成本链公式、税率边界、材料费计算 |
15 |
test_geometry_extractor.py |
几何解析降级逻辑、孔径分段统计 |
12 |
test_quota_formulas.py |
车床/钻床/磨床定额公式正确性 |
18 |
test_ui_layout.py |
QuotePanel/BatchPanel Splitter 布局验证 |
8 |
smoke_test.py |
集成冒烟测试(in-memory DB,完整报价流程) |
--- |
| 合计 |
--- |
53 个单元测试 + 冒烟测试 |
最近验证结果:53 个单元测试全部通过;冒烟测试 PASSED。
十、打包与部署
10.1 构建命令
bash
复制代码
cd d:\QuoteApp
python -m PyInstaller build.spec --noconfirm
10.2 构建规格(build.spec 关键配置)
| 配置项 |
值 |
| 入口文件 |
main.py |
| 控制台模式 |
console=True(支持 --cli 参数) |
| 打包方式 |
目录模式(COLLECT,含所有 DLL/pyd) |
| 隐式导入 |
PyQt6.QtOpenGL, QtOpenGLWidgets, OpenGL, src.core.cli_runner, paddleocr, openvino 等 |
| 产物路径 |
dist\QuoteApp\QuoteApp.exe |
| 文件大小 |
49.6 MB |
10.3 运行方式
复制代码
# GUI 模式
QuoteApp.exe
# CLI 模式
QuoteApp.exe --cli --help
QuoteApp.exe --cli --input drawing.step --output ./output
QuoteApp.exe --cli --input ./drawings_folder --batch --format excel
QuoteApp.exe --cli --list-materials
十一、已知局限与后续扩展建议
11.1 当前局限
| 局限 |
说明 |
| 孔深推断不精确(2D 图纸) |
默认孔深 = 孔径 × 2,2D 模式误差 ±30% |
| 复杂曲面/自由曲面工时 |
当前公式对复杂曲面误差偏大(>35%),建议手工覆写 |
| 螺纹孔攻丝工时 |
已实现基础公式,但螺纹规格需从标注识别(偶有遗漏) |
| 云端协同 |
本期仅本地 SQLite,不支持多用户/多端同步 |
| 模型识别范围 |
超大件(>1m)或极微型件(<1mm)精度下降 |
11.2 后续扩展建议(优先级排序)
- 公差智能解析:从 STEP GD&T 属性或 PDF 标注识别形位公差,自动设置检测工时系数
- 历史报价相似检索:基于几何特征向量的相似件快速匹配(KNN/余弦相似度)
- 报价准确率反馈:支持录入实际加工成本,自动校准定额系数(闭环优化)
- MES/ERP 导出接口:预留 REST API 或 CSV 标准格式导出钩子
- 云端参数同步:多台机器共享材料库和定额系数(可选)
- NC 代码时间估算:解析 G 代码文件(.nc/.tap),根据刀路长度精确估算切削时间
十二、规格文档索引
| 文档 |
内容 |
路径 |
| REQUIREMENT.md |
功能需求(FR/NFR)、用户故事、边界定义 |
项目根目录 |
| DESIGN.md |
技术架构、数据模型、核心类图、工时模型 |
项目根目录 |
| QUOTA_ENGINE_DESIGN.md |
工时定额手册集成方案、公式参数 |
项目根目录 |
| BUSINESS_RULES.md |
R1~R5 全业务规则伪代码(孔径分段、复杂度评分、报价链等) |
项目根目录 |
| UML_MODELS.md |
UML 类图、ER 图 |
项目根目录 |
| PROCESS_FLOWS.md |
业务流程图(Mermaid 序列图) |
项目根目录 |
| TASK_PLAN.md |
开发任务拆解与里程碑 |
项目根目录 |
| QUICK_START_README.md |
快速启动指南 |
项目根目录 |
| 全链路开发项目总结报告0327.md |
开发过程回顾(v0.1 基础版) |
项目根目录 |
| 项目总结032901.md |
v0.2 打包阶段总结 |
项目根目录 |
| 本文档 |
v1.0 完整项目综合总结(截止 2026-03-31) |
项目根目录 |
十三、变更日志(主要里程碑)
| 日期 |
版本 |
主要变更 |
| 2026-03-27 |
v0.1 |
完成核心框架(几何提取/工艺推断/成本核算/导出/UI);53 个单元测试通过 |
| 2026-03-28 |
v0.1.1 |
补全报价单字段(表头+工件清单);签章图片选择 |
| 2026-03-29 |
v0.2 |
多工件报价清单 Tab;DWG 支持;批量报价面板;首次打包为 exe(49.6 MB) |
| 2026-03-30 |
v0.3 |
批量报价 DropZone UI 优化;DWG E009 错误修复;材质识别关联修复;OCR 配置面板;OpenVINO 自动检测 |
| 2026-03-31 |
v0.4 |
3D/2D 预览功能(QOpenGLWidget Phong 渲染 + DXF 线框 + 尺寸标注);GUI+CLI 双模式架构;材质识别全链路增强;批量报价面板左右 Splitter 重构(可折叠报价信息面板);重打包 |