diff --git a/docs/AI_ENGINE_DESIGN.md b/docs/AI_ENGINE_DESIGN.md new file mode 100644 index 0000000..eff6bd7 --- /dev/null +++ b/docs/AI_ENGINE_DESIGN.md @@ -0,0 +1,316 @@ +# AI 智能引擎设计文档 + +## 一、AI 引擎架构 + +### 1.1 整体架构 +``` +┌─────────────────────────────────────────────────────────┐ +│ AI 智能引擎 │ +├─────────────────────────────────────────────────────────┤ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ +│ │ 参数推荐器 │ │ 缺陷预测器 │ │ 成本估算器 │ │ +│ │ • 工艺参数 │ │ • 熔接痕 │ │ • 模具成本 │ │ +│ │ • 材料选择 │ │ • 缩痕 │ │ • 加工时间 │ │ +│ │ • 模具设计 │ │ • 翘曲 │ │ • 材料成本 │ │ +│ └─────────────┘ └─────────────┘ └─────────────────┘ │ +├─────────────────────────────────────────────────────────┤ +│ AI 模型层 │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ +│ │ 大语言模型 │ │ 机器学习 │ │ 专家系统 │ │ +│ │ • GPT-4 │ │ • 回归模型 │ │ • 规则引擎 │ │ +│ │ • 本地LLM │ │ • 分类模型 │ │ • 知识库 │ │ +│ └─────────────┘ └─────────────┘ └─────────────────┘ │ +├─────────────────────────────────────────────────────────┤ +│ 数据层 │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ +│ │ 几何数据 │ │ 工艺数据库 │ │ 历史案例库 │ │ +│ │ • STP特征 │ │ • 材料参数 │ │ • 成功案例 │ │ +│ │ • 网格数据 │ │ • 机器参数 │ │ • 失败案例 │ │ +│ └─────────────┘ └─────────────┘ └─────────────────┘ │ +└─────────────────────────────────────────────────────────┘ +``` + +## 二、功能模块设计 + +### 2.1 参数推荐器 (ParameterRecommender) + +#### 输入数据 +- 产品几何特征(体积、表面积、壁厚等) +- 材料类型(ABS、PP、PC等) +- 生产要求(产量、质量等级) + +#### 输出参数 +```python +{ + "injection_pressure": 80.0, # 注塑压力 (MPa) + "injection_speed": 50.0, # 注塑速度 (mm/s) + "mold_temperature": 60.0, # 模具温度 (°C) + "melt_temperature": 230.0, # 熔体温度 (°C) + "cooling_time": 25.0, # 冷却时间 (s) + "packing_pressure": 40.0, # 保压压力 (MPa) + "packing_time": 10.0 # 保压时间 (s) +} +``` + +#### 推荐算法 +1. **基于规则的初始推荐** - 使用材料数据库和几何规则 +2. **机器学习优化** - 基于历史数据的回归模型 +3. **LLM智能调整** - 使用大语言模型进行参数微调 + +### 2.2 缺陷预测器 (DefectPredictor) + +#### 预测缺陷类型 +- **熔接痕 (Weld Lines)** - 流道交汇处 +- **缩痕 (Sink Marks)** - 厚壁区域 +- **翘曲 (Warpage)** - 冷却不均匀 +- **气穴 (Air Traps)** - 排气不良 + +#### 预测模型 +```python +class DefectPredictionModel: + def predict_weld_lines(self, geometry, process_params): + """预测熔接痕位置和严重程度""" + + def predict_sink_marks(self, wall_thickness, cooling_params): + """预测缩痕风险""" + + def predict_warpage(self, geometry, material, process_params): + """预测翘曲变形""" +``` + +#### 特征工程 +- 几何特征:壁厚分布、流长比、投影面积 +- 工艺特征:注射速度、压力曲线、温度分布 +- 材料特征:收缩率、粘度、热传导系数 + +### 2.3 成本估算器 (CostEstimator) + +#### 成本构成分析 +```python +{ + "mold_cost": { + "material_cost": 15000, # 材料成本 + "machining_cost": 30000, # 加工成本 + "design_cost": 8000, # 设计成本 + "standard_parts": 5000 # 标准件成本 + }, + "production_cost": { + "cycle_time": 45.0, # 周期时间 (s) + "machine_rate": 120.0, # 机台费率 (元/小时) + "material_cost_per_part": 0.8 # 单件材料成本 + }, + "total_cost": 58000 # 总成本 +} +``` + +## 三、AI 模型选型 + +### 3.1 大语言模型 (LLM) + +#### 云端方案 +- **OpenAI GPT-4** - 高精度,需要网络连接 +- **Azure OpenAI** - 企业级,数据安全 +- **百度文心一言** - 中文优化,本地化服务 + +#### 本地方案 +- **Llama 2/3** - 开源,可本地部署 +- **ChatGLM** - 中文优化,轻量级 +- **Qwen系列** - 阿里开源,性能优秀 + +### 3.2 机器学习模型 + +#### 回归模型(参数预测) +- **XGBoost** - 高性能,可解释性较好 +- **LightGBM** - 快速训练,内存效率高 +- **随机森林** - 稳定,抗过拟合 + +#### 分类模型(缺陷预测) +- **支持向量机 (SVM)** - 小样本效果好 +- **神经网络 (NN)** - 复杂模式识别 +- **集成学习** - 结合多个模型优势 + +### 3.3 专家系统 + +#### 规则库设计 +```python +# rules/injection_molding_rules.py + +MATERIAL_RULES = { + "ABS": { + "melt_temp_range": [200, 240], + "mold_temp_range": [40, 80], + "shrinkage": 0.005 + }, + "PP": { + "melt_temp_range": [200, 280], + "mold_temp_range": [20, 80], + "shrinkage": 0.016 + } +} + +GEOMETRY_RULES = { + "thin_wall": {"max_thickness": 2.0, "min_thickness": 0.5}, + "thick_wall": {"max_thickness": 10.0, "min_thickness": 2.0}, + "flow_length_ratio": 150 # 流长比限制 +} +``` + +## 四、数据管道设计 + +### 4.1 数据采集 + +#### 几何特征提取 +```python +class GeometryFeatureExtractor: + def extract_basic_features(self, stp_file): + """提取基础几何特征""" + features = { + "volume": self.calculate_volume(), + "surface_area": self.calculate_surface_area(), + "bounding_box": self.get_bounding_box(), + "center_of_mass": self.get_center_of_mass() + } + return features + + def extract_advanced_features(self, mesh): + """提取高级几何特征""" + features = { + "wall_thickness_distribution": self.analyze_wall_thickness(), + "curvature_analysis": self.analyze_curvature(), + "undercut_detection": self.detect_undercuts() + } + return features +``` + +#### 工艺数据收集 +- 注塑机参数记录 +- 质量检测数据 +- 生产环境数据 + +### 4.2 数据预处理 + +#### 特征工程 +```python +# features/feature_engineering.py + +class MoldFeatureEngineer: + def create_engineering_features(self, raw_features): + """创建工程特征""" + engineered = { + "flow_length_ratio": raw_features["flow_length"] / raw_features["wall_thickness"], + "projected_area_volume_ratio": raw_features["projected_area"] / raw_features["volume"], + "complexity_index": self.calculate_complexity() + } + return engineered +``` + +#### 数据标准化 +- 数值特征标准化 +- 类别特征编码 +- 缺失值处理 + +## 五、API 接口设计 + +### 5.1 REST API 端点 + +```python +# src/api/ai_routes.py + +@ai_bp.route('/api/ai/analyze', methods=['POST']) +def analyze_mold_design(): + """AI分析模具设计""" + data = request.get_json() + + # 调用AI引擎 + result = ai_engine.analyze_design( + geometry=data['geometry'], + material=data['material'], + requirements=data['requirements'] + ) + + return jsonify(result) + +@ai_bp.route('/api/ai/predict-defects', methods=['POST']) +def predict_defects(): + """预测缺陷风险""" + data = request.get_json() + + prediction = defect_predictor.predict( + design=data['design'], + process_params=data['process_params'] + ) + + return jsonify(prediction) +``` + +### 5.2 实时推理服务 + +#### 模型服务化 +```python +# src/services/ai_service.py + +class AIService: + def __init__(self): + self.parameter_model = load_parameter_model() + self.defect_model = load_defect_model() + self.llm_client = setup_llm_client() + + async def get_recommendations(self, input_data): + """获取AI推荐""" + # 并行调用多个模型 + tasks = [ + self.parameter_model.predict(input_data), + self.defect_model.predict(input_data), + self.llm_client.analyze(input_data) + ] + + results = await asyncio.gather(*tasks) + return self.aggregate_results(results) +``` + +## 六、实施计划 + +### 6.1 第一阶段:基础AI功能(2-3周) +1. 集成LLM API实现参数推荐 +2. 开发基于规则的专家系统 +3. 创建基础的数据采集管道 + +### 6.2 第二阶段:机器学习模型(3-4周) +1. 收集训练数据 +2. 训练参数预测模型 +3. 开发缺陷预测算法 + +### 6.3 第三阶段:优化完善(2-3周) +1. 模型性能优化 +2. 用户反馈集成 +3. 持续学习机制 + +## 七、性能指标 + +### 7.1 模型评估指标 +- **参数推荐准确率** > 85% +- **缺陷预测召回率** > 90% +- **推理响应时间** < 3秒 +- **系统可用性** > 99.5% + +### 7.2 业务价值指标 +- **模具设计时间减少** 30% +- **试模次数减少** 50% +- **产品质量提升** 20% +- **生产成本降低** 15% + +## 八、风险控制 + +### 8.1 技术风险 +- **模型准确性** - 多模型集成,人工审核 +- **数据质量** - 数据清洗和验证流程 +- **系统稳定性** - 熔断机制和降级策略 + +### 8.2 业务风险 +- **用户接受度** - 渐进式推广,培训支持 +- **知识产权** - 数据脱敏,合规使用 +- **成本控制** - 按需使用,优化资源配置 + +--- +*文档版本:v1.0* +*创建日期:2026-02-17* \ No newline at end of file diff --git a/docs/AI_FREECAD_INTEGRATION.md b/docs/AI_FREECAD_INTEGRATION.md new file mode 100644 index 0000000..213d255 --- /dev/null +++ b/docs/AI_FREECAD_INTEGRATION.md @@ -0,0 +1,155 @@ +# AI + FreeCAD 集成方案 + +## 一、项目概述 + +本文档描述 geMoldInsight 项目集成 AI 智能引擎和 FreeCAD 的完整方案,实现真实的模具型腔生成和 G 代码输出功能。 + +## 二、现状分析 + +### 2.1 当前能力 +- PythonOCC 几何内核(解析STP、基础几何分析) +- 简化版模具型腔生成(模拟数据) +- 数据持久化架构(PostgreSQL + RustFS) +- Web API 和可视化界面 + +### 2.2 当前不足 +- 模具型腔生成是简化版,未真正切割型腔/型芯 +- 缺少 G 代码生成功能 +- 缺少 AI 智能优化能力 + +## 三、集成架构 + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ 用户交互层(已有) │ +│ Web UI ←→ REST API ←→ 前端可视化 │ +├─────────────────────────────────────────────────────────────────┤ +│ 业务逻辑层(增强) │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │ +│ │ AI 智能引擎 │ │ FreeCAD模块 │ │ G代码生成器 │ │ +│ │ • 参数优化 │ │ • 模具设计 │ │ • CAM路径规划 │ │ +│ │ • 缺陷预测 │ │ • 布尔运算 │ │ • 后处理输出 │ │ +│ │ • 工艺推荐 │ │ • 型腔分割 │ │ • 仿真验证 │ │ +│ └──────────────┘ └──────────────┘ └──────────────────────┘ │ +├─────────────────────────────────────────────────────────────────┤ +│ 数据持久层(已有) │ +│ PostgreSQL(元数据)+ RustFS(文件存储) │ +├─────────────────────────────────────────────────────────────────┤ +│ 基础内核层 │ +│ PythonOCC(现有)+ FreeCAD API + 开源CAM库 │ +└─────────────────────────────────────────────────────────────────┘ +``` + +## 四、功能模块规划 + +### 4.1 FreeCAD 模具设计模块 + +| 功能 | 说明 | 优先级 | +|------|------|--------| +| **STP文件导入** | 使用 FreeCAD Part 模块读取 STEP 文件 | P0 | +| **智能分型线检测** | 分析几何形状,自动计算最佳分型方向 | P0 | +| **收缩率补偿** | 按材料收缩率自动放大模型 | P0 | +| **拔模角分析** | 检测需要拔模的面,计算拔模角度 | P1 | +| **型腔/型芯分割** | 使用布尔运算真正切割出型腔和型芯 | P0 | +| **流道系统设计** | 自动生成冷/热流道、浇口 | P1 | +| **冷却系统设计** | 自动生成冷却水道布局 | P2 | +| **模具标准件库** | 模架、导柱、顶针等标准件 | P2 | + +### 4.2 AI 智能引擎模块 + +| 功能 | 说明 | 优先级 | +|------|------|--------| +| **工艺参数推荐** | 基于产品几何推荐注塑参数 | P0 | +| **缺陷预测** | 预测熔接痕、缩痕、翘曲风险 | P1 | +| **模具材料推荐** | 根据产量、预算推荐模具材料 | P1 | +| **成本估算** | 估算模具制造成本和周期 | P2 | +| **设计优化建议** | 基于AI分析给出设计改进建议 | P2 | + +### 4.3 G代码生成模块(CAM) + +| 功能 | 说明 | 优先级 | +|------|------|--------| +| **粗加工路径** | 型腔粗铣路径规划 | P0 | +| **精加工路径** | 型腔精铣路径规划 | P0 | +| **电极加工** | 复杂区域电极设计和加工路径 | P1 | +| **后处理输出** | 生成 Fanuc/Siemens 等格式 G代码 | P0 | +| **加工仿真** | 刀具路径仿真验证 | P2 | + +## 五、数据流设计 + +``` +用户上传STP文件 + ↓ +[1] FreeCAD 导入并分析几何 + ↓ +[2] AI 引擎分析并推荐参数 + ↓ +[3] FreeCAD 生成模具型腔/型芯 + ↓ +[4] CAM 模块生成加工路径 + ↓ +[5] 输出 G代码 + 工艺文档 + ↓ +存储到 RustFS + 元数据写入 PostgreSQL +``` + +## 六、技术选型 + +| 模块 | 技术方案 | 理由 | +|------|----------|------| +| **CAD内核** | FreeCAD + PythonOCC | FreeCAD功能更强,PythonOCC保持兼容 | +| **AI引擎** | OpenAI API / 本地LLM | 工艺参数推荐可用GPT-4,预测模型可训练 | +| **CAM内核** | FreeCAD Path / PyCAM | FreeCAD自带CAM模块,可二次开发 | +| **G代码后处理** | 自定义后处理器 | 支持主流数控系统 | +| **几何算法** | CGAL / OpenCascade | 布尔运算、网格处理 | + +## 七、实施阶段 + +### 第一阶段:FreeCAD 基础集成(2-3周) +1. 安装 FreeCAD 并验证 Python API +2. 实现 STP 文件导入功能 +3. 实现基础型腔/型芯分割 +4. 替换现有简化版模具生成器 + +### 第二阶段:AI 引擎接入(2-3周) +1. 接入 LLM API 实现工艺参数推荐 +2. 开发缺陷预测模型 +3. 集成 AI 建议到现有流程 + +### 第三阶段:CAM/G代码生成(3-4周) +1. 开发粗/精加工路径规划 +2. 实现 G代码后处理器 +3. 添加加工仿真验证 + +### 第四阶段:优化完善(持续) +1. 性能优化 +2. 支持更多材料类型 +3. 扩展标准件库 + +## 八、数据库扩展 + +新增数据表: +- `mold_designs` - 模具设计方案 +- `cam_operations` - CAM加工操作 +- `gcode_files` - G代码文件元数据 +- `ai_recommendations` - AI推荐记录 + +## 九、风险评估 + +| 风险 | 影响 | 缓解措施 | +|------|------|----------| +| FreeCAD API 稳定性 | 高 | 使用稳定版本,做好版本锁定 | +| 布尔运算复杂模型失败 | 中 | 添加几何修复和容错处理 | +| CAM算法精度问题 | 中 | 充分测试,提供仿真验证 | +| AI推荐准确性 | 中 | 结合专家知识,持续训练优化 | + +## 十、后续步骤 + +1. 阅读 `FREECAD_SETUP.md` 进行环境配置 +2. 查看 `AI_ENGINE_DESIGN.md` 了解AI模块设计 +3. 参考 `GCODE_GENERATION.md` 实现CAM功能 + +--- +*文档版本:v1.0* +*创建日期:2026-02-17* +*最后更新:2026-02-17* \ No newline at end of file diff --git a/docs/FREECAD_SETUP.md b/docs/FREECAD_SETUP.md new file mode 100644 index 0000000..cc541fa --- /dev/null +++ b/docs/FREECAD_SETUP.md @@ -0,0 +1,234 @@ +# FreeCAD 安装配置指南 + +## 一、FreeCAD 安装 + +### 1.1 Windows 安装 +```bash +# 方法1:使用 pip 安装 +pip install freecad + +# 方法2:下载官方安装包 +# 访问 https://www.freecad.org/downloads.php +# 下载 FreeCAD 0.21.2 或更新版本 +``` + +### 1.2 Linux 安装 +```bash +# Ubuntu/Debian +sudo apt-get install freecad freecad-python3 + +# CentOS/RHEL +sudo yum install freecad + +# 或使用 pip +pip install freecad +``` + +### 1.3 验证安装 +```python +# 验证 FreeCAD Python API 是否可用 +import FreeCAD +import Part +import PartDesign + +print("FreeCAD 版本:", FreeCAD.Version()) +print("安装成功!") +``` + +## 二、项目依赖配置 + +### 2.1 更新 requirements.txt +```txt +# 现有依赖 +flask>=2.3.0 +flask-cors>=4.0.0 +pythonocc-core>=7.6.0 +numpy>=1.24.0 +scipy>=1.10.0 +pandas>=2.0.0 +matplotlib>=3.7.0 +plotly>=5.14.0 +psycopg2-binary>=2.9.0 +sqlalchemy>=2.0.0 +trimesh>=3.20.0 +pyvista>=0.38.0 +requests>=2.28.0 +pytest>=7.3.0 + +# 新增 FreeCAD 相关依赖 +freecad>=0.21.0 +freecad.part>=0.21.0 +freecad.partdesign>=0.21.0 + +# AI 相关依赖 +openai>=1.0.0 +langchain>=0.0.300 +scikit-learn>=1.3.0 +torch>=2.0.0 +``` + +### 2.2 安装依赖 +```bash +pip install -r requirements.txt +``` + +## 三、FreeCAD 模块结构 + +### 3.1 模块规划 +``` +src/core/freecad/ +├── __init__.py +├── mold_generator.py # 模具生成器 +├── stp_importer.py # STP文件导入 +├── cavity_splitter.py # 型腔分割 +├── runner_designer.py # 流道设计 +├── cooling_designer.py # 冷却系统设计 +└── standard_parts.py # 标准件库 +``` + +### 3.2 核心类设计 + +#### FreeCADMoldGenerator(模具生成器) +- `import_stp_file()` - 导入STP文件 +- `analyze_draft_angles()` - 拔模角分析 +- `detect_parting_line()` - 分型线检测 +- `split_cavity_core()` - 型腔/型芯分割 + +#### FreeCADSTPImporter(STP导入器) +- `read_step_file()` - 读取STEP文件 +- `validate_geometry()` - 几何验证 +- `repair_geometry()` - 几何修复 + +#### FreeCADCavitySplitter(型腔分割器) +- `create_parting_surface()` - 创建分型面 +- `boolean_split()` - 布尔运算分割 +- `create_mold_base()` - 创建模架 + +## 四、配置参数 + +### 4.1 模具参数配置 +```python +# config/mold_parameters.py + +# 材料收缩率 +MATERIAL_SHRINKAGE = { + "ABS": 0.005, + "PP": 0.016, + "PC": 0.007, + "POM": 0.020, + "Nylon": 0.015 +} + +# 拔模角度配置 +DRAFT_ANGLES = { + "textured": 3.0, # 纹面 + "polished": 1.5, # 抛光 + "standard": 2.0 # 标准 +} + +# 模具钢材参数 +MOLD_STEELS = { + "P20": {"hardness": 30, "price": 1.0}, + "718": {"hardness": 35, "price": 1.2}, + "S136": {"hardness": 48, "price": 1.8}, + "NAK80": {"hardness": 40, "price": 2.0} +} +``` + +### 4.2 FreeCAD 配置 +```python +# config/freecad_config.py + +# FreeCAD 工作目录配置 +FREECAD_WORKSPACE = "workspace/freecad" +FREECAD_TEMPLATES = "templates/freecad" + +# 几何精度设置 +GEOMETRY_TOLERANCE = 1e-6 +BOOLEAN_PRECISION = 1e-5 + +# 导出设置 +EXPORT_FORMATS = ["step", "stl", "iges"] +EXPORT_PRECISION = 0.001 +``` + +## 五、测试验证 + +### 5.1 功能测试 +```python +# tests/test_freecad_integration.py + +def test_stp_import(): + """测试STP文件导入功能""" + generator = FreeCADMoldGenerator() + result = generator.import_stp_file("test.stp") + assert result.success + assert result.shape is not None + +def test_cavity_split(): + """测试型腔分割功能""" + generator = FreeCADMoldGenerator() + cavity, core = generator.split_cavity_core(test_shape) + assert cavity.Volume > 0 + assert core.Volume > 0 +``` + +### 5.2 性能测试 +```python +# tests/benchmark_freecad.py + +def benchmark_boolean_operations(): + """布尔运算性能测试""" + # 测试不同复杂度的布尔运算性能 + pass +``` + +## 六、故障排除 + +### 6.1 常见问题 + +#### FreeCAD 导入失败 +- **问题**: `ImportError: No module named 'FreeCAD'` +- **解决**: 确保 FreeCAD 正确安装,检查 Python 路径 + +#### 布尔运算失败 +- **问题**: 复杂几何体布尔运算报错 +- **解决**: 使用几何修复工具,简化几何体 + +#### 内存不足 +- **问题**: 大模型处理时内存溢出 +- **解决**: 分块处理,使用内存优化算法 + +### 6.2 调试工具 +```python +# utils/freecad_debug.py + +def debug_geometry(shape): + """几何体调试工具""" + print(f"顶点数: {len(shape.Vertexes)}") + print(f"边数: {len(shape.Edges)}") + print(f"面数: {len(shape.Faces)}") + print(f"体积: {shape.Volume}") + print(f"表面积: {shape.Area}") +``` + +## 七、最佳实践 + +### 7.1 内存管理 +- 及时清理 FreeCAD 文档对象 +- 使用分块处理大模型 +- 避免同时打开多个复杂文档 + +### 7.2 错误处理 +- 所有 FreeCAD 操作添加异常捕获 +- 提供详细的错误信息和恢复建议 +- 实现自动几何修复机制 + +### 7.3 性能优化 +- 使用缓存机制存储中间结果 +- 并行处理多个几何操作 +- 优化布尔运算算法 + +--- +*文档版本:v1.0* +*创建日期:2026-02-17* \ No newline at end of file diff --git a/docs/GCODE_GENERATION.md b/docs/GCODE_GENERATION.md new file mode 100644 index 0000000..9c8cc8d --- /dev/null +++ b/docs/GCODE_GENERATION.md @@ -0,0 +1,399 @@ +# G代码生成方案设计文档 + +## 一、CAM模块架构 + +### 1.1 整体架构 +``` +┌─────────────────────────────────────────────────────────┐ +│ G代码生成系统 │ +├─────────────────────────────────────────────────────────┤ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ +│ │ 路径规划器 │ │ 刀具选择器 │ │ 后处理器 │ │ +│ │ • 粗加工 │ │ • 刀具库 │ │ • Fanuc格式 │ │ +│ │ • 精加工 │ │ • 切削参数 │ │ • Siemens格式 │ │ +│ │ • 清角加工 │ │ • 寿命管理 │ │ • Haas格式 │ │ +│ └─────────────┘ └─────────────┘ └─────────────────┘ │ +├─────────────────────────────────────────────────────────┤ +│ 加工策略层 │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ +│ │ 型腔加工 │ │ 电极加工 │ │ 钻孔加工 │ │ +│ │ • 等高线 │ │ • 铜电极 │ │ • 冷却孔 │ │ +│ │ • 平行铣 │ │ • 石墨电极 │ │ • 顶针孔 │ │ +│ │ • 螺旋铣 │ │ • 精密加工 │ │ • 螺丝孔 │ │ +│ └─────────────┘ └─────────────┘ └─────────────────┘ │ +├─────────────────────────────────────────────────────────┤ +│ 几何处理层 │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ +│ │ STL处理器 │ │ 网格优化器 │ │ 碰撞检测 │ │ +│ │ • STL导入 │ │ • 网格修复 │ │ • 刀具干涉 │ │ +│ │ • 三角化 │ │ • 法线校正 │ │ • 机床限制 │ │ +│ │ • 精度控制 │ │ • 简化优化 │ │ • 安全区域 │ │ +│ └─────────────┘ └─────────────┘ └─────────────────┘ │ +└─────────────────────────────────────────────────────────┘ +``` + +## 二、核心功能模块 + +### 2.1 路径规划器 (PathPlanner) + +#### 粗加工策略 +```python +class RoughingStrategy: + def adaptive_clearing(self, stock, tool): + """自适应清根粗加工""" + + def pocket_milling(self, cavity, tool): + """型腔铣削粗加工""" + + def rest_milling(self, previous_tool, current_tool): + """残留区域加工""" +``` + +#### 精加工策略 +```python +class FinishingStrategy: + def contour_parallel(self, surface, stepover): + """等高线精加工""" + + def spiral_milling(self, cavity, stepover): + """螺旋精加工""" + + def pencil_milling(self, corners, tool): + """清角精加工""" +``` + +### 2.2 刀具选择器 (ToolSelector) + +#### 刀具库配置 +```python +# config/tool_library.py + +TOOL_LIBRARY = { + "roughing_endmill_16mm": { + "type": "endmill", + "diameter": 16.0, + "flute_length": 50.0, + "shank_diameter": 16.0, + "cutting_edges": 4, + "material": "carbide", + "speeds_feeds": { + "cutting_speed": 120, # m/min + "feed_per_tooth": 0.15, # mm/tooth + "axial_depth": 8.0, # mm + "radial_depth": 12.0 # mm + } + }, + "finishing_ballnose_6mm": { + "type": "ballnose", + "diameter": 6.0, + "flute_length": 25.0, + "cutting_edges": 2, + "material": "carbide", + "speeds_feeds": { + "cutting_speed": 150, + "feed_per_tooth": 0.08, + "axial_depth": 0.3, + "radial_depth": 0.5 + } + } +} +``` + +#### 自动刀具选择算法 +```python +class AutoToolSelector: + def select_roughing_tool(self, cavity_volume, material): + """根据型腔体积选择粗加工刀具""" + + def select_finishing_tool(self, surface_quality, corner_radius): + """根据表面质量要求选择精加工刀具""" + + def optimize_tool_sequence(self, operations): + """优化刀具使用顺序""" +``` + +### 2.3 后处理器 (PostProcessor) + +#### 支持的数控系统 +```python +# config/post_processors.py + +SUPPORTED_CONTROLLERS = { + "fanuc": { + "g_code_dialect": "fanuc", + "circular_interpolation": "G02/G03", + "tool_change": "M06", + "coolant": "M08/M09" + }, + "siemens": { + "g_code_dialect": "sinumerik", + "circular_interpolation": "G02/G03", + "tool_change": "T... M06", + "coolant": "M08/M09" + }, + "haas": { + "g_code_dialect": "haas", + "circular_interpolation": "G02/G03", + "tool_change": "M06", + "coolant": "M08/M09" + }, + "heidenhain": { + "g_code_dialect": "heidenhain", + "circular_interpolation": "DR+", + "tool_change": "TOOL CALL", + "coolant": "M08/M09" + } +} +``` + +## 三、加工工艺流程 + +### 3.1 标准加工序列 + +#### 型腔加工流程 +```python +PROCESS_SEQUENCE = [ + # 阶段1: 粗加工 + { + "operation": "roughing", + "tool": "roughing_endmill_16mm", + "strategy": "adaptive_clearing", + "stock_allowance": 0.5 + }, + + # 阶段2: 半精加工 + { + "operation": "semi_finishing", + "tool": "endmill_10mm", + "strategy": "contour_parallel", + "stock_allowance": 0.1 + }, + + # 阶段3: 精加工 + { + "operation": "finishing", + "tool": "ballnose_6mm", + "strategy": "spiral_milling", + "stepover": 0.3 + }, + + # 阶段4: 清角加工 + { + "operation": "corner_cleaning", + "tool": "ballnose_3mm", + "strategy": "pencil_milling" + } +] +``` + +### 3.2 电极加工流程 + +#### 铜电极加工 +```python +ELECTRODE_PROCESS = [ + # 粗加工 + {"tool": "endmill_8mm", "strategy": "roughing"}, + + # 精加工 + {"tool": "ballnose_3mm", "strategy": "finishing"}, + + # 放电区域加工 + {"tool": "ballnose_1mm", "strategy": "detail_milling"} +] +``` + +## 四、G代码格式规范 + +### 4.1 基本G代码结构 +```gcode +% 程序开始 +O1000 (模具型腔加工程序) +G17 G40 G49 G80 G90 (安全初始化) +G54 (工件坐标系) + +(=== 粗加工 ===) +T01 M06 (换刀: 16mm端铣刀) +G43 H01 Z100.0 (刀具长度补偿) +S1800 M03 (主轴启动) +G00 X0 Y0 Z10.0 (快速定位) +M08 (冷却液开) + +G01 Z-5.0 F500 (下刀) +G01 X50.0 Y30.0 F800 (直线插补) +G02 X60.0 Y40.0 I10.0 J0.0 F600 (圆弧插补) + +(=== 精加工 ===) +T02 M06 (换刀: 6mm球头刀) +G43 H02 Z100.0 +S3000 M03 + +(程序结束) +M09 (冷却液关) +M05 (主轴停) +G28 G91 Z0 (Z轴回零) +G28 G91 X0 Y0 (XY轴回零) +M30 (程序结束) +% 程序结束 +``` + +### 4.2 加工参数计算 + +#### 切削参数计算 +```python +class CuttingParameters: + def calculate_spindle_speed(self, tool_diameter, cutting_speed): + """计算主轴转速""" + # N = (1000 * Vc) / (π * D) + return (1000 * cutting_speed) / (math.pi * tool_diameter) + + def calculate_feed_rate(self, spindle_speed, feed_per_tooth, teeth): + """计算进给速率""" + # F = N * fz * z + return spindle_speed * feed_per_tooth * teeth + + def calculate_machining_time(self, toolpath_length, feed_rate): + """估算加工时间""" + return toolpath_length / feed_rate * 60 # 分钟 +``` + +## 五、碰撞检测与安全 + +### 5.1 碰撞检测算法 +```python +class CollisionDetector: + def check_tool_holder_collision(self, toolpath, stock, tool_geometry): + """检测刀柄碰撞""" + + def check_rapid_moves(self, rapid_paths, obstacles): + """检测快速移动碰撞""" + + def verify_machine_limits(self, coordinates, machine_limits): + """验证机床行程限制""" +``` + +### 5.2 安全策略 +```python +SAFETY_STRATEGIES = { + "retract_height": 10.0, # 抬刀高度 + "safe_clearance": 5.0, # 安全距离 + "max_feed_rate": 5000.0, # 最大进给速率 + "max_spindle_speed": 24000.0, # 最大主轴转速 + "emergency_stop_conditions": [ + "tool_breakage", + "collision_detected", + "over_temperature" + ] +} +``` + +## 六、仿真与验证 + +### 6.1 刀具路径仿真 +```python +class ToolpathSimulator: + def visualize_toolpath(self, gcode_file): + """可视化刀具路径""" + + def simulate_material_removal(self, toolpath, stock): + """模拟材料去除""" + + def detect_gouging(self, toolpath, design_surface): + """检测过切""" +``` + +### 6.2 加工质量分析 +```python +class QualityAnalyzer: + def analyze_surface_roughness(self, toolpath, stepover): + """分析表面粗糙度""" + + def check_dimensional_accuracy(self, simulated_part, design): + """检查尺寸精度""" + + def estimate_tool_wear(self, cutting_length, material): + """估算刀具磨损""" +``` + +## 七、文件输出格式 + +### 7.1 G代码文件结构 +```python +# src/core/gcode_writer.py + +class GCodeWriter: + def write_program_header(self, program_number, program_name): + """写入程序头""" + + def write_tool_change(self, tool_number, tool_description): + """写入换刀指令""" + + def write_motion_commands(self, toolpath, feed_rate): + """写入运动指令""" + + def write_program_footer(self): + """写入程序尾""" +``` + +### 7.2 工艺文档输出 +```python +class ProcessDocumentation: + def generate_setup_sheet(self, operations, tools, materials): + """生成加工作业指导书""" + + def generate_tool_list(self, tools_used): + """生成刀具清单""" + + def generate_inspection_report(self, quality_metrics): + """生成检测报告""" +``` + +## 八、实施计划 + +### 8.1 第一阶段:基础路径生成(3-4周) +1. 实现STL几何导入和预处理 +2. 开发基础粗精加工算法 +3. 创建Fanuc格式后处理器 + +### 8.2 第二阶段:高级功能(4-5周) +1. 实现碰撞检测和安全策略 +2. 开发刀具路径优化算法 +3. 添加多轴加工支持 + +### 8.3 第三阶段:完善优化(2-3周) +1. 集成加工仿真功能 +2. 优化性能和用户体验 +3. 添加更多数控系统支持 + +## 九、技术选型 + +### 9.1 几何处理库 +- **FreeCAD Path Workbench** - 开源CAM解决方案 +- **PyCAM** - 纯Python CAM库 +- **OpenCASCADE** - 几何内核,用于复杂运算 + +### 9.2 可视化库 +- **PyVista** - 3D数据可视化 +- **Matplotlib** - 2D图表和路径显示 +- **Plotly** - 交互式3D可视化 + +### 9.3 数值计算 +- **NumPy** - 数值计算基础 +- **SciPy** - 科学计算和优化 +- **OpenGL** - 实时3D渲染 + +## 十、质量保证 + +### 10.1 测试策略 +- **单元测试** - 每个算法模块单独测试 +- **集成测试** - 完整加工流程测试 +- **回归测试** - 确保新功能不破坏现有功能 + +### 10.2 验证标准 +- **G代码语法正确性** - 符合数控系统规范 +- **加工安全性** - 无碰撞风险 +- **加工质量** - 满足精度要求 +- **加工效率** - 优化加工时间 + +--- +*文档版本:v1.0* +*创建日期:2026-02-17* \ No newline at end of file