freecad中可通过五种方法实现建模自动化:一、配置宏参数(禁用gui录制、注释等);二、菜单录制;三、python控制台手动启停;四、从命令历史反向生成;五、验证回放并修复交互中断点。

如果您在FreeCAD中需要反复执行相同建模步骤,例如创建标准件、批量添加约束或重复应用特定特征操作,则可借助宏录制功能实现自动化。以下是完成该任务的具体方法:
一、启用宏录制前的参数配置
合理的初始配置能提升录制宏的稳定性与复用性,避免因GUI交互或冗余命令导致回放失败。FreeCAD默认将部分界面操作以注释形式写入宏文件,需根据实际需求调整底层参数。
1、启动FreeCAD后,依次点击菜单栏编辑 > 首选项 > 宏,进入宏配置页面。
2、在“用户参数”路径User parameter:BaseApp/Preferences/Macro下,找到并修改以下三项:
3、将RecordGui设为False,关闭GUI操作录制,仅保留核心Python命令。
4、将GuiAsComment设为False,防止界面动作被误记为注释而丢失逻辑。
5、确保ScriptToPyConsole为True,以便实时查看命令输出,便于调试。
二、使用菜单方式启动并录制宏
该方式适用于所有平台(Windows/macOS/Linux),操作路径统一、无需记忆快捷键,适合初学者建立稳定录制流程。
1、在FreeCAD主界面顶部菜单栏中,点击工具 > 宏 > 录制宏。
2、在弹出的对话框中输入宏名称(如CreateHexBolt),点击“保存”生成临时.py文件。
3、此时状态栏显示“正在录制”,开始执行目标操作:例如切换至Sketcher工作台、绘制六边形草图、添加尺寸约束、返回Part Design并执行Pad拉伸。
4、全部操作完成后,再次点击工具 > 宏 > 停止录制,宏文件自动保存至默认宏目录(通常为FreeCAD/Macro/子文件夹)。
三、通过Python控制台手动触发录制
此方法绕过图形界面响应延迟,直接调用底层API,适用于需精确控制录制起止时机或集成至脚本链中的场景。
1、按下Ctrl+Alt+P打开Python控制台,或点击视图 > 面板 > Python控制台。
2、输入以下命令启动录制:
FreeCADGui.Macro.startRecording()
3、立即执行所需建模动作,期间不进行任何非必要交互(如右键菜单、弹窗确认)。
4、动作完成后,在同一控制台中输入:
FreeCADGui.Macro.stopRecording()
5、系统将自动生成带时间戳的宏文件,并提示保存路径。
四、基于已有操作历史反向生成宏
当已执行完一系列操作但未提前开启录制时,可利用FreeCAD的命令历史缓存重建宏逻辑,适用于补救性自动化需求。
1、完成全部建模操作后,打开Python控制台。
2、执行以下代码提取最近20条有效命令:
import FreeCADGui; print([c for c in FreeCADGui.Command.listAllCommands()[-20:] if not c.startswith('Std_')])
3、筛选出关键建模命令(如PartDesign_NewSketch、PartDesign_Pad、Sketcher_CreatePolyline)。
4、新建空白文本文件,按顺序粘贴对应Python调用语句,例如:
FreeCADGui.runCommand('PartDesign_NewSketch')
FreeCADGui.runCommand('Sketcher_CreatePolyline')
FreeCADGui.runCommand('PartDesign_Pad')
5、保存为.py文件,置于FreeCAD宏目录中即可执行。
五、验证宏回放并排除常见中断点
宏录制成功不代表回放一定可靠,FreeCAD对交互式操作(如鼠标拾取、弹窗选择、浮动工具栏调用)缺乏兼容机制,必须预先规避。
1、在宏管理器中选中刚录制的宏,点击执行按钮运行。
2、若出现卡顿,立即打开Python控制台,检查最后一行报错信息是否含Selection、Pick、Dialog等关键词。
3、打开宏文件,定位含Gui.Selection或FreeCADGui.ActiveDocument.ActiveView.getCursorPos()的行,将其整行删除或注释。
4、查找所有Gui.activateWorkbench调用,替换为显式工作台切换语句,例如:
FreeCADGui.activateWorkbench("SketcherWorkbench")
5、保存修改后的宏文件,重新执行验证。











