You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FreeCAD中通过Python编程方式禁用并恢复自动重计算

如何在FreeCAD中通过Python编程方式禁用并恢复自动重计算

我来帮你搞定这个问题!在FreeCAD里完全可以用Python代码控制自动重计算的开关,再也不用每次手动右键点“Skip recomputes”了,完美适配你的设计迭代需求。

核心思路

我们的目标是:脚本运行时暂时关闭自动重计算,完成操作后手动触发重计算,最后还原到脚本运行前的重计算模式(避免强制修改用户原本的设置习惯)。

分步实现代码

  • 第一步:保存当前重计算模式
    先把用户当前的重计算状态存起来,确保脚本结束后能精准还原到原有状态:

    original_recompute_mode = App.ActiveDocument.RecomputeMode
    
  • 第二步:禁用自动重计算
    这行代码就对应右键菜单里的“Skip recomputes”操作,直接关闭自动重计算:

    App.ActiveDocument.RecomputeMode = App.Document.RecomputeOff
    
  • 第三步:执行你的脚本逻辑
    把你原本要运行的核心代码放在这里,比如创建几何特征、修改参数等操作——这时候FreeCAD不会自动触发重计算,能帮你节省不少等待时间。

  • 第四步:手动触发重计算
    按照你的需求,完成所有核心操作后,手动执行一次完整的文档重计算:

    App.ActiveDocument.recompute()
    
  • 第五步:恢复原有重计算模式
    最后把重计算模式还原到脚本运行前的状态,不会干扰你后续的操作习惯:

    App.ActiveDocument.RecomputeMode = original_recompute_mode
    

完整示例代码

把所有步骤整合起来,就是一个可以直接复用的模板:

# 保存当前重计算模式,避免修改用户原有设置
original_recompute_mode = App.ActiveDocument.RecomputeMode

# 关闭自动重计算
App.ActiveDocument.RecomputeMode = App.Document.RecomputeOff

# ----------------------
# 这里替换成你的核心脚本代码
# 示例:创建一个立方体并修改尺寸
# box = App.ActiveDocument.addObject("Part::Box","MyBox")
# box.Length = 150
# box.Width = 100
# box.Height = 50
# ----------------------

# 手动执行一次全文档重计算
App.ActiveDocument.recompute()

# 恢复脚本运行前的重计算模式
App.ActiveDocument.RecomputeMode = original_recompute_mode

小提示

  • 如果你需要对所有打开的文档生效,而不只是当前激活的文档,可以遍历App.Documents逐个设置,但大部分场景下只操作App.ActiveDocument就足够了。
  • App.Document.RecomputeOff是FreeCAD内置的枚举值,代表完全关闭自动重计算;对应的App.Document.RecomputeAuto是自动重计算的默认状态。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 11:19:31