用C语言在Surface工具台里添加一个工具
Posted: Thu Oct 08, 2020 4:05 am
首先你必须可以自己成功编译FreeCAD. 工具台是和FreeCAD一起编译的。
工具台选用Surface工具台,因为它是用C语言写的。
1。 在Fc的源码src目录,转到src/Mode/Surface/Gui。用文本编辑器打开command.cpp文件。在其最后的CreateSurfaceCommands函数里添加一个命令,我们叫它CBox, 也就是C语言版的Box命令的意思。
在文件最前面加入CBox的具体内容,它执行的时候只是显示一个消息窗口。
2. 用文本编辑器打开Workbench.cpp。在其最后的Gui::ToolBarItem* Workbench::setupToolBars() const函数里,把CBox命令加入到工具条上:
3. 转到Resources目录。用文本编辑器打开Surface.qrc文件,加入:
把文末附带的Surface_CBox.svg图标文件考入到icons目录下。
4. 在Visual Studio里打开freecad项目,在其右侧的Solution Explorer结构树上找到SurfaceGui节点,右键点击,选Build编译。
5. 编译好后,执行新编译的fc。加载Surface工具台,就可以看到工具条上的新工具了。
工具台选用Surface工具台,因为它是用C语言写的。
1。 在Fc的源码src目录,转到src/Mode/Surface/Gui。用文本编辑器打开command.cpp文件。在其最后的CreateSurfaceCommands函数里添加一个命令,我们叫它CBox, 也就是C语言版的Box命令的意思。
Code: Select all
...
rcCmdMgr.addCommand(new CmdSurfaceCBox());
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."));
}
Code: Select all
...
*surface << "Surface_CBox";
return root;
Code: Select all
...
<file>icons/Surface_CBox.svg</file>
</qresource>o
</RCC>
4. 在Visual Studio里打开freecad项目,在其右侧的Solution Explorer结构树上找到SurfaceGui节点,右键点击,选Build编译。
5. 编译好后,执行新编译的fc。加载Surface工具台,就可以看到工具条上的新工具了。