添加一个菜单项

Chinese forum

Moderator: paullee

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

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

添加一个菜单项

Post by johnwang »

这个涉及GUI. 应该是在FreeCADGui项目里添加。

1.Workbench.cpp

找到

Code: Select all

MenuItem* StdWorkbench::setupMenuBar() const
在里面加入一个FEA菜单。该菜单下加一个Solve子菜单。

Code: Select all

    // FEA
    MenuItem* bjfea = new MenuItem(menuBar);
    bjfea->setCommand("Fe&a");
    *bjfea << "Std_bjSolve";
2. CommandStd.cpp

加入Solve命令的定义:

Code: Select all

//===========================================================================
// Std_bjSolve
//===========================================================================

DEF_STD_CMD(StdCmdbjSolve)

StdCmdbjSolve::StdCmdbjSolve()
    :Command("Std_bjSolve")
{
    sGroup = "Solve";
    sMenuText = QT_TR_NOOP("Solve");
    sToolTipText = QT_TR_NOOP("Run Nastran95.exe");
    sWhatsThis = "Std_bjSolve";
    sStatusTip = QT_TR_NOOP("Solve");
    sPixmap = "help-browser";
    sAccel = keySequenceToAccel(QKeySequence::HelpContents);
    eType = 0;
}

void StdCmdbjSolve::activated(int iMsg)
{
    Q_UNUSED(iMsg);
    Gui::getMainWindow()->showDocumentation(QString::fromLatin1("Online_Help_Startpage"));
    //在此之下,添加你自己的功能
}
其中命令激活后的功能是复制的help的功能。你要改成你自己想做的事。

找到:

Code: Select all

void CreateStdCommands(void)
在里面加入:

Code: Select all

    rcCmdMgr.addCommand(new StdCmdbjSolve());
3. 重新编译FreeCADGui项目就可以了。
feamenu.jpg
feamenu.jpg (5.07 KiB) Viewed 4206 times
hfc series CAE workbenches for FreeCAD (hfcNastran95, hfcMystran, hfcFrame3DD, hfcSU2 and more)
gildea715
Posts: 28
Joined: Fri Mar 11, 2022 7:28 pm

Re: 添加一个菜单项

Post by gildea715 »

谢谢太有帮助了,请问如何重新编译FreeCADGui项目
User avatar
johnwang
Veteran
Posts: 1089
Joined: Sun Jan 27, 2019 12:41 am

Re: 添加一个菜单项

Post by johnwang »

gildea715 wrote: Thu Mar 17, 2022 9:07 pm 谢谢太有帮助了,请问如何重新编译FreeCADGui项目
你自己编译过freecad么?
hfc series CAE workbenches for FreeCAD (hfcNastran95, hfcMystran, hfcFrame3DD, hfcSU2 and more)
gildea715
Posts: 28
Joined: Fri Mar 11, 2022 7:28 pm

Re: 添加一个菜单项

Post by gildea715 »

你好,我有许多的python编程经验但是我是最近才接触的freecad,所以对freecad不太熟悉。 我也确实没有对开源项目进行重新编程的经验。我也有去寻找一些对编译freecad有帮助的教程,虽然对我很有帮助但是没有找到一些基础的。如果你有认识一些freecad的 简单编译的教程可以分享的话,我真的万分感谢.
gildea715
Posts: 28
Joined: Fri Mar 11, 2022 7:28 pm

Re: 添加一个菜单项

Post by gildea715 »

你好,谢谢你的这篇帖子。我已经用CMake 编译成功freecad了。我修改完上面的代码后,我按照CMake 的代码build free cad 但是失败了。

Code: Select all

=================================================
Now run 'cmake --build D:/Download/Recompliation-FreeCad/FreeCAD-Build' to build FreeCAD
=================================================

我怀疑应该是我在错误的terminal使用这段build command。
他的错误信息是

Code: Select all

fatal error C1083: Cannot open include file: 'Qua
ntity_Color.hxx'
fatal error C1083: Cannot open include file: 'Qua
ntity_Color.hxx'
等等无法打开include file的问题。万分感谢!
User avatar
johnwang
Veteran
Posts: 1089
Joined: Sun Jan 27, 2019 12:41 am

Re: 添加一个菜单项

Post by johnwang »

按你第一次编译freecad的方法,再编译一遍就可以了。
hfc series CAE workbenches for FreeCAD (hfcNastran95, hfcMystran, hfcFrame3DD, hfcSU2 and more)
gildea715
Posts: 28
Joined: Fri Mar 11, 2022 7:28 pm

Re: 添加一个菜单项

Post by gildea715 »

万分感谢!
gildea715
Posts: 28
Joined: Fri Mar 11, 2022 7:28 pm

Re: 添加一个菜单项

Post by gildea715 »

万分感谢你的帮助,我还有一个简单的问题。是不是每次我做修改的时候我都需要build 整个project来看它的变化。因为build 一下可能需要20分钟,请问有没有一些简单的办法可以看到我做的变化?
User avatar
johnwang
Veteran
Posts: 1089
Joined: Sun Jan 27, 2019 12:41 am

Re: 添加一个菜单项

Post by johnwang »

Fc包括很多目标子项目。
这里的修改全在FreeCADGui子项目下。所以我一开始就说了,编译这个子项目就可以了。选中这个子项目,右键,build.
hfc series CAE workbenches for FreeCAD (hfcNastran95, hfcMystran, hfcFrame3DD, hfcSU2 and more)
gildea715
Posts: 28
Joined: Fri Mar 11, 2022 7:28 pm

Re: 添加一个菜单项

Post by gildea715 »

感谢!!! :)
Post Reply