FreeCAD

复制代码
# 安装 Pixi
powershell -ExecutionPolicy ByPass -c "iwr -useb https://pixi.sh/install.ps1 | iex"

# 安装完成后重开终端,检查
pixi --version
cmake --version
git --version

#源码获取
git clone --recursive https://github.com/FreeCAD/FreeCAD.git D:\1\FreeCAD
git ls-remote https://github.com/FreeCAD/AddonManager.git
git submodule update --init --recursive --jobs 1

#进入项目目录
cd D:\1\FreeCAD

#用pixi建环境
pixi install

#配置构建
pixi run configure-debug
pixi run build-debug
pixi run install-debug

#运行 FreeCAD
pixi run freecad-debug

第一步:先做一个最小可跑通的"3D 转 2D 自动出图"

先只做规则驱动,不加 AI。目标是输入一个 FCStd/STEP,输出带图框、主视图、剖视图、标注、件号、BOM 的 PDF/DXF/SVG。

新增文件

  • D:\1\FreeCAD\src\Mod\AICad\CMakeLists.txt

    作用:定义 AICad 模块的安装和拷贝规则。让 Init.py、InitGui.py、脚本、规则文件在构建/安装后进入 FreeCAD 的 Mod/AICad 目录。

  • D:\1\FreeCAD\src\Mod\AICad\Init.py

    作用:AICad 模块的 App 层初始化入口。现在是最小占位文件,后面可以扩展模块级初始化逻辑。

  • D:\1\FreeCAD\src\Mod\AICad\InitGui.py

    作用:AICad 工作台的 GUI 入口。当前会注册一个最小工作台 AICadWorkbench,方便后续把自动出图按钮、任务面板等挂进 GUI。

  • D:\1\FreeCAD\src\Mod\AICad\init.py

    作用:把 AICad 目录作为 Python 模块使用,便于后续拆分更多 Python 文件。

  • D:\1\FreeCAD\src\Mod\AICad\Scripts\auto_drawing.py

    作用:这次的核心脚本。它负责:

    • 读取输入 FCStd/STEP
    • 打开 FreeCAD 文档
    • 选择待出图对象
    • 创建图页和模板
    • 生成主视/俯视/右视/剖视
    • 自动生成基础尺寸
    • 添加示例件号引出线
    • 尝试创建 BOM
    • 导出 DXF/SVG/PDF
    • 保存生成后的 FCStd
  • D:\1\FreeCAD\src\Mod\AICad\rules\view_rules.json

    作用:定义出图规则,主要包括:

    • 默认图框模板
    • 页面名称
    • 主视/俯视/右视/剖视的位置和方向
    • 基础尺寸规则
    • 件号引出线规则
  • D:\1\FreeCAD\src\Mod\AICad\rules\titleblock_rules.json

    作用:定义图签/标题栏字段填充规则,比如:

    • 标题
    • 图号
    • 作者
    • 审核人
    • 比例
  • D:\1\FreeCAD\src\Mod\AICad\rules\bom_rules.json

    作用:定义 BOM 生成规则,比如:

    • 是否启用 BOM
    • BOM 对象名称
    • BOM 列名

修改文件

  • D:\1\FreeCAD\src\Mod\CMakeLists.txt
    作用:把新模块 AICad 接入 FreeCAD 的模块构建链。
    我加了一行:
    • add_subdirectory(AICad)

      重新配置
      pixi run configure-debug

      重新编译
      pixi run build-debug

      重新安装
      pixi run install-debug

      运行
      pixi run freecad-debug

      先用控制台模式稳定生成页面和核心文件:

      pixi run freecadcmd-debug D:\1\FreeCAD\src\Mod\AICad\Scripts\auto_drawing.py --pass D:\1\FreeCAD\data\examples\PartDesignExample.FCStd D:\1\FreeCAD\outputs\demo Body
      如果还需要 AutoPage.svg 和 AutoPage.pdf,再用 GUI 模式跑同一个脚本:

      pixi run freecad-debug D:\1\FreeCAD\src\Mod\AICad\Scripts\auto_drawing.py --pass D:\1\FreeCAD\data\examples\PartDesignExample.FCStd D:\1\FreeCAD\outputs\demo Body

复制代码
先生成数据集索引:

python tools\build_reconstruction_dataset_index.py
查看批量出图将要执行什么命令,不真正运行:

python tools\run_reconstruction_autodrawing.py --limit 3 --dry-run
真正跑一个样本的自动出图:

python tools\run_reconstruction_autodrawing.py --limit 1
跑指定样本:

python tools\run_reconstruction_autodrawing.py --sample-id 100243_9fb796fe_0005
跑指定子集里的前几个样本:

python tools\run_reconstruction_autodrawing.py --subset "1_Fusion 360" --limit 5
相关推荐
“AI国潮设计-小江”1 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞翻糖吐司”构图,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
wenwen_chao1 小时前
Python学习与开发资源合集:实用技巧与工具推荐
python
for_ever_love__2 小时前
函数——参数、lambda、*args与作用域
python·函数·大模型开发·编程基础
东莞市云毅网络有限公司2 小时前
企业资料时效性判定:Last-Modified、正文日期与版本字段三路交叉
python·sqlite·自动化运维·geo·数据监测
Query*2 小时前
深入浅出LangGraph【一】_基础篇
python·ai·langchain
XiaoMaqqqq3 小时前
市面上正规的IP驱动产业新场景新工具哪家强
运维·python·网络协议·tcp/ip
ShyanZh3 小时前
【Python3基础】19-Socket 与 TCP、UDP 编程
python·网络协议·tcp/ip·udp
惊讶的猫4 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理
开发语言·python
天赐范式4 小时前
天赐范式第186天:让方差开始自洽——Bulmer效应的闭式验证
python·数字生命·天赐范式·动态运行时·遗传方差·bulmer效应
泡茶喝茶写代码4 小时前
A股量化数据工程:从 REST 接口到策略信号(第 8 篇):成长能力因子:营收与利润增速
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口·股票数据api数据