一. FreeCAD的二次開發(fā)
freecad作為一款開源的三維軟件蓖乘,開發(fā)相當(dāng)簡便,使用python開發(fā)也更為簡單。
二.環(huán)境配置
我是使用pycharm直接編輯新建的工作臺文件夾能犯,freecad自帶的python2.7作為編譯環(huán)境。
三. 主要文件
在mod文件夾下的工作臺主要文件有
init.py 表示執(zhí)行開始项棠,一般沒有實(shí)際內(nèi)容悲雳,可以為空挎峦,但必須要有香追;
InitGui.py 工作臺的ui內(nèi)容;
然后就是其他的command文件坦胶;
四. InitGui.py的內(nèi)容
# -*- coding: utf-8 -*-
# _TEMPLATEPY_ gui init module
# (c) 2001 Juergen Riegel
# License LGPL
# 繼承workbench類透典,
class _TEMPLATEPY_Workbench ( Workbench ):#類名便是python控制臺里的名字
"_TEMPLATEPY_ workbench object"
#加載工作臺圖標(biāo)
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#導(dǎo)入插件的工具欄
#導(dǎo)入我的第二個(gè)工具欄
self.appendToolbar('WeiGan',['_TEMPLATEPY__HelloWorld','MySecondCommand'])#把按鈕添加為toolbar(模塊),第一個(gè)是工作臺的名字顿苇,第二個(gè)是按鈕列表
self.appendMenu('WeiGan',['_TEMPLATEPY__HelloWorld','MySecondCommand'])#把按鈕添加到菜單欄里
def GetClassName(self):
return "Gui::PythonWorkbench"
Gui.addWorkbench(_TEMPLATEPY_Workbench())
五. 如何新建一個(gè)按鈕
···
-- coding: utf-8 --
FreeCAD tools of the TEMPLATEPY workbench
(c) 2001 Juergen Riegel
License LGPL
import FreeCAD, FreeCADGui
class MySecondCommand:
def Activated(self): #點(diǎn)擊按鈕執(zhí)行的動作
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())
···