1 FreeCAD二次开发-基于控制台模式FC外部开发

https://www.programminghunter.com/article/57032015228/
其实就是python用代码调用FC接口来进行模型操作,跟FC控制台没有关系!!

方法案例参见 https://wiki.freecad.org/Embedding_FreeCAD

环境搭建步骤
1.先安装好FreeCAD0.21和PyCharm

以下2和3并非必要,可省略。
2.将freecad自带的python.exe所在路径添加到环境变量里


点击确定,全部关掉。

3.测试环境变量的设置是否生效(CMD打开控制台,输入python回车)
弹出如下,说明可以进入FreeCAD自带的python解释器

4.打开PyCharm新建项目
pycharm版本如下2023.2.2社区免费版

PyCharm 2023.2.2 (Community Edition)
Build #PC-232.9921.89, built on October 1, 2023
Runtime version: 17.0.8+7-b1000.22 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 4082M
Cores: 20
Non-Bundled Plugins:
com.intellij.zh (232.172)

选择FC自带的python解释器——选择官方0.21版的python.exe所在路径
注意:FC参数化模型必须是这个0.21版建立的,其他版本建立的,用这个方法修改参数会导致错误

注意:FC参数化模型必须是这个0.21版建立的,其他版本建立的,用这个方法修改参数会导致错误
下面这个0.22版本出现:freecad Pad: Unsupported sub-shape type错误

创建后,自己新建个main.py文件,在里面写代码

源代码

import FreeCAD
import FreeCADGui
import Part

# 显示FreeCAD界面
FreeCADGui.showMainWindow()

# 新建FC文件
FreeCAD.newDocument("123")

# 创建块
box = Part.makeBox(100, 20, 50)
# 获得块的所有边
edges = box.Edges

# 创建空列表
list = []
# 遍历所有边,判断Z坐标点,起点-终点的绝对值>0的为块Z轴方向的竖直边
for edge in edges:
    if (abs(edge.Vertexes[0].Point[2] - edge.Vertexes[1].Point[2])) > 0:
        list.append(edge)

# 创建倒圆
b1 = box.makeFillet(2, list)

# 显示对象
Part.show(b1)

# 显示
FreeCADGui.ActiveDocument.Shape.Visibility = True

# 另存为
FreeCAD.ActiveDocument.saveAs("D:\\123.FCStd")

# 关闭
FreeCAD.closeDocument("_23")

# 隐藏FreeCAD界面
FreeCADGui.getMainWindow().hide()

Caesar卢尚宇
2021314