一. 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())
···