This commit is contained in:
cjw
2026-02-17 01:35:09 +08:00
parent 519279a7d1
commit c93aff5fa4
4 changed files with 1104 additions and 0 deletions
+316
View File
@@ -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*
+155
View File
@@ -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*
+234
View File
@@ -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*
+399
View File
@@ -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*