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

Chinese forum

Moderator: paullee

Forum rules
论坛规矩 / 論壇規矩 , 有用的资讯 / 有用的資訊
重要:寻求帮助之前,请先看看这里 /
重要:尋求幫助之前,請先看看這裡

另外,对论坛用户 友善!阅读FreeCAD 行为准则!
/ 另外,對論壇用戶 友善! 閱讀FreeCAD
行為準則
Post Reply
User avatar
johnwang
Veteran
Posts: 1345
Joined: Sun Jan 27, 2019 12:41 am

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

Post 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 3205 times
Surface_CBox.svg
(5.2 KiB) Downloaded 234 times
Last edited by johnwang on Mon Nov 02, 2020 10:13 pm, edited 1 time in total.
hfc series CAE workbenches for FreeCAD (hfcNastran95, hfcMystran, hfcFrame3DD, hfcSU2 and more)
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

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

Post by paullee »

感謝,可惜我時間學習了,只在學一些 python :D
Post Reply