附图报价系统设计分析6

报告核心发现速览

维度关键数据
项目规模129个Python文件,37,261行代码,50个MD文档16,397行
开发周期2026-03-27 ~ 2026-05-01,共 36天,70次提交
UI占比src/ui/ 16,737行,占总代码 44.9%,是最大模块
最大文件gl_3d_widget.py 2,316行 / geometry_extractor.py 1,915行
提交节奏前7天密集开发(日均5~7次),后转为修复打磨期
测试覆盖仅7个测试文件1,000行,覆盖率远低于37K行源码

六大核心子系统

图纸解析(7格式·3级回退) → 预览引擎(3级OpenGL) → 成本核算(13步公式链) → 语义解析(GDT/焊缝/标题栏) → AI推理(Gemma本地+百炼云端) → 报价生成(Excel/Word)

三大核心风险

①单一main分支开发无特性分支
②gl_3d_widget单体2,316行
③测试覆盖率严重不足

报告包含了完整的 迭代路线图建议(短期重构→中期语义增强→长期多租户云端化),可直接用于后续开发排期。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


目录

  1. 业务模型分析
  2. 需求清单(可追溯)
  3. 系统架构设计
  4. 功能清单与模块映射
  5. 代码规模全景
  6. 侧端推理链路
  7. 模型特征分析
  8. Git 日志可视化与分析
  9. 风险与优化建议
  10. 迭代路线图建议

一、业务模型分析

1.1 业务定位

QuoteApp 是一款面向中小机加工企业桌面级 CAD 智能报价工具,核心价值是将"人工看图→手工报价"的传统流程升级为"图纸上传→AI 自动核算→导出报价单"的数字化链路。

1.2 目标用户画像

用户类型规模核心痛点使用频次
中小机加工厂报价员5~50人依赖老师傅、报价周期2~3天每日
大型制造企业工艺工程师个人缺乏快速核算工具每周
销售/采购人员个人成本"黑盒",无法拆解费用明细按需

1.3 业务价值链

客户发来图纸
    ↓
上传 STEP/STL/PDF/DXF/DWG
    ↓
自动解析几何特征(体积、表面积、孔径分布、复杂度)
    ↓
工艺推断引擎 → 11道工序工时计算
    ↓
成本核算(材料费→加工费→管销费→利润→税费→含税价)
    ↓
校对与手工覆写 → 确认报价
    ↓
导出 Excel/Word 报价单
    ↓
回复客户

1.4 行业对标分析

对标系统类型QuoteApp 差异化定位
HCB 成本报表Excel 表单工具自动化替代人工填表
开目 3DDFC国产 CAD 报价软件轻量化 + 桌面部署(无需服务器)
meviy(米思米)日本云端 AI 报价离线可用,数据本地存储
寸铁应用平台工业 AI SaaS单 exe 分发,零部署成本

1.5 商业模型推断

  • 价值主张:将 2~3 天报价周期缩短至 30 分钟内,无需资深工艺师
  • 收入来源:未明确(推测为企业内部工具 / 打包销售 / 配套工业品电商平台)
  • 交付模式:单 EXE 绿色分发(690MB),CLI 支持批量处理
  • 竞争壁垒:11道工序工时定额公式库 + 三级回退解析链 + 双 AI 引擎

二、需求清单(可追溯)

2.1 功能需求(FR)

编号名称描述优先级状态对应文件
FR-01-13D文件上传STEP/STP/STL/OBJ 解析P0✅ 完成geometry_extractor.py
FR-01-22D图纸上传PDF/DXF/DWG 解析P1✅ 完成geometry_extractor.py
FR-01-3拖拽上传拖拽文件到界面P1✅ 完成quote_panel.py
FR-01-4包围盒提取L×W×H/直径(mm)P0✅ 完成geometry_extractor.py
FR-01-5体积表面积自动计算 mm³/mm²P0✅ 完成geometry_extractor.py
FR-01-6孔径分布统计11段区间分类P0✅ 完成geometry_extractor.py
FR-01-7工艺特征识别平面/凹槽/圆角/螺纹P1✅ 完成geometry_extractor.py
FR-01-83D 线框预览OpenGL 渲染展示P2✅ 完成gl_3d_widget.py
FR-02-1内置材料库铝/钢/不锈钢等P0✅ 完成material.py
FR-02-2材料属性密度/单价P0✅ 完成material.py
FR-02-3表面处理选项阳极氧化/镀铬/发黑等P0✅ 完成quote_panel.py
FR-02-4热处理选项调质/淬火/渗碳等P0✅ 完成heat_treat_widget.py
FR-02-5自定义材料用户新增材料P1✅ 完成settings_panel.py
FR-02-6编辑材料单价修改市场单价P0✅ 完成settings_panel.py
FR-03-1编程工时基于复杂度评分P0✅ 完成quota_formulas.py
FR-03-2调机(准终时间)查表法P0✅ 完成quota_formulas.py
FR-03-3空乘(装卸)时间基于重量G公式P0✅ 完成quota_formulas.py
FR-03-4热处理净重×单价P0✅ 完成cost_calculator.py
FR-03-5线切割参考插床公式P0✅ 完成quota_formulas.py
FR-03-6孔加工D/L/K材料系数P0✅ 完成quota_formulas.py
FR-03-7粗车/铣/磨基于D/L/K光洁度P0✅ 完成quota_formulas.py
FR-03-8精车/铣/磨基于F/h/形位公差P0✅ 完成quota_formulas.py
FR-03-9检测工时公差特征数×系数P0✅ 完成quota_formulas.py
FR-03-10包装固定费用/重量P1✅ 完成quota_formulas.py
FR-03-11表面处理基于F面积P0✅ 完成cost_calculator.py
FR-04-1~11费用汇总链13步公式链P0✅ 完成cost_calculator.py
FR-05-1批量报价多零件上传P1✅ 完成batch_quote_panel.py
FR-05-2报价单字段14列标准字段P0✅ 完成quote_generator.py
FR-05-3导出 Excel.xlsx 对齐 HCBP0✅ 完成quote_generator.py
FR-05-4导出 Word.docx 格式P1✅ 完成quote_generator.py
FR-05-5历史报价存储SQLite 本地存储P0✅ 完成quote_record.py
FR-05-6历史报价查询按日期/图号/客户P0✅ 完成history_panel.py
FR-05-7历史重新导出从历史记录导出P1✅ 完成history_panel.py
FR-06-1材料库管理CRUD 操作P0✅ 完成settings_panel.py
FR-06-2工序单价配置元/H 可配置P0✅ 完成settings_panel.py
FR-06-3工时系数配置支持微调校准P0✅ 完成settings_panel.py
FR-06-4辅材费用清单20+ 种辅料P1✅ 完成auxiliary_cost.py
FR-06-5税率/管销/利润率全局配置P0✅ 完成settings_panel.py
FR-03-N1~N4定额系数校准手册系数可调P1✅ 完成quota_formulas.py

2.2 非功能需求(NFR)

编号类型描述状态
NFR-01性能STEP <10MB 后台解析,报价响应<3秒✅ 完成
NFR-02离线可用全程本地运行,无需联网✅ 完成(含本地 Gemma 模型)
NFR-03兼容性Windows 10/11 64位✅ 完成
NFR-04可安装单EXE绿色安装✅ 完成(PyInstaller,~690MB)
NFR-05数据安全本地 SQLite 存储✅ 完成
NFR-06可维护UI界面可调参数✅ 完成
NFR-07估算精度常规件<20%,复杂件<35%⚠️ 待验证
NFR-08易用性核心流程≤5步✅ 完成

2.3 AI 增强需求

编号名称描述状态
AI-01工艺路线规划Gemma-4-E2B 本地推理✅ 完成
AI-02工序工时估算Gemma-4-E2B 本地推理✅ 完成
AI-03工艺对话阿里百炼 Qwen-Plus(SSE流式)✅ 完成
AI-04Ollama 本地模型支持替代百炼✅ 完成
AI-05标题栏验证Gemma 4 验证 Level 0✅ 完成
AI-06材质语义理解Gemma 4 语义增强✅ 完成
AI-07技术要求分类Gemma 4 智能分类✅ 完成

2.4 本文档未覆盖的需求增量(实际已完成)

增量功能说明
ViewCube CAD 导航3D 方位体交互控件
CAD 工具栏测量/孔分布/标注/导出
2D DXF 显示独立的 DXF 预览控件
工艺可视化工序流程图可视化
语义审查对话框AI 解析结果审查
语义参数配置三级回退策略配置
反向标注背部标注面板
粗糙度/形位公差/热处理控件独立 UI 组件
模型树3D联动选中节点联动高亮
CLI 无头模式命令行批量处理

三、系统架构设计

3.1 六层架构总览

┌──────────────────────────────────────────────────────────────────────┐
│                          UI 层(PyQt6,16,737行)                      │
│  MainWindow · QuotePanel · BatchQuotePanel · HistoryPanel            │
│  SettingsPanel · PreviewPanel · Gl3DWidget · ViewCube · CAD 工具栏   │
│  SemanticReview · SemanticSettings · AI Chat · 工艺表格/可视化        │
├──────────────────────────────────────────────────────────────────────┤
│                     业务逻辑层(core/,7,410行)                       │
│  GeometryExtractor → ProcessEngine/V2 → CostCalculator               │
│  ←→ QuotaFormulas (定额手册公式库) → QuoteGenerator                    │
│  DrawingExporter · BatchExtractor · PreviewEngine · CliRunner         │
├──────────────────────────────────────────────────────────────────────┤
│                    语义解析层(core/semantic/,3,202行)                │
│  SemanticExtractor · GDTDetector · WeldDetector · TechReqParser      │
│  TitleBlockParser · OcrUtils · Gemma4Validator · AliyunValidtor      │
├──────────────────────────────────────────────────────────────────────┤
│                    数据模型层(models/,837行)                         │
│  Material · ProcessParam · QuoteRecord · AuxiliaryCost · Database    │
│  QuotaFormulaParam (定额系数)  [SQLAlchemy 2.0 ORM]                  │
├──────────────────────────────────────────────────────────────────────┤
│                    持久化层(SQLite)                                  │
│  6张核心表:materials / quote_records / process_params                │
│  quota_formula_params / auxiliary_costs / weld_annotations           │
├──────────────────────────────────────────────────────────────────────┤
│                    文件输入/输出层                                     │
│  输入:STEP/STL/OBJ/PDF/DXF/DWG/ZIP                                  │
│  输出:Excel(.xlsx) / Word(.docx)                                    │
└──────────────────────────────────────────────────────────────────────┘

3.2 核心数据流

文件上传 ─→ 格式检测 ─→ 三级回退解析链 ─→ GeometryFeatures
                                                  ↓
                                       13步成本公式链
                                           ↓
                                    11道工序工时分配
                                           ↓
                                    报价汇总(含税/不含税)
                                           ↓
                                  Excel/Word 导出或历史存储

3.3 图纸解析回退链(7种格式·3级回退)

STEP   → pythonOCC → trimesh → 正则提取
STL    → trimesh 直接加载
OBJ    → trimesh 直接加载
PDF    → pymupdf 矢量 → PaddleOCR → pdfplumber
DXF    → ezdxf 直接解析
DWG    → ODA (Open Design Alliance) → DXF → ezdxf
ZIP    → 自动解压 → 逐文件处理

3.4 三级 OpenGL 渲染架构

级别API着色特性触发条件
PrimaryOpenGL 3.3 CorePhong + 半球环境光 + 边缘光 + 菲涅尔 + GammaGPU 支持 GL 3.3
SecondaryOpenGL 2.1 (GLSL 120)标准 PhongGPU 仅支持 GL 2.1
FallbackQPainter 软件渲染线框模式无 GPU / 远程桌面
3.4. 1. QuoteApp 与 OpenCASCADE (OCCT) 架构关联度分析报告核心结论

QuoteApp 不是基于 OCCT 构建的 CAD 软件,而是一个机械零件报价辅助工具。它与 OCCT 的关系是单向读取——仅利用 OCCT 的数据读取能力提取几何特征(尺寸、体积、孔径),用于报价计算,不使用 OCCT 的任何建模、编辑、渲染能力


3.4.2. OCCT 七层架构 vs QuoteApp 对照
OCCT 层级OCCT 能力QuoteApp 对应关联度
① Foundation Classes内存管理(handles 智能指针)、跨平台可移植性❌ 无对应0% — QuoteApp 用 Python GC
② Modeling DataB-Rep 拓扑 (TopoDS)、几何/曲面数据结构⚠️ 仅读取15% — pythonOCC 路径遍历 Face/Edge 提取孔径,但不维护拓扑
③ Modeling Algorithm布尔运算、倒角、偏移、填充❌ 完全不用0% — 报价工具不需要建模
③ MeshBRepMesh 三角化⚠️ 间接使用10% — pythonOCC 的 BRepMesh_IncrementalMesh 仅作为 STEP→三角网格的转换桥梁
④ OCAF文档-视图架构、Undo/Redo、持久化❌ 无对应0% — QuoteApp 用 SQLite + 自研 UI
⑤ Data ExchangeSTEP/IGES/STL 读写关键依赖40% — STEP 读取是核心功能之一
⑥ Visualization3D 渲染、视图管理、选择高亮❌ 无对应0% — QuoteApp 自研 OpenGL 渲染器(三级降级)
⑦ GUI FrameworkQt/MFC/.NET 集成❌ 独立使用 PyQt60% — 直接用 PyQt6,不走 OCCT 的 Qt 集成层

3.4.3. 实际代码中的 OCCT 依赖点

QuoteApp 通过 pythonocc-core(Python 绑定)间接使用 OCCT,涉及以下模块:

OCCT 模块QuoteApp 用途关键文件
STEPControl_ReaderSTEP 文件读取preview_engine.pygeometry_extractor.py
BRepGProp体积/面积精确计算geometry_extractor.py
BRepMesh_IncrementalMeshB-Rep → 三角网格(仅用于 3D 预览)preview_engine.py
TopExp_Explorer遍历 Face/Edge 拓扑geometry_extractor.py
BRepAdaptor_Surface曲面类型判断(识别圆柱面→孔)geometry_extractor.py
Bnd_Box / BRepBndLib包围盒计算geometry_extractor.py

关键特征: 所有 OCCT 调用都在 try/except ImportError 内,是可选路径。主路径使用 cascadio(纯 Python 封装)或 trimesh


3.4.4. QuoteApp 自研替代了 OCCT 的哪些层
OCCT 能力QuoteApp 的替代方案
Visualization(渲染器)GL3DWidget:自研 OpenGL 3.3/2.1/软件三级降级渲染器(1535行),含 Blinn-Phong 三光源、菲涅尔轮廓光、ViewCube
Modeling Data(数据结构)MeshData:纯三角网格(vertices+normals+indices numpy 数组),无 B-Rep
GUI FrameworkPyQt6:独立于 OCCT,自研 PreviewPanel、QuotePanel 等
数据交换(写出)❌ 暂无 CAD 格式导出(DXF/PDF 导出在 Phase 2/3 计划中)
标注系统DimAnnotation + QPainter 叠加层:自研 3D 尺寸标注(ISO/ASME 箭头)
语义解析SemanticExtractor:GDT 形位公差检测、粗糙度、焊接符号、标题栏解析

3.4.5. 综合关联度评分
维度评分说明
数据交换(读取)⭐⭐⭐⭐☆STEP 读取是核心功能,但用 cascadio 主路径
几何内核⭐⭐☆☆☆pythonOCC 仅做读取+测量,不做建模
可视化⭐☆☆☆☆完全自研,与 OCCT Visualization 无关
应用框架⭐☆☆☆☆完全自研
建模能力☆☆☆☆☆无布尔运算、倒角、偏移等
GUI 集成☆☆☆☆☆独立 PyQt6,不走 OCCT Qt 层

总体关联度:约 15% — QuoteApp 只"消费"了 OCCT 数据交换层的一小部分(STEP 读取),其他 85% 完全自研或使用其他库(trimesh、ezdxf、PyMuPDF、PaddleOCR)。


3.4.6. 技术栈对比一览
维度OCCT 架构QuoteApp 实现
语言C++Python 3.13
几何内核B-Rep(精确几何)三角网格(近似几何)
建模能力布尔运算/倒角/偏移/扫掠无(只读)
数据格式STEP/IGES/STL/VRML读取 STEP/DXF/PDF,无写出
渲染OpenCascade Visualization自研 OpenGL(三级降级)
UI 框架Qt/MFC/.NET 抽象层PyQt6(直接使用)
数据持久化OCAF 文档模型SQLite
OCRPaddleOCR / OpenVINO
AI 能力Gemma4 本地 LLM

3.4.7. 架构关系图
┌─────────────────────────────────────────────────┐
│                  QuoteApp 应用层                  │
│  报价引擎 │ OCR 语义解析 │ 3D 标注 │ AI 辅助     │
├─────────────────────────────────────────────────┤
│              PyQt6 GUI(自研面板系统)              │
├──────────────┬──────────────────────────────────┤
│   自研       │        第三方依赖                   │
│ GL3DWidget  │  trimesh │ ezdxf │ PyMuPDF        │
│ (OpenGL)     │  cascadio │ PaddleOCR             │
├──────────────┴──────────────────────────────────┤
│          pythonocc-core(可选路径)                 │
│   ┌──────────────────────────────────────────┐   │
│   │   OCCT Data Exchange ◄── STEP 读取       │   │
│   │   OCCT Mesh          ◄── BRep 三角化     │   │
│   │   OCCT Modeling Data ◄── 拓扑遍历        │   │
│   │   OCCT Foundation     ◄── 基础类         │   │
│   └──────────────────────────────────────────┘   │
├─────────────────────────────────────────────────┤
│              Python 3.13 + SQLite                │
└─────────────────────────────────────────────────┘

3.4.8. 小结

QuoteApp 是 OCCT 生态的下游消费者,不是上层应用。它从 OCCT "吸"了一根管子(STEP 文件读取),但自己搭建了完整的渲染引擎、标注系统、语义解析和报价引擎。

如果要升级 OCCT 关联度(比如增加建模编辑能力),需要引入 BRep 建模 API,这是一个架构级别的变化

3.5 13步成本公式链

净重 = 体积 × 密度
    → 用料重量 = 净重 × 1.15(余量系数)
        → 材料费 = 用料重量 × 单价
            → 加工费 = Σ(11道工序成本)
                → 辅助费 = 用户勾选辅料合计
                    → 产品成本 = 材料费 + 加工费 + 辅助费
                        → 管销费 = 产品成本 × 2.88%
                            → 利润 = 产品成本 × 13%
                                → 不含税价 = 产品成本 + 管销费 + 利润
                                    → 税额 = 不含税价 × 13%增值税
                                        → 含税单价 = 不含税价 + 税额
                                            → 含税总额 = 含税单价 × 数量

3.6 数据库 ER 核心关系

materials (材料库, 19种预设)
    ↑ FK
quote_records (报价记录, 含几何JSON/工序JSON快照)
    ↑ FK
weld_annotations (焊缝标注, 独立表)

process_params (21道工序参数, DB可校准)
quota_formula_params (31个定额公式系数, 用户可调)
auxiliary_costs (20项辅材费用)

四、功能清单与模块映射

4.1 六大核心子系统

#子系统核心文件代码行数功能描述
1图纸解析引擎geometry_extractor.py1,9157种格式·三级回退·几何特征提取
2预览引擎preview_engine.py + gl_3d_widget.py + view_cube_widget.py3,662三级OpenGL·ViewCube·2D/3D
3成本核算引擎cost_calculator.py + process_engine.py + process_engine_v2.py + quota_formulas.py2,43313步公式链·11道工序·定额手册系数
4语义解析引擎semantic/ 9个文件3,202GDT·焊缝·粗糙度·标题栏·技术要求
5AI 推理引擎gemma4_validator.py + aliyun_bailian_validator.py1,108Gemma本地·百炼云端·Ollama
6报价生成引擎quote_generator.py1,256Excel 14列·Word 6区·单件+批量

4.2 UI 组件全景(31个文件,16,737行)

模块文件行数功能
3D 视图gl_3d_widget.py2,316OpenGL 三级渲染,Arcball 交互
报价面板quote_panel.py1,588单件报价编辑工作台
设置面板settings_panel.py1,232全局参数配置
预览面板preview_panel.py1,1942D/3D 混合预览
批量报价batch_quote_panel.py983多工件批量处理
聊天组件chat_components.py848Markdown 渲染、气泡组件
AI 聊天ai_chat_panel.py824大模型对话界面
增强预览enhanced_preview_panel.py693增强型预览面板
ViewCubeview_cube_widget.py563CAD 风格 3D 导航
主题系统theme.py479应用主题定义
软件3Dsoftware_3d_widget.py479软件渲染回退
模型树model_tree_widget.py395树形结构+3D联动
历史面板history_panel.py401报价历史查询
工艺表格process_table.py~350工序编辑表格
语义审查semantic_review_dialog.py~350语义解析审核
主窗口main_window.py~350Tab 布局/主题/DB 初始化
CAD 工具栏cad_toolbar.py~300测量/标注/导出
2D 预览dxf_2d_widget.py~300DXF 图纸显示
热处理heat_treat_widget.py402热处理选择
尺寸列表dim_list_widget.py408尺寸标注列表

4.3 语义解析模块全景(10个文件)

模块检测内容检测策略精度策略
GDT 检测14种 GD&T 符号YOLOv8 → OpenCV → 正则(三级)
焊缝检测7种焊缝类型YOLOv8 → OpenCV → 正则(三级)
粗糙度检测Ra/Rz 数值正则匹配
标题栏解析图号/名称/材料/比例/日期PaddleOCR表格 → 向量 → 正则(三级)
技术要求解析热处理/涂层/检验规则引擎 + AI 智能分类

4.4 打包与部署功能

功能说明
PyInstaller 打包6.19.0,单 EXE
zipapp 打包__main__.py 入口
CLI 无头模式--cli --input --output --batch
UPX 压缩启用
排除大依赖torch/paddlepaddle/scipy 等
控制台模式console=False 纯窗口

五、代码规模全景

5.1 全局统计

统计项数值
项目总文件数(源码)278
Python 文件数(项目源码)129
Python 代码总行数37,261
Markdown 文档数50
Markdown 文档总行数16,397
Git 提交数70
代码变更+45,421 / -722(212 files changed)

5.2 按目录代码分布

目录.py 文件数代码行数占比
核心源码 src/6128,18675.6%
├─ src/ui/3116,73744.9%
├─ src/core/137,41019.9%
├─ src/core/semantic/103,2028.6%
└─ src/models/68372.2%
根目录(打包/测试脚本)546,21916.7%
tests/71,0002.7%
scripts/automation/51,6214.3%
hooks/ + migrations/22350.6%
合计12937,261100%

5.3 最大源文件 TOP 15

排名文件行数模块归属
1src/ui/gl_3d_widget.py2,316UI-3D渲染
2src/core/geometry_extractor.py1,915核心-图纸解析
3src/ui/quote_panel.py1,588UI-报价面板
4src/core/quote_generator.py1,256核心-报价生成
5src/ui/settings_panel.py1,232UI-设置面板
6src/ui/preview_panel.py1,194UI-预览面板
7src/ui/batch_quote_panel.py983UI-批量报价
8src/core/cost_calculator.py877核心-成本核算
9src/ui/chat_components.py848UI-聊天组件
10src/ui/ai_chat_panel.py824UI-AI对话
11src/core/preview_engine.py783核心-预览引擎
12src/ui/enhanced_preview_panel.py693UI-增强预览
13src/core/semantic/title_block_parser.py655语义-标题栏
14src/core/semantic/aliyun_bailian_validator.py567语义-百炼API
15src/ui/view_cube_widget.py563UI-ViewCube

5.4 代码复杂度分析要点

  • UI 层占比 44.9%,是整个项目最庞大的模块,表明 PyQt6 开发效率较高但 UI 逻辑占比大
  • gl_3d_widget.py(2,316行)是单体最大文件,建议未来拆分
  • geometry_extractor.py(1,915行)承载7种格式解析逻辑,复杂度高,建议按格式拆分
  • core/semantic/ 共10个文件但仅3,202行,模块化程度较好
  • models/ 仅837行/6个文件,ORM 设计简洁

六、侧端推理链路

6.1 推理链路总览

PDF/DXF 输入 ──────────────────────────────────────────────────┐
    ↓                                                          │
┌──────────────────────────────────────────────────────────┐   │
│                语义解析链路(全本地推理)                    │   │
│                                                          │   │
│  ① PaddleOCR-Table(文字检测+表格识别)← OpenVINO 加速     │   │
│     ↓                                                    │   │
│  ② Gemma-4-E2B 验证器(Level 0,可选)                    │   │
│     ├─ 标题栏验证:图号/名称/材料/比例                     │   │
│     ├─ 材质语义理解:材料牌号智能匹配                      │   │
│     └─ 技术要求分类:热处理/涂层/检验等                   │   │
│     ↓                                                    │   │
│  ③ YOLOv8(可选)—— 符号检测                              │   │
│     ├─ GDT 检测器:14种形位公差符号                        │   │
│     └─ 焊缝检测器:7种焊缝类型                             │   │
│     ↓ ↓                                                  │   │
│  ④ OpenCV 模板匹配(二级回退)                            │   │
│     ↓ ↓                                                  │   │
│  ⑤ 正则匹配(三级兜底)                                   │   │
│                                                          │   │
└──────────────────────────────────────────────────────────┘   │
    ↓                                                          │
┌──────────────────────────────────────────────────────────┐   │
│              AI 工艺助手链路(混合推理)                     │   │
│                                                          │   │
│  ① 本地推理:Gemma-4-E2B(GGUF, ~2.5GB)                  │   │
│     ├─ llama-cpp-python 加载                              │   │
│     ├─ 工艺路线规划:根据几何特征推断加工工序                │   │
│     └─ 工序工时估算:基于语义理解输出工时                  │   │
│                                                          │   │
│  ② 云端推理:阿里百炼 Qwen-Plus                           │   │
│     ├─ SSE 流式输出(流式追加)                            │   │
│     └─ 工艺知识对话                                       │   │
│                                                          │   │
│  ③ Ollama 本地替代(2026-04 新增)                        │   │
│     └─ 替代百炼 API 的本地部署方案                         │   │
└──────────────────────────────────────────────────────────┘   │
    ↓                                                          │
┌──────────────────────────────────────────────────────────┐   │
│              成本核算链路(纯规则引擎,无AI)                │   │
│  定额手册公式库(31个公式系数,DB可校准)                   │   │
│  输入:GeometryFeatures + 语义字段 → 输出:报价单          │   │
└──────────────────────────────────────────────────────────┘   │
    ↓                                                          │
                       报价单输出(Excel/Word) ◄─────────────────┘

6.2 本地 AI 模型规格

模型规格推理框架存储路径用途
Gemma-4-E2B-it-GGUFQ4_K_M, ~2.5GBllama-cpp-pythonmodels/gemma-4-2b-it-vision-q4_k_m.gguf工艺规划+工时估算+语义验证
PaddleOCR轻量,~20MBPaddleOCR + OpenVINO内置文字检测与表格识别
YOLOv8-GDT(可选)定制,~45MBultralyticsmodels/GDT 符号检测
YOLOv8-WELD(可选)定制,~45MBultralyticsmodels/焊缝符号检测
Ollama 模型用户自选Ollama系统级替代云端推理

6.3 推理性能特征

推理步骤延迟依赖项可选/必需
PaddleOCR(单页)1~3spaddlepaddle-gpu/openvino必需(已打包)
OpenVINO 加速-10~30% 耗时openvino可选
Gemma-4 (2B) CPU 推理2~5s/次llama-cpp-python可选(Level 0)
YOLOv8 检测0.5~2s/页ultralytics可选(未打包)
阿里百炼 API5~15s/次(网络)requests + SSE可选
纯规则引擎核算<0.1s无外部依赖必需

6.4 侧端推理特点总结

  1. 三级回退策略 — 每层推理结果不达标时自动降级,保证高可用性
  2. 全本地推理能力 — PaddleOCR + OpenVINO 可在无 GPU 设备上运行
  3. 双 AI 引擎互补 — Gemma 本地(离线·隐私·低延迟)+ 百炼云端(在线·强能力·流式)
  4. 规则引擎兜底 — 核心报价流程不依赖任何 AI 模型,AI 为增强而非必需
  5. 可选依赖设计 — YOLOv8 / Gemma 等大模型均为 try/except 导入,缺失不影响核心功能

七、模型特征分析

7.1 领域模型概览

模型类型输入输出
GeometryFeatures数据类图纸解析结果核算引擎输入
ProcessItem数据类工艺推断结果工序明细表
QuoteSummary数据类成本核算结果报价单数据
GDTAnnotation数据类GDT 检测语义审核展示
WeldAnnotation数据类焊缝检测语义审核展示
ExtendedGeometryFeatures数据类语义增强解析V2 工艺引擎输入

7.2 数据模型特征

materials (19种预设材料)
├── name/density/price_per_kg/category
└── 预置:铝合金3种 + 碳钢4种 + 不锈钢3种 + 模具钢6种 + 铜合金3种

quote_records (快照设计)
├── drawing_no / part_name / material_id (外键)
├── weight_material_kg / weight_net_kg
├── material_cost / process_cost / aux_cost
├── management_fee / profit / tax_amount
├── unit_price_ex_tax / unit_price_inc_tax
├── process_detail_json (工序快照)
├── geometry_info_json (几何快照)
└── 语义增强字段:tightest_tolerance/ra/has_weld/title_block_json...

process_params (21道工序参数)
├── process_code / name / price_per_hour
├── base_time_coefficient / complexity_factor / formula_type

quota_formula_params (31个定额公式系数)
├── process_code / param_name / param_value (DB可校准)
└── default_value / machine_model / material_type

auxiliary_costs (20项辅材)
├── name / category / unit_price / unit
└── 预置:刀具/冷却液/砂轮/量具/包装等

7.3 模型约束与假设

约束/假设说明影响范围
材料密度为零 → 重量计算异常输入校验报价准确性
手工覆写标记(绿色底色)is_manual_override=True报价一致性
历史快照设计报价时快照存储,不受参数变更影响数据一致性
置信度 < 0.6 → 高亮提示用户手工复核用户体验
利润率校验(<0% 或 >200%)预警提示报价合理性
孔径分段 11 段(HCB 标准)固定分段孔加工工时计算

八、Git 日志可视化与分析

8.1 提交时间线

2026-03-27 ████████████████████████████ 19 commits  (启动+基础框架)
2026-03-28 ████ 4 commits                   (OpenVINO+PaddleOCR)
2026-03-29 █████ 5 commits                  (批量报价+功能优化)
2026-03-30 ███ 3 commits                    (Claw技能调用)
2026-03-31 █████ 5 commits                  (2D/3D显示+OpenGL)
2026-04-01 ████ 4 commits                   (测试优化)
2026-04-02 ██ 2 commits                     (测试优化)
2026-04-04 ███ 3 commits                    (Gemma-4-E2B集成)
2026-04-05 ███ 3 commits                    (AI工艺规划+工时估算)
2026-04-06 ████ 4 commits                   (百炼API+项目总结)
2026-04-11 █ 1 commit                       (测试优化)
2026-04-16 ████ 4 commits                   (ViewCube/CAD工具栏)
2026-04-17-29         (子模块/分离阶段)
2026-04-30 ███ 3 commits                    (模型渲染UI+打包测试)
2026-05-01 ████ 4 commits                   (打包配置+修复)

8.2 月度提交分布

月份提交数关键事件
2026-03 (3月27~31日)20项目启动+基础框架+OpenVINO+PaddleOCR+批量报价
2026-04 (4月)47AI集成+3D优化+语义解析+ViewCube+修复
2026-05 (5月1日)3打包配置最终优化

8.3 提交类型分析

类型数量占比典型提交
测试/问题优化~30~43%“测试问题优化”, “测试验证优化”
功能开发~20~29%“增加Gemma-4-E2B”, “集成OpenVINO”
3D/渲染优化~10~14%“三维渲染测试优化”, “模型渲染问题优化”
AI 集成~6~9%“增加阿里百炼”, “Ollama模型支持”
打包/部署~4~6%“更新打包配置”, “修复打包后运行报错”

8.4 文件变更频率 TOP 10

文件变更次数说明
src/ui/quote_panel.py19报价面板最活跃
src/ui/gl_3d_widget.py193D渲染持续迭代
src/ui/preview_panel.py14预览面板
build.spec14打包配置高频调整
src/ui/settings_panel.py12设置面板
src/core/geometry_extractor.py11图纸解析
src/core/preview_engine.py9预览引擎
setup.py9打包脚本
src/ui/ai_chat_panel.py8AI对话
requirements.txt8依赖管理

8.5 开发节奏特征

  1. 高强度前7天(3/274/2):完成基础框架→OpenVINO→批量报价→Claw→2D/3D显示,日均57次提交
  2. AI 集成阶段(4/4~4/6):3天完成 Gemma-4 下载→集成→工艺规划→百炼API,日均3~4次提交
  3. 修复打磨阶段(4/11~5/1):以测试优化、3D修复、打包问题为主
  4. 单人开发模式:100% commit 来自 david_232656,无协作痕迹
  5. 分支单一:仅 main 分支,所有开发直接在主线进行

九、风险与优化建议

9.1 技术债务清单

风险项严重度说明建议
单一main分支开发🔴 高所有开发直接在主线进行,无feature/develop分支引入 Git Flow 或 Trunk-based 策略
UI层过于庞大🟡 中gl_3d_widget.py (2,316行) 单体过大拆分为 renderer/, interaction/, shader/ 子模块
geometry_extractor.py🟡 中1,915行承载7种格式解析逻辑按格式拆分为独立解析器(step_parser.py, stl_parser.py…)
错误处理统一性🟡 中try/except ImportError 分散在各处抽取统一依赖检测框架
测试覆盖率低🟡 中仅7个测试文件,1,000行,远低于源码规模37K增加单元测试,目标覆盖核心公式链
Windows 路径硬编码🟢 低部分路径处理假设 Windows 环境使用 pathlib 替代字符串拼接
ORM 迁移版本管理🟢 低仅1次迁移(002_add_semantic_fields)引入 Alembic 管理 Schema 版本

9.2 性能风险

风险项描述缓解建议
大 STEP 文件解析>50MB 文件耗时 >30秒增加进度条 + 取消按钮
CPU 推理延迟Gemma 2B CPU 推理 2~5s增加缓存机制,预加载模型
打包体积690MB 分发按功能模块拆分可选组件
多模型内存占用PaddleOCR + OpenVINO + Gemma 同时加载懒加载 + 按需卸载

9.3 功能缺失评估

缺失功能影响建议优先级
DWG 格式 ODA 集成不稳定部分用户图纸无法解析P0
表面粗糙度语义识别影响精加工工时精度±25%P1
形位公差语义识别精密件报价精度不足P1
多用户/权限管理无法区分不同用户的报价P2
MES/ERP 对接接口无法接入工厂上游系统P2
在线采购平台对接无法直连 meviy/怡合达等平台P3

十、迭代路线图建议

10.1 短期修复(2周)

任务目标工作项
代码重构解耦单体文件拆分 gl_3d_widget (2.3K行) → renderer/ + interaction/
拆分 geometry_extractor (1.9K行) → 格式独立解析器
测试强化提升覆盖率至40%+核心公式链单元测试、UI 集成测试
打包优化缩减分发体积按需排除、可选组件分离

10.2 中期增强(1~2月)

任务目标工作项
语义增强 v2提升非3D文件精度表面粗糙度识别、形位公差识别
AI 模型迭代提升推理准确率Gemma 微调 + RAG 知识库嵌入
DWG 解析加固兼容性提升ODA 路径优化 + 错误恢复
批量报价增强批量处理效率多线程解析、ZIP目录批量处理

10.3 长期演进(2~4月)

任务目标工作项
多租户支持多用户数据隔离用户管理 + 权限体系
云端协同数据同步可选云端存储 + 报价共享
Web 版本拓宽平台FastAPI 后端 + Vue 3 前端(配套 digitmold.com)
专业定额扩展行业定制冲压/注塑/铸造定额公式库
MES/ERP 对接企业级集成REST API + WebHook 推送

附录 A:技术栈完整清单

类别技术版本
语言Python3.13 (conda)
GUIPyQt66.6.1
3D 渲染PyOpenGL / OpenGL3.3 Core / 2.1
3D 解析pythonOCC (可选) + trimesh + cascadio-
2D 解析ezdxf + ODA-
PDF 解析pymupdf + pdfplumber-
OCRPaddleOCR + OpenVINO-
数据库SQLite + SQLAlchemy 2.0 ORM2.0+
报表导出openpyxl + python-docx-
本地 AIllama-cpp-python (Gemma-4 GGUF)-
云端 AI阿里百炼 API (Qwen-Plus)-
YOLOultralytics (可选)-
打包PyInstaller6.19.0
数学计算NumPy1.26+
部署形态EXE (~30MB) / 总包 (~690MB)UPX 压缩

附录 B:项目文件索引

类别文件路径
入口__main__.py根目录 (zipapp)
入口main.py根目录 (GUI/CLI双模式)
核心文档DESIGN.md系统架构设计
核心文档REQUIREMENT.md需求分析
核心文档BUSINESS_RULES.md1156行业务规则规范
核心文档QUOTA_ENGINE_DESIGN.md工时定额公式集成设计
总结QuoteApp_项目成果总结.md完整成果总结
总结全链路开发项目总结报告.md中期总结

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐