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,则会弹出窗口。

cad和python哪个好学_同是FreeCAD他效率为何那么高?大神教你用python打造专属工作台...相关推荐

  1. python 相关性检验怎么计算p值_收藏 | 大神教你用Python预测未来:一文看懂时间序列...

    (由Python大本营付费下载自视觉中国) 作者 |  Leandro Rabelo 译者 | 李洁 整理 | Lemonbit 出品 | Python数据之道 本文内容较长,较为详细的阐述了进行时间 ...

  2. python 知乎美女_知乎大神教你用Python爬取网站美女图,附代码!

    都知道Python的抓取功能强大,可以帮我们从海量的数据中爬取所需要的进行分析.下面,就给大家分享知乎大神怎么用Python爬取高颜值美女! 1.数据源 知乎话题『美女』下所有问题中回答所出现的图片 ...

  3. sas和python哪个好学_从全方位为你比较3种数据科学工具的比较:Python、R和SAS(附链接)...

    原标题:从全方位为你比较3种数据科学工具的比较:Python.R和SAS(附链接) 本文约3000字,建议阅读5分钟. 关于三种数据科学工具Python.R和SAS,本文从8个角度进行比较分析并在文末 ...

  4. python老王卖西瓜_搞不懂Python?大神教你用Python买西瓜!

    什么是code? code就就是一种语言,一种计算机能读懂的语言.计算机是一个傻*,他理解不了默认两可的任何东西.比如,你让你老公去买个西瓜,你老公会自己决定去哪里买,买几个,找个搞活动打折的买,总之 ...

  5. python爬虫登录有验证码_大神教你用Python爬虫模拟登录带验证码网站

    爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 首先得明白cookie的作用, ...

  6. python玩王者荣耀皮肤碎片怎么获得_大神教你用Python爬取王者荣耀英雄皮肤,不充钱也能入手!...

    前言 临下班前,看到群里有人在讨论用王者农药的一些皮肤作为电脑的壁纸,什么高清的,什么像素稍低的,网上查了一手,也有,但像素都不一样,所以,我就想着,自己去官网直接爬他的高清皮肤就好了,然后就有了这边 ...

  7. python预测未来数据步骤_大神教你用Python预测未来:一文看懂时间序列(值得收藏)...

    所有代码都是用 Python 编写的,并且在 GitHub 上可以看到所有的信息. https://nbviewer.jupyter.org/github/leandrovrabelo/tsmodel ...

  8. python控制电脑唤醒键_大神教你用Python实现Wake On Lan远程开机功能

    导读 这篇文章主要介绍了使用Python实现Wake On Lan远程开机功能,文中给大家补充介绍了python通过wakeonlan唤醒内网电脑开机,非常不错,感兴趣的朋友跟随小编一起学习吧 Wak ...

  9. python绘画酷炫图片_【一点资讯】教程 | 中国酷炫地图,大神教你用Python一边爬一边画 www.yidianzixun.com...

    前言我只说一句,台湾是中华人民共和国不可分割的领土! 先来聊聊为什么做数据分析一定要用Python或R语言.编程语言这么多种,Java, PHP都很成熟,但是为什么在最近热火的数据分析领域,很多人选择 ...

最新文章

  1. [Ubuntu] ubuntu10.04系统维护之Wine的安装
  2. .NET本质论 类型基础
  3. Netty - I/O模型之NIO
  4. python发邮件给女朋友代码_python发邮件的代码
  5. 爬取三千条数据需要多久_存储-性能,IOPS,带宽,吞吐量,1TB数据需要多久写完...
  6. 截屏当前界面_电脑屏幕怎么截取,常见的几种电脑截屏方法
  7. php 安装xdebug扩展
  8. 克制懒惰之飞鸽传书版
  9. 深度优先,广度优先,拓扑排序(实战题解)
  10. Security - 轻量级Java身份认证、访问控制安全框架
  11. repo/git提交代码
  12. video上传架构设计与实现
  13. apache 配置虚拟域名默认站点问题
  14. android 生成 kml代码,android 导入KML文件
  15. python语言与存货管理,(二)实现对库存管理系统的模块化编程
  16. 电商产品销售管理后台ui模板
  17. 计算机多媒体技术实验报告【合集】
  18. 极化码理论及算法研究6-SCL、CA-SCL及matlab仿真
  19. 数电课程设计数字钟c语言编程,数电数字钟设计,含源码
  20. 晶体硅太阳能电池产线性能跟踪项目

热门文章

  1. 多媒体内容审核, 打造安全合规的UGC新生态
  2. Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影
  3. 我是计算机专业,技能一般,女生,大四,准备毕业设计,我想问是不是网站设计简单一些呢?
  4. welcome to Nginx!!
  5. 飘香端午 | 云和恩墨陪大家一起过重子节
  6. 观察1000位UP主后,我们总结了这份B站UP挑选指南
  7. oppoa79支持html吗,【OPPOA79评测】OPPO A79评测:不妨称它为R11s青春版_OPPO A79_手机评测-中关村在线...
  8. Initialization script ‘C:\Users\darren\AppData\Local\Temp\sync.studio.tooling18332.gradle‘
  9. i7 10700配什么主板
  10. JavaScript中的模板字符串