同是FreeCAD他效率为何那么高?大神教你用python打造专属工作台

liftword3个月前 (03-12)技术文章15

FreeCAD是功能上与solidworks等同的开源免费软件。功能非常强大。从3D建模,BIM,组装,到力学分析,热分析,等一应俱全。更重要的,他的底层是和python完全封装的。换句话说,我们可以使用python做任何事情。今天我们就介绍一下,FreeCAD二次开发的基础内容。


文章内容看完可能需要一点时间,建议大家边编程边看文章。

如有疑问可以回复我。

1、工作台的python终端

(1) 全局变量

FreeCAD在console里的名字是App。

在python脚本中,是FreeCAD模块。

getHomePath()返回的是软件安装目录

getResourceDir() 返回的是软件的资源目录


(2) Mod 目录

该软件根目录下的Mod目录,是用来存放workbench的python脚本文件的。

这些文件对应于界面上的workbench的工作台。

我们通过对工作台的python的开发,就可以定制自己的工作台。

关于Freecad的API 可以通过help文档来查看


2、零件工作台(Part workbench)

打开Mod目录中的Part目录

文件中,只有Init.py 和InitGui.py 是必须的。

Init.py 文件是初始化文件,可以为空。

InitGui.py 文件是界面的初始化文件。


(1)Init.py文件

在Init.py文件中,除了说明文件,就是一些导入的类型文件。

(2)InitGui.py 文件

在InitGui.py 文件中,只有两步:

创建工作台类,并将该类载入工作台。

下面我们详细分析一下PartWorkbench类。

该类,有三个函数,初始化的__init__()函数,Initialize()函数,GetClassName() 函数。

在__init__()函数中,主要定义一些基本的实例变量。例如图标的文件,菜单的名称,和工具条显示的信息。

在Initialize() 函数中,是我们在界面中点击part之后的响应。

首先加载PartGui

加载自定义模块

并进行一系列的操作。



GetClassName()函数,是返回类的信息。


3、 工作台开发框架

(1)我的自定义工作台

在工作台的开发中,我们始终围绕Init.py和InitGui.py 两个文件来展开,所有的文件都以这两个文件为触发点,向FreeCad响应。

首先我们新建一个目录,名称叫MyWorkBench, 并在目录中新建Init.py和InitGui.py文件。

(2)、Init.py

该文件为空

(3)、InitGui.py



可以在python终端查看使用方法



直接打开FreeCAD,可以看到界面



可以看到这个命名为MyWork的界面出现了。由于,并未定义任何界面按钮,所以这是一个空界面。

需要说明的是,类的名字,不能与其他工作台类名称相同。


同时,可以看到,在python终端已经显示,当前工作台为MyWorkbench1.


4、 按钮

(1)按钮文件



按钮文件是一个类,包含三个函数,

l Activated 处理点击响应

l IsActive 处理是否可用

l GetResource 获取Gui标识


(2)响应中加入界面HelloWorld

我们可以在Activated函数内增加界面



重新启动freecad,则会弹出窗口。


相关文章

Python 高效编程,开发大神都在用的技巧

写日常开发中,你是否会觉得自己编写的代码不够简洁、不够高效,并且运行的速度都不尽人意呢?别担心,今天就带你解锁那些开发大神爱不释手的Python高效编程技巧,让你的代码实现华丽转身!数据处理的魔法:生...

跟着DeepSeek,打通Python编程从菜鸟到大神的任督二脉!

以下是通过DeepSeek平台掌握Python编程的系统路径,结合AI工具特性与语言学习规律,提供从基础到高阶的完整知识框架:一、Python基础语法快速入门1. 变量与数据类型o 变量无需声明直接赋...

想玩透数据分析?这本 Python 神作别错过,开启数据大神进阶路

这本书几乎是数据分析入门必读书了。主要介绍了python 3个库numpy(数组),pandas(数据分析)和matplotlib(绘图)的学习。但是需要注意的是,看这本书的前提是你要会Python基...

30天带你从Python小白变成大神,这份笔记你值得拥有(全程干货)

“人生苦短,我用Python。”Python的火爆大家有目共睹,原因无外乎Python入门容易、容易就业,而且还有7大就业方向可供选择,可以说是新人入门的不二之选。但是尽管Python简单易学,但仍有...

练完这70个项目,成为Python大神!

完整70个实战项目加源码,练完你的Python就成了!请大数据推给正在学Python的同学!...

学习Python,只需要10个小时就能从新手到大神,最完整入门教程

Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数编程语言的使用场...