Page 1 of 1

用C语言在Surface工具台里添加一个工具

Posted: Thu Oct 08, 2020 4:05 am
by johnwang
首先你必须可以自己成功编译FreeCAD. 工具台是和FreeCAD一起编译的。

工具台选用Surface工具台,因为它是用C语言写的。

1。 在Fc的源码src目录,转到src/Mode/Surface/Gui。用文本编辑器打开command.cpp文件。在其最后的CreateSurfaceCommands函数里添加一个命令,我们叫它CBox, 也就是C语言版的Box命令的意思。

Code: Select all

...
    rcCmdMgr.addCommand(new CmdSurfaceCBox());
在文件最前面加入CBox的具体内容,它执行的时候只是显示一个消息窗口。

Code: Select all

DEF_STD_CMD(CmdSurfaceCBox)

CmdSurfaceCBox::CmdSurfaceCBox()
  :Command("Surface_CBox")
{
    sAppModule    = "Surface";
    sGroup        = QT_TR_NOOP("Surface");
    sMenuText     = QT_TR_NOOP("Surface CBox function");
    sToolTipText  = QT_TR_NOOP("Create a box with C");
    sWhatsThis    = "Surface_CBox";
    sStatusTip    = QT_TR_NOOP("Surface CBox function");
    sPixmap       = "Surface_CBox";
    sAccel        = "CTRL+B";
}

void CmdSurfaceCBox::activated(int iMsg)
{
    Q_UNUSED(iMsg);
    QMessageBox::warning(Gui::getMainWindow(), QObject::tr("CBOX"),
            QObject::tr("This is the CBox."));
}
2. 用文本编辑器打开Workbench.cpp。在其最后的Gui::ToolBarItem* Workbench::setupToolBars() const函数里,把CBox命令加入到工具条上:

Code: Select all

...
    *surface << "Surface_CBox"; 

    return root;
3. 转到Resources目录。用文本编辑器打开Surface.qrc文件,加入:

Code: Select all

...
        <file>icons/Surface_CBox.svg</file>
    </qresource>o
</RCC> 
把文末附带的Surface_CBox.svg图标文件考入到icons目录下。

4. 在Visual Studio里打开freecad项目,在其右侧的Solution Explorer结构树上找到SurfaceGui节点,右键点击,选Build编译。

5. 编译好后,执行新编译的fc。加载Surface工具台,就可以看到工具条上的新工具了。
cbox.jpg
cbox.jpg (25.57 KiB) Viewed 3257 times
Surface_CBox.svg
(5.2 KiB) Downloaded 235 times

Re: 用C语言在工具台里添加一个工具

Posted: Thu Oct 08, 2020 3:34 pm
by paullee
感謝,可惜我時間學習了,只在學一些 python :D