freecad支持四种python自动化方案:一、gui内运行脚本,实时交互调试;二、命令行调用freecadcmd执行无gui批量任务;三、python控制台嵌入式加载外部脚本,支持热重载;四、taskpanel构建交互式参数化面板。

如果您希望在FreeCAD中重复执行建模、参数修改或文件导出等操作,则可以通过Python脚本实现自动化。FreeCAD内置完整的Python API,所有GUI操作均可通过脚本调用。以下是几种可行的自动化方案:
一、在FreeCAD GUI内直接运行Python脚本
该方式适用于调试阶段或需与当前打开文档实时交互的脚本。脚本在FreeCAD主进程内执行,可直接访问ActiveDocument、App.ActiveDocument等对象。
1、启动FreeCAD后,点击菜单栏宏 → 宏 → 新建,输入宏名称并保存为.py文件。
2、在弹出的编辑器中编写Python代码,例如创建一个立方体:App.ActiveDocument.addObject("Part::Box", "MyBox")。
3、点击编辑器工具栏中的执行按钮,或使用快捷键Ctrl+Return运行脚本。
4、脚本执行后,可在模型树中看到新添加的对象,且所有属性(如Length、Width)均可后续通过MyBox.Length = 50.0动态修改。
二、从外部命令行调用FreeCADCmd执行无GUI脚本
该方式适用于批量处理、CI集成或后台渲染任务,不启动图形界面,仅加载核心模块,执行效率更高,资源占用更低。
1、确保系统PATH中已包含FreeCAD可执行目录,或使用完整路径调用FreeCADCmd(Linux/macOS)或FreeCADCmd.exe(Windows)。
2、准备一个独立的.py文件,例如batch_export.py,开头必须包含:import sys; sys.path.append('/path/to/FreeCAD/lib')(路径需按实际安装位置调整)。
3、在脚本中使用App.newDocument()创建新文档,用Part.makeCylinder()等函数生成几何体,最后调用doc.exportObjects([obj], "output.stl")导出。
4、在终端中执行:FreeCADCmd batch_export.py,脚本将静默运行并生成目标文件。
三、通过FreeCAD Python控制台嵌入式调用外部脚本
该方式适合在交互式建模过程中快速加载并复用已编写好的功能模块,支持热重载和参数化传入。
1、在FreeCAD中打开Python控制台(菜单栏视图 → 面板 → Python控制台)。
2、使用exec(compile(open('/path/to/script.py').read(), '/path/to/script.py', 'exec'))加载外部脚本。
3、若脚本定义了函数如create_gear(teeth=12),可在控制台中直接调用:create_gear(teeth=24)。
4、修改脚本文件后,重复执行exec(...)语句即可刷新函数定义,无需重启FreeCAD。
四、利用FreeCAD的TaskPanel机制构建可交互的自动化面板
该方式适用于需要用户输入参数(如尺寸、数量、路径)后再触发批量操作的场景,将脚本封装为GUI插件形式。
1、创建一个继承自PySide2.QtWidgets.QWidget的类,定义文本框、滑块和按钮控件。
2、在按钮的clicked信号回调中,读取控件值并调用App.ActiveDocument.addObject("Part::Cylinder", "AutoCyl")等API。
3、将该Widget实例传入Gui.Control.showDialog(),使其显示在FreeCAD任务面板区域。
4、用户填写参数后点击“生成”,脚本即根据输入实时创建多个参数化对象,所有对象均支持后续双击编辑属性。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











