一. FreeCAD的二次开发

freecad作为一款开源的三维软件,开发相当简便,使用python开发也更为简单。

二.环境配置

我是使用pycharm直接编辑新建的工作台文件夹,freecad自带的python2.7作为编译环境。

三. 主要文件

在mod文件夹下的工作台主要文件有

init.py 表示执行开始,一般没有实际内容,可以为空,但必须要有;

InitGui.py 工作台的ui内容;

然后就是其他的command文件;

四. InitGui.py的内容

# -*- coding: utf-8 -*-

# _TEMPLATEPY_ gui init module

# (c) 2001 Juergen Riegel

# License LGPL

# 继承workbench类,

class _TEMPLATEPY_Workbench ( Workbench ):#类名便是python控制台里的名字

"_TEMPLATEPY_ workbench object"

#加载工作台图标

Icon = FreeCAD.getHomePath() + "Mod/_TEMPLATEPY_/Resources/icons/_TEMPLATEPY_Workbench.svg"

MenuText = "WeiGan"#

ToolTip = "WeiGan workbench"

def Initialize(self):

# load the module

import _TEMPLATEPY_Gui ,MySecondCommand#导入插件的工具栏

#导入我的第二个工具栏

self.appendToolbar('WeiGan',['_TEMPLATEPY__HelloWorld','MySecondCommand'])#把按钮添加为toolbar(模块),第一个是工作台的名字,第二个是按钮列表

self.appendMenu('WeiGan',['_TEMPLATEPY__HelloWorld','MySecondCommand'])#把按钮添加到菜单栏里

def GetClassName(self):

return "Gui::PythonWorkbench"

Gui.addWorkbench(_TEMPLATEPY_Workbench())

五. 如何新建一个按钮

···

-- coding: utf-8 --

FreeCAD tools of the TEMPLATEPY workbench

(c) 2001 Juergen Riegel

License LGPL

import FreeCAD, FreeCADGui

class MySecondCommand:

def Activated(self): #点击按钮执行的动作

FreeCAD.Console.PrintMessage("Hello, World!\n")

def IsActive(self):

FreeCAD.Console.PrintMessage("hi,you enter me")

return True

def GetResources(self):

return {'Pixmap': 'freecad', 'MenuText': 'Hello World', 'ToolTip': 'Print Hello World'}

FreeCADGui.addCommand('MySecondCommand', MySecondCommand())

···

1543327356(1).png

1543327454(1).png

python cad二次开发文档_FreeCAD二次开发-工作台开发(使用pycharm)相关推荐

  1. python cad二次开发文档_cad二次开发

    源代码: #导入模块 from pyautocad import Autocad, APoint #创建cad实例 acad = Autocad(create_if_not_exists=True) ...

  2. 开发文档模板_究竟什么样的开发流程是规范的?

    规范是死的,人是活的,希望自己定的规范,不要被打脸. 接下来从以上六个阶段进行逐一拆解. 1 需求评审 作为技术人员肯定都参加过需求评审会,不知道有没有遇到这样的情况? 产品经理按照 PRD 文档读一 ...

  3. PulseSensor开发文档(二)动态阈值算法获取心率值

    文章目录 1.摘要 2.算法核心思想与心率信号的有效特征点 3.动态阈值算法分思路分析 4.算法整体实现 5.算法实现效果 6.小结 1.摘要 在上一篇文章中:具体介绍了如何用DMA和ADC采集心电数 ...

  4. python软件开发文档目录_python学习之-软件开发的目录规范

    通常软件目录下有几个标准文件夹 软件主文件夹命名,通常都是大写(ATM_SHOPPING) ------------------------------------------------------ ...

  5. blockly自定义中文出问题_3.8 事件 - Blockly 二次开发文档中文版

    工作区上的每个更改都会触发一个事件.这些事件完整地描述了每个变化的前后状态. 监听事件 工作区具有可用于侦听事件流的addChangeListener方法和removeChangeListener方法 ...

  6. ECSHOP二次开发文档【文件结构和数据库表分析】

    Ecshop文件结构 ecshop文件架构说明 /* ECShop 2.5.1 的结构图及各文件相应功能介绍 ECShop2.5.1_Beta upload 的目录 ┣ activity.php 活动 ...

  7. ECSHOP二次开发文档【文件结构说明和数据库表分析】

    地址:https://www.cnblogs.com/nuanxin/p/8032743.html Ecshop文件结构 ecshop文件架构说明  /*  ECShop 2.5.1 的结构图及各文件 ...

  8. luajit开发文档中文版(二)LuaJIT扩展

    2022年6月10日15:33:04 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文 ...

  9. luajit开发文档wiki中文版(二) LuaJIT 扩展

    2022年6月9日09:39:53 luajit开发文档中文版(一)下载和安装 luajit开发文档中文版(二)LuaJIT扩展 luajit开发文档中文版(三)FAQ 常见问题 luajit开发文档 ...

最新文章

  1. 【Mongodb】 Replica set的自动故障切换
  2. python绘制坐标图_Python绘制主次坐标图
  3. (转)RTSP协议详解
  4. 2017.10.25笔记3
  5. 谷歌大佬花了半年整理的Leetcode刷题笔记
  6. 全球顶会论文作者,28天手把手带你复现顶会论文
  7. 概念验证_设置成功的UX概念验证
  8. 中国剩余定理求解“六位教授必须首次都停止上课”问题
  9. Unity3D下Linux平台播放RTSP或RTMP流
  10. 【Java】Java反射异常处理之InvocationTargetException
  11. MyEclipse 2017 CI 10 发布(附下载)
  12. 二叉树最小结构(C++版本)
  13. 计算机技术证明数学定理,数学要项定理公式证明辞典
  14. 数字图像处理(极简) 第一章 概述(docx)
  15. 【原创】2021-2000上市公司重污染企业数据、上市公司重污染行业数据(常用变量均包括,可直接用)
  16. python 126邮箱发送邮件
  17. 未来中国最热门的十大职业
  18. Mac升级系统后,Android Studio 不能用问题
  19. 点云深度学习:多一维看世界【VALSE Webinar】Panel实录
  20. 神经网络和算法的关系,神经网络的算法有哪些

热门文章

  1. 【Python】python通配符,使用通配符进行字符串匹配
  2. mysql between 空值_mysql中between关键字避免踩坑
  3. 龙兄鼠弟:Ipv4, Ipv6, Mtu, Mss, Fragmentation 那些事.
  4. 游泳耳机哪个牌子好、分享几款游泳听音乐最好的耳机推荐
  5. UIView的autoresizingMask属性的使用
  6. electron 第三方登录(钉钉)
  7. 性能测试,压力测试,负载测试的区别与联系
  8. cobbler+kickstart
  9. Python花式表白的几种姿势!马上就520了,准备好了吗!
  10. 数据 信息 知识 智慧