利用FreeCAD的插件开发功能可以定制一些针对特定应用的宏,比如图形程序转机械手语言这样针对特定场所使用的功能,下面将简述一下基于FreeCAD0.19版本的开发macro插件的流程。

准备工作

**安装FreeCAD0.19版本

提示:注意下文都是安装缺省安装目录来介绍,如安装到非缺省目录请自行调整文档中的路径。

**安装vscode  本文将基于vscode作为调试工具进行介绍。

提示:你不需要额外安装python,freecad里面已经集成

技能要求:熟悉python 语言, 熟悉pyqt。

开发步骤:

1 ui 设计

进入目录C:\Program Files\FreeCAD 0.19\bin\Scripts,运行pyside2-designer.exe

按照QTdesigner的方式规划ui,比如规划了下面这个测试界面:

将其保存为hello.ui

2 在命令行下运行转换程序将hello.ui转换成为python文件。

你需要进入C:\Program Files\FreeCAD 0.19\bin\Scripts目录并运行该目录下面的pyside2-uic.exe程序

 .\pyside2-uic.exe  D:\hello.ui  -o D:\hello.py

3 修改hello.py:

增加全局变量:

global count ; count=0

增加按键回调:

def on_PButton_clicked(self):global countcount+=1self.label_result.setText(str(count))

在setupUi函数里面增加按键回调关联:

self.pushButton.clicked.connect(self.on_PButton_clicked)

在末尾追加启动函数:

d = QtGui.QWidget()
d.ui = Ui_Dialog()
d.ui.setupUi(d)
d.show()

将生成的文件复制到FreeCAD的数据目录下面:

C:\Users\Administrator\AppData\Roaming\FreeCAD\Macro

然后通过FreeCAD 的菜单macro->macros可以看到该文件:

查看宏列表可以看到对应的文件。

提示:标准的freecad的宏是以FCMacro结尾,对于以py结尾的文件freecad也可以正常识别。

4 选中hello.py并点击execute:

点击“测试”按键

5 增加能够远程调试功能:

重新编辑hello.py,在代码前面添加进入调试的几行代码。

# debug
import ptvsd
print("Waiting for debugger attach")
# 5678 is the default attach port in the VS Code debug configurations
ptvsd.enable_attach(address=('localhost', 5678))
ptvsd.wait_for_attach()
#debug end

 6 打开vscode,点击“运行”->“打开配置”

增加配置选项:

{"workbench.colorTheme": "Default Dark+","editor.minimap.enabled": false,"workbench.editor.enablePreview": false,"security.workspace.trust.untrustedFiles": "open","launch": {"configurations": [{"name": "Python: Attacher","type": "python","request": "attach","port": 5678,"host": "localhost","pathMappings": [{"localRoot": "C:\\Users\\Administrator\\AppData\\Roaming\\FreeCAD\\Macro\\","remoteRoot": "C:\\Users\\Administrator\\AppData\\Roaming\\FreeCAD\\Macro\\"}]},]}
}

6 开始调试     在freecad里面重新开始运行hello.py,这次程序并没有运行且freecad还会出现类似死机状态,这是在等待调试器连接,你需要切换到vscode 打开Hello.py 设置好断点后点击“运行”->“启动调试”

程序会开始运行并跳转到断点,即可进行调试和分析

提示:freeCAD集成了一个python 命令控制台,可以通过view->panels->python console,启用后窗口操作对应的python命令会在该处显示,可以用于参考命令。

 

如何自己开发FreeCAD的宏插件相关推荐

  1. 零基础开发 Node.js Addons 插件:参数与返回值处理

    上一篇回顾 零基础开发 Node.js Addons 插件:Hello Node-API.本篇介绍使用 Node-API 为 Node.js 开发基于 C 的 Addons 时,如何接收与处理 Nod ...

  2. AutoCAD二次开发三种添加插件按钮的方法

    在上一篇关于AutoCAD的文章中,我将很多关于CAD的博客相关资源进行了说明,这一篇文章我将介绍如何在AutoCAD中的ribbon中添加相应的按钮.就是下面这种按钮: PS:在开发中我们最好使用中 ...

  3. Eclipse进行可视化的GUI开发3大GUI插件

    Eclipse进行可视化的GUI开发3大GUI插件 转自http://www.cnblogs.com/NationWoo/archive/2011/05/31/2065176.html Eclipse ...

  4. 【Flutter】开发 Flutter 包和插件 ( 开发 Dart 插件包 | 发布 Dart 插件包 )

    文章目录 前言 一.开发 Dart 包内容 二.配置 pubspec.yaml 三.编写 Dart 包使用说明 四.编写 Dart 包授权许可 五.设置版本变更记录 六.验证 Dart 包正确性 七. ...

  5. 【资料】翘首期盼247天!《阿里巴巴Java开发手册》扫描插件详情介绍

    引言:自从2月9日<阿里巴巴Java开发手册>面向业界公布以来,大家一直期待着静态化扫描工具的问世,在<手册>终极版发布时,我们曾经承诺将在2017杭州云栖大会上进行规约插件的 ...

  6. vue-scroller的使用 开发自己的 scroll 插件

    vue-scroller的使用 在spa开发过程中,难免会遇到使用scroll的情况,比如下面的: 即,当用户选择好商品之后,点击购物车,就会有一个购物车弹窗,如果选择的商品小于三个,刚好合适,如果多 ...

  7. alibaba java_阿里巴巴JAVA开发手册最新版插件Alibaba Java Coding Guidelines安装及使用...

    阿里巴巴JAVA开发手册最新版插件Alibaba Java Coding Guidelines安装及使用 发布时间:2018-04-20 14:40, 浏览次数:887 , 标签: JAVA Alib ...

  8. 为eclipse安装python、shell开发环境和SVN插件

    2019独角兽企业重金招聘Python工程师标准>>> eclipse是一个非常好用的IDE,通常来说我们都用eclipse来开发JAVA程序,为了让开发python.shell等脚 ...

  9. Xposed框架初次见面-开发自己的Xposed插件

    Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,通过替换/system/bin/app_process程序控制zygote进程,使得app_process在启动过程 ...

  10. android 翻译功能开发,手把手教你开发Android studio翻译插件

    前言 由于我英语很烂,写代码的时候需要用英文命名,有些单词不知道,就只能切换到浏览器打开网页搜索,再拿到英文单词.这样每次都要切换出去,很麻烦,于是,就想着开发一个Android studio插件,在 ...

最新文章

  1. php表单偶数变颜色,利用CSS3 nth-child()选择器 实现表格奇偶行变色
  2. java swing 获取text_如何在Java Swing中将文本文件读入jtextarea
  3. 霸榜18年,作者连续20年获得微软MVP,这本SQL书凭什么成为畅销经典
  4. 人工神经网络理论、设计及应用_TensorFlow深度学习应用实践:教你如何掌握深度学习模型及应用...
  5. SD_CUSTOMER_MAINTAIN_ALL
  6. (视频+图文)机器学习入门系列-第1章 引言
  7. 联想ghost重装系统_一键ghost,详细教您使用一键ghost怎么重装win7系统
  8. height:calc(100% - 10px)的用法(垂直居中) - 布局篇
  9. 云函数与函数式编程思想结合会产生什么?
  10. C#连接Oracle中文乱码问题解决方法
  11. C++基础::一些接口汇总
  12. 无论PC还是Mac,都能畅快地使用移动硬盘
  13. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第3节 maven标准目录结构和常用命令_06maven标准目录结构...
  14. SQL必知必会 课后题答案
  15. rs485接口上下拉_通讯接口应用笔记1:RS485通讯上下拉电阻的选择
  16. 推荐算法DCN(Deep Cross)自动构造高阶交叉特征原理介绍
  17. 利用交通实时数据和社交媒体数据对飓风疏散期间的交通需求进行预测
  18. 二维码学习笔记(二) | 数据分析与数据编码
  19. python怎么把字体变大_Pycharm 字体大小调整设置的方法实现
  20. AVAudioPlayer和AVAudioPlayerDelegate-iOS音频播放器

热门文章

  1. 【Git】Git提交代码详细步骤
  2. 【pytorch目标检测】开山之作:R-CNN算法解读
  3. WBE15_HttpServletRequest
  4. Java开发指南!mysql修改表字段长度
  5. 如何将录屏转换为高清GIF
  6. 在MATLAB下安装Matpower模块
  7. linux 卸载vsftpd服务器,vsFPT服务器搭建与卸载
  8. 指纹调试 mtk(MT6763)- android8.1
  9. win10便签常驻桌面_小巧免费的桌面便签工具分享
  10. 招商银行/招银网络科技面经、答案