# 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*