学写工具台(Workbench)

Chinese forum
johnwang
Posts: 42
Joined: Sun Jan 27, 2019 12:41 am

学写工具台(Workbench)

Postby johnwang » Tue Apr 09, 2019 10:15 am

我是在win 10下用FreeCAD0.17。FreeCAD安装在E:\Program Files\FreeCAD 0.17目录下。FreeCAD本身带的Workbench都装在其中的Mod子目录下。比如Mod\Surface就是Surface工具台。进入Mod\Surface目录,可以看到里面有Init.py和InitGui.py两个Python源文件。
下面以一个画box的工具为例子做一个工具台。我把它叫做hpBox工具台。hp代表什么呢?hp可以是你名字的缩写。比如你叫Harry Porter,缩写正好是hp. 这样可以和别人写的box工具台区分开来。因为别人写box工具台时取名hpBox的几率小。
首先在Mod目录里建一个hpBox子目录,然后把Mod\Surface子目录下的两个py文件拷过来。为了实现我们自己的功能,就得修改原来的代码。
Init.py是用于FreeCAD在终端命令行下运行时工具台的初始化。用一个文本编辑器打开该文件,会看里面只有两条注释语句。FreeCAD如何在终端命令行下运行,我没研究过,目前也不会在终端里运行,所以,这个文件保持原样,不做任何修改。
InitGui.py是用于FreeCAD在窗口下运行时工具台的初始化。这也是我们通常的运行方式。用一个文本编辑器打开该文件,可以看到里面有一个类(class)。类名就是工具台的名字。我们把类名SurfaceWorkbench改成hpBoxWorkbench。将最后一句把新工具台添加到FreeCAD工具台列表上的语句也改成添加hpBoxWorkbench。如果这时你运行FreeCAD,你在工具台列表里将看到两个Surface工具台。我们把MenuText = "Surface"一句改成MenuText = "hpBox",再次运行,就可以看到hpBox列在工具台列表里了。
paullee
Posts: 1826
Joined: Wed May 04, 2016 3:58 pm

Re: 学写工具台(Workbench)

Postby paullee » Mon Apr 15, 2019 5:15 pm

+1
User avatar
leeon
Posts: 29
Joined: Mon Mar 11, 2019 4:37 pm

Re: 学写工具台(Workbench)

Postby leeon » Fri Apr 26, 2019 12:14 pm

不错哦。
致力于FreeCAD的推广。

FreeCADweb.cn
johnwang
Posts: 42
Joined: Sun Jan 27, 2019 12:41 am

Re: 学写工具台(Workbench)

Postby johnwang » Fri Nov 15, 2019 10:09 am

leeon wrote:
Fri Apr 26, 2019 12:14 pm
不错哦。
谢谢鼓励。
johnwang
Posts: 42
Joined: Sun Jan 27, 2019 12:41 am

Re: 学写工具台(Workbench)

Postby johnwang » Fri Nov 15, 2019 10:24 am

工具台有了,工具从哪来呢?
在工具台类定义的初始化函数里,有这么几句

Code: Select all

    def Initialize(self):
        # load the module
        import SurfaceGui
        import Surface
其中输入的SurfaceGui和Surface就是工具的界面和实际的工具。搜素了一下,在lib目录下有这两个文件。后缀是pyd. 这个就是动态运行库,是用c语言编译而成的。原来工具台的工具也可以用c语言来写,我还以为只是用python呢。这下要学的就更多了。

开始学习这个
https://freecadweb.org/wiki/Workbench_creation
paullee
Posts: 1826
Joined: Wed May 04, 2016 3:58 pm

Re: 学写工具台(Workbench)

Postby paullee » Fri Nov 15, 2019 5:44 pm

johnwang wrote:
Fri Nov 15, 2019 10:24 am
...
其中输入的SurfaceGui和Surface就是工具的界面和实际的工具。
除了寫一個新的Workbench,也可以幫忙改善現有的如Arch等 :)
johnwang
Posts: 42
Joined: Sun Jan 27, 2019 12:41 am

Re: 学写工具台(Workbench)

Postby johnwang » Fri Nov 15, 2019 10:12 pm

paullee wrote:
Fri Nov 15, 2019 5:44 pm

除了寫一個新的Workbench,也可以幫忙改善現有的如Arch等 :)
我的truss是在建筑师画好房子后加上去的,所以没想过用arch wb. 有个flamigo wb似乎对我有用,还没细看。
paullee
Posts: 1826
Joined: Wed May 04, 2016 3:58 pm

Re: 学写工具台(Workbench)

Postby paullee » Sat Nov 16, 2019 1:50 am

Flamingo 近來演變成 Dodo :)