Part: add/update GUI commands

* Updated translation contexts for  Gui commands for JoinFeatures.
* Added Gui commands for Split tools: BooleanFragments, Slice, XOR.
Icons.
This commit is contained in:
DeepSOIC 2016-07-29 14:20:52 +03:00
parent c069987e41
commit e9b31ddb6a
6 changed files with 693 additions and 11 deletions

View File

@ -33,6 +33,7 @@
# include <TopoDS_Shape.hxx> # include <TopoDS_Shape.hxx>
# include <TopExp_Explorer.hxx> # include <TopExp_Explorer.hxx>
# include <Inventor/events/SoMouseButtonEvent.h> # include <Inventor/events/SoMouseButtonEvent.h>
# include <Standard_Version.hxx>
#endif #endif
#include <Base/Console.h> #include <Base/Console.h>
@ -569,25 +570,25 @@ void CmdPartCompJoinFeatures::languageChange()
Gui::Command* joinConnect = rcCmdMgr.getCommandByName("Part_JoinConnect"); Gui::Command* joinConnect = rcCmdMgr.getCommandByName("Part_JoinConnect");
if (joinConnect) { if (joinConnect) {
QAction* cmd0 = a[0]; QAction* cmd0 = a[0];
cmd0->setText(QApplication::translate("PartCompJoinFeatures", joinConnect->getMenuText())); cmd0->setText(QApplication::translate("Part_JoinFeatures", joinConnect->getMenuText()));
cmd0->setToolTip(QApplication::translate("Part_JoinConnect", joinConnect->getToolTipText())); cmd0->setToolTip(QApplication::translate("Part_JoinFeatures", joinConnect->getToolTipText()));
cmd0->setStatusTip(QApplication::translate("Part_JoinConnect", joinConnect->getStatusTip())); cmd0->setStatusTip(QApplication::translate("Part_JoinFeatures", joinConnect->getStatusTip()));
} }
Gui::Command* joinEmbed = rcCmdMgr.getCommandByName("Part_JoinEmbed"); Gui::Command* joinEmbed = rcCmdMgr.getCommandByName("Part_JoinEmbed");
if (joinEmbed) { if (joinEmbed) {
QAction* cmd1 = a[1]; QAction* cmd1 = a[1];
cmd1->setText(QApplication::translate("PartCompJoinFeatures", joinEmbed->getMenuText())); cmd1->setText(QApplication::translate("Part_JoinFeatures", joinEmbed->getMenuText()));
cmd1->setToolTip(QApplication::translate("Part_JoinEmbed", joinEmbed->getToolTipText())); cmd1->setToolTip(QApplication::translate("Part_JoinFeatures", joinEmbed->getToolTipText()));
cmd1->setStatusTip(QApplication::translate("Part_JoinEmbed", joinEmbed->getStatusTip())); cmd1->setStatusTip(QApplication::translate("Part_JoinFeatures", joinEmbed->getStatusTip()));
} }
Gui::Command* joinCutout = rcCmdMgr.getCommandByName("Part_JoinCutout"); Gui::Command* joinCutout = rcCmdMgr.getCommandByName("Part_JoinCutout");
if (joinCutout) { if (joinCutout) {
QAction* cmd2 = a[2]; QAction* cmd2 = a[2];
cmd2->setText(QApplication::translate("PartCompJoinFeatures", joinCutout->getMenuText())); cmd2->setText(QApplication::translate("Part_JoinFeatures", joinCutout->getMenuText()));
cmd2->setToolTip(QApplication::translate("Part_JoinCutout", joinCutout->getToolTipText())); cmd2->setToolTip(QApplication::translate("Part_JoinFeatures", joinCutout->getToolTipText()));
cmd2->setStatusTip(QApplication::translate("Part_JoinCutout", joinCutout->getStatusTip())); cmd2->setStatusTip(QApplication::translate("Part_JoinFeatures", joinCutout->getStatusTip()));
} }
} }
@ -599,6 +600,116 @@ bool CmdPartCompJoinFeatures::isActive(void)
return false; return false;
} }
//===========================================================================
// Part_CompSplitFeatures (dropdown toolbar button for BooleanFragments, Slice)
//===========================================================================
DEF_STD_CMD_ACL(CmdPartCompSplitFeatures);
CmdPartCompSplitFeatures::CmdPartCompSplitFeatures()
: Command("Part_CompSplitFeatures")
{
sAppModule = "Part";
sGroup = QT_TR_NOOP("Part");
sMenuText = QT_TR_NOOP("Split objects...");
sToolTipText = QT_TR_NOOP("Shape splitting tools. Compsolid creation tools. OCC 6.9.0 or later is required.");
sWhatsThis = "Part_CompSplitFeatures";
sStatusTip = sToolTipText;
}
void CmdPartCompSplitFeatures::activated(int iMsg)
{
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();
if (iMsg==0)
rcCmdMgr.runCommandByName("Part_BooleanFragments");
else if (iMsg==1)
rcCmdMgr.runCommandByName("Part_Slice");
else if (iMsg==2)
rcCmdMgr.runCommandByName("Part_XOR");
else
return;
// Since the default icon is reset when enabing/disabling the command we have
// to explicitly set the icon of the used command.
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
QList<QAction*> a = pcAction->actions();
assert(iMsg < a.size());
pcAction->setIcon(a[iMsg]->icon());
}
Gui::Action * CmdPartCompSplitFeatures::createAction(void)
{
Gui::ActionGroup* pcAction = new Gui::ActionGroup(this, Gui::getMainWindow());
pcAction->setDropDownMenu(true);
applyCommandData(this->className(), pcAction);
QAction* cmd0 = pcAction->addAction(QString());
cmd0->setIcon(Gui::BitmapFactory().pixmap("Part_BooleanFragments"));
QAction* cmd1 = pcAction->addAction(QString());
cmd1->setIcon(Gui::BitmapFactory().pixmap("Part_Slice"));
QAction* cmd2 = pcAction->addAction(QString());
cmd2->setIcon(Gui::BitmapFactory().pixmap("Part_XOR"));
_pcAction = pcAction;
languageChange();
pcAction->setIcon(cmd0->icon());
int defaultId = 0;
pcAction->setProperty("defaultAction", QVariant(defaultId));
return pcAction;
}
void CmdPartCompSplitFeatures::languageChange()
{
Command::languageChange();
if (!_pcAction)
return;
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
QList<QAction*> a = pcAction->actions();
Gui::Command* splitBoolFragments = rcCmdMgr.getCommandByName("Part_BooleanFragments");
if (splitBoolFragments) {
QAction* cmd0 = a[0];
cmd0->setText(QApplication::translate("Part_SplitFeatures", splitBoolFragments->getMenuText()));
cmd0->setToolTip(QApplication::translate("Part_SplitFeatures", splitBoolFragments->getToolTipText()));
cmd0->setStatusTip(QApplication::translate("Part_SplitFeatures", splitBoolFragments->getStatusTip()));
}
Gui::Command* splitSlice = rcCmdMgr.getCommandByName("Part_Slice");
if (splitSlice) {
QAction* cmd1 = a[1];
cmd1->setText(QApplication::translate("Part_SplitFeatures", splitSlice->getMenuText()));
cmd1->setToolTip(QApplication::translate("Part_SplitFeatures", splitSlice->getToolTipText()));
cmd1->setStatusTip(QApplication::translate("Part_SplitFeatures", splitSlice->getStatusTip()));
}
Gui::Command* splitXOR = rcCmdMgr.getCommandByName("Part_XOR");
if (splitXOR) {
QAction* cmd2 = a[2];
cmd2->setText(QApplication::translate("Part_SplitFeatures", splitXOR->getMenuText()));
cmd2->setToolTip(QApplication::translate("Part_SplitFeatures", splitXOR->getToolTipText()));
cmd2->setStatusTip(QApplication::translate("Part_SplitFeatures", splitXOR->getStatusTip()));
}
}
bool CmdPartCompSplitFeatures::isActive(void)
{
if (getActiveGuiDocument())
#if OCC_VERSION_HEX < 0x060900
return false;
#else
return true;
#endif
else
return false;
}
//=========================================================================== //===========================================================================
// Part_Compound // Part_Compound
//=========================================================================== //===========================================================================
@ -1909,6 +2020,7 @@ void CreatePartCommands(void)
rcCmdMgr.addCommand(new CmdPartCut()); rcCmdMgr.addCommand(new CmdPartCut());
rcCmdMgr.addCommand(new CmdPartFuse()); rcCmdMgr.addCommand(new CmdPartFuse());
rcCmdMgr.addCommand(new CmdPartCompJoinFeatures()); rcCmdMgr.addCommand(new CmdPartCompJoinFeatures());
rcCmdMgr.addCommand(new CmdPartCompSplitFeatures());
rcCmdMgr.addCommand(new CmdPartCompound()); rcCmdMgr.addCommand(new CmdPartCompound());
rcCmdMgr.addCommand(new CmdPartSection()); rcCmdMgr.addCommand(new CmdPartSection());
//rcCmdMgr.addCommand(new CmdPartBox2()); //rcCmdMgr.addCommand(new CmdPartBox2());

View File

@ -5,6 +5,7 @@
<file>icons/PartFeatureImport.xpm</file> <file>icons/PartFeatureImport.xpm</file>
<file>icons/Part_Attachment.svg</file> <file>icons/Part_Attachment.svg</file>
<file>icons/Part_Booleans.svg</file> <file>icons/Part_Booleans.svg</file>
<file>icons/Part_BooleanFragments.svg</file>
<file>icons/Part_Box.svg</file> <file>icons/Part_Box.svg</file>
<file>icons/Part_Chamfer.svg</file> <file>icons/Part_Chamfer.svg</file>
<file>icons/Part_Common.svg</file> <file>icons/Part_Common.svg</file>
@ -28,10 +29,12 @@
<file>icons/Part_CrossSections.svg</file> <file>icons/Part_CrossSections.svg</file>
<file>icons/Part_Shapebuilder.png</file> <file>icons/Part_Shapebuilder.png</file>
<file>icons/Part_ShapeInfo.svg</file> <file>icons/Part_ShapeInfo.svg</file>
<file>icons/Part_Slice.svg</file>
<file>icons/Part_Sphere.svg</file> <file>icons/Part_Sphere.svg</file>
<file>icons/Part_Sweep.svg</file> <file>icons/Part_Sweep.svg</file>
<file>icons/Part_Thickness.svg</file> <file>icons/Part_Thickness.svg</file>
<file>icons/Part_Torus.svg</file> <file>icons/Part_Torus.svg</file>
<file>icons/Part_XOR.svg</file>
<file>icons/preferences-part_design.svg</file> <file>icons/preferences-part_design.svg</file>
<file>icons/Tree_Part.svg</file> <file>icons/Tree_Part.svg</file>
<file>icons/Part_CheckGeometry.svg</file> <file>icons/Part_CheckGeometry.svg</file>

View File

@ -0,0 +1,206 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2568"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Part_Booleans.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2570">
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3593">
<stop
style="stop-color:#c8e0f9;stop-opacity:1;"
offset="0"
id="stop3595" />
<stop
style="stop-color:#637dca;stop-opacity:1;"
offset="1"
id="stop3597" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2576" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-8"
id="radialGradient3094"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.95535607,0,0,0.95539836,-8.548892,-12.077169)"
cx="51.637894"
cy="24.962704"
fx="51.637894"
fy="24.962704"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-6"
id="radialGradient3634"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.542613,0.570754,-0.2959998,0.2814055,118.56568,-25.069586)"
cx="81.866722"
cy="12.084522"
fx="81.866722"
fy="12.084522"
r="19.571428" />
<linearGradient
id="linearGradient3864-6">
<stop
id="stop3866-0"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868-6"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-8"
id="radialGradient3634-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.542613,0.570754,-0.2959998,0.2814055,118.56568,-25.069586)"
cx="81.866722"
cy="12.084522"
fx="81.866722"
fy="12.084522"
r="19.571428" />
<linearGradient
id="linearGradient3864-8">
<stop
id="stop3866-4"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868-9"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
r="19.571428"
fy="12.084522"
fx="81.866722"
cy="12.084522"
cx="81.866722"
gradientTransform="matrix(0.38078949,0.40007655,-0.20772376,0.19725441,1.0290225,-8.1325274)"
gradientUnits="userSpaceOnUse"
id="radialGradient3058"
xlink:href="#linearGradient3864-8"
inkscape:collect="always" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3136"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0690889,0,0,1.0691362,-35.029998,5.7483177)"
cx="48.645836"
cy="25.149042"
fx="48.645836"
fy="25.149042"
r="19.571428" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="32"
inkscape:cy="32"
inkscape:current-layer="g3912"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1113"
inkscape:window-height="684"
inkscape:window-x="0"
inkscape:window-y="93"
inkscape:window-maximized="0" />
<metadata
id="metadata2573">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3560"
transform="translate(8.7385455e-2,-0.7238878)">
<g
id="g3912"
transform="matrix(0.99373286,0,0,0.38750794,2.7398647,38.320441)">
<path
style="fill:#000000;fill-opacity:0.45801529;fill-rule:evenodd;stroke:none;stroke-width:2.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 20.49763,22.92386 C 10.171118,23.627396 2.0092055,32.209267 2.0092055,42.714746 c 0,10.965826 8.8838305,19.850051 19.8491725,19.850051 10.824365,0 19.624655,-8.66486 19.849172,-19.435892 -6.456994,-3.000476 -17.606437,-6.308587 -21.476154,-17.365097 0,-0.969344 0.116669,-1.912809 0.266234,-2.839948 z"
id="path3138"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssccc" />
<path
style="fill:#000000;fill-opacity:0.45801529;fill-rule:evenodd;stroke:none;stroke-width:2.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 42.283044,3.1948292 c -8.829516,0 -16.120247,6.4642616 -17.482654,14.9097248 0.452506,-0.03083 0.904747,-0.220654 1.360748,-0.05917 10.599411,3.753589 15.64098,11.230218 19.849172,19.850052 0.04296,0.08799 0.0029,0.273878 0,0.414159 8.011483,-1.710645 14.021622,-8.8428 14.021622,-17.365097 0,-9.79925 -7.950072,-17.7496728 -17.748888,-17.7496688 z"
id="path3140"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scsscss" />
<path
inkscape:connector-curvature="0"
id="path3142"
d="m 26.1304,22.66174 c -0.399011,0 -0.779102,0.02126 -1.171309,0.04515 -0.130355,0.711425 -0.203705,1.423499 -0.203705,2.167414 0,7.474822 6.822161,13.54635 15.252468,13.54635 1.09856,0 2.175367,-0.09778 3.208365,-0.293504 0.0024,-0.104055 0,-0.211523 0,-0.31608 0,-8.364682 -7.651912,-15.149336 -17.085819,-15.149335 z"
style="fill:#000000;fill-opacity:0.45801529;fill-rule:evenodd;stroke:none;stroke-width:2.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<path
style="fill:url(#radialGradient3136);fill-opacity:1;fill-rule:evenodd;stroke:#000137;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 20.49763,22.92386 C 10.171118,23.627396 2.0092055,32.209267 2.0092055,42.714746 c 0,10.965826 8.8838305,19.850051 19.8491725,19.850051 10.824365,0 19.624655,-8.66486 19.849172,-19.435892 -1.200414,0.256317 -2.450368,0.384576 -3.727266,0.384576 -9.798816,0 -17.748888,-7.950423 -17.748888,-17.749673 0,-0.969344 0.116669,-1.912809 0.266234,-2.839948 z"
id="path3550"
inkscape:connector-curvature="0" />
<path
style="fill:url(#radialGradient3094);fill-opacity:1.0;fill-rule:evenodd;stroke:#000000;stroke-width:2.20000004999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 42.283044,3.1948292 c -8.829516,0 -16.120247,6.4642616 -17.482654,14.9097248 0.452506,-0.03083 0.90042,-0.05917 1.360748,-0.05917 10.965341,0 19.849172,8.884225 19.849172,19.850052 0,0.140982 0.0029,0.273878 0,0.414159 8.011483,-1.710645 14.021622,-8.8428 14.021622,-17.365097 0,-9.79925 -7.950072,-17.7496728 -17.748888,-17.7496728 z"
id="path3087"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path3605"
d="m 25.939623,23.130939 c -0.34365,0 -0.671005,0.02063 -1.008795,0.04381 -0.112269,0.690244 -0.175442,1.381117 -0.175442,2.102883 0,7.25227 5.875617,13.143027 13.136257,13.143027 0.946139,0 1.873544,-0.09487 2.763218,-0.284765 0.0021,-0.100957 0,-0.205226 0,-0.30667 0,-8.115635 -6.590243,-14.698286 -14.715238,-14.698285 z"
style="fill:url(#radialGradient3058);fill-opacity:1;fill-rule:evenodd;stroke:#000137;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2605"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Part_Common.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2607">
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3634"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30708915,0.72517946,-0.37608666,0.15926004,144.43738,-41.038703)"
cx="81.866722"
cy="12.084522"
fx="81.866722"
fy="12.084522"
r="19.571428" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2613" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-7"
id="radialGradient3784"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7037846,0.9728679,-1.3005398,0.9408264,121.13694,-67.560812)"
cx="109.47948"
cy="-6.229341"
fx="109.47948"
fy="-6.229341"
r="19.571428" />
<linearGradient
id="linearGradient3864-7">
<stop
id="stop3866-1"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868-1"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
r="19.571428"
fy="-6.229341"
fx="109.47948"
cy="-6.229341"
cx="109.47948"
gradientTransform="matrix(0.7037846,0.9728679,-1.3005398,0.9408264,121.13694,-67.560812)"
gradientUnits="userSpaceOnUse"
id="radialGradient3009"
xlink:href="#linearGradient3864-7"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="32"
inkscape:cy="32"
inkscape:current-layer="g3640"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="986"
inkscape:window-x="-11"
inkscape:window-y="-11"
inkscape:window-maximized="1" />
<metadata
id="metadata2610">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3640"
transform="translate(-129.29181,-0.6692279)">
<path
id="path3636"
d="m 161.61943,45.663377 c -0.59617,-0.09885 -1.16582,-0.182465 -1.75378,-0.26778 -0.25328,0.320561 -0.42143,0.655568 -0.48262,1.02454 -0.61471,3.707397 9.07909,8.408892 21.67496,10.497399 1.64137,0.272157 3.25829,0.490423 4.81781,0.649261 0.0125,-0.05096 0.0174,-0.10493 0.026,-0.156783 0.6879,-4.148757 -10.187,-9.409516 -24.28236,-11.746652 z"
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.98973471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:connector-curvature="0" />
<g
id="g3706"
transform="translate(-67.634718,0.17619367)"
style="fill:#908c8c;fill-opacity:1">
<path
transform="matrix(1.0092422,0,0,1.0092422,183.40104,-12.283801)"
d="m 71.785715,34.571426 c 0,10.256717 -8.314712,18.571429 -18.571428,18.571429 -10.256717,0 -18.571428,-8.314712 -18.571428,-18.571429 0,-10.256716 8.314711,-18.571428 18.571428,-18.571428 10.256716,0 18.571428,8.314712 18.571428,18.571428 z"
sodipodi:ry="18.571428"
sodipodi:rx="18.571428"
sodipodi:cy="34.571426"
sodipodi:cx="53.214287"
id="path3664"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000137;stroke-width:2.17985344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:type="arc" />
<path
inkscape:connector-curvature="0"
id="path3686"
d="m 230.09375,52.522322 c -10.89909,0.205981 -19.53124,2.700494 -19.53125,5.750333 0,3.184529 9.39089,5.767524 20.96875,5.767524 11.43314,0 20.73789,-2.517585 20.96875,-5.647188 -1.26776,0.07451 -2.58928,0.11174 -3.9375,0.11174 -10.34618,0 -18.71875,-2.3115 -18.71875,-5.157249 0,-0.283217 0.09,-0.554312 0.25,-0.82516 z"
style="opacity:0.66523605;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.98973471;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
inkscape:connector-curvature="0"
id="path3654"
d="m 218.625,19.59375 c -10.89909,0.748877 -19.53124,9.818077 -19.53125,20.90625 0,11.577861 9.39089,20.96875 20.96875,20.96875 11.43314,0 20.73789,-9.153079 20.96875,-20.53125 -1.26776,0.270909 -2.58928,0.40625 -3.9375,0.40625 -10.34618,-2e-6 -18.71875,-8.403826 -18.71875,-18.75 0,-1.02968 0.09,-2.01529 0.25,-3 z"
style="fill:url(#radialGradient3009);fill-opacity:1;fill-rule:evenodd;stroke:#000137;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<path
id="path3605"
d="m 161.97104,13.19993 c -0.45837,-0.172302 -0.90537,-0.308886 -1.36757,-0.447295 -0.49622,0.865451 -0.92728,1.756359 -1.28959,2.720194 -3.6404,9.684565 1.2398,20.496957 10.92437,24.137361 1.26201,0.474384 2.54664,0.812688 3.82865,1.005176 0.0535,-0.133761 0.10302,-0.274055 0.15394,-0.409523 4.07378,-10.837489 -1.41231,-22.932133 -12.2498,-27.005913 z"
style="fill:url(#radialGradient3634);fill-opacity:1;fill-rule:evenodd;stroke:#000137;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2568"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Part_BooleanFragments.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs2570">
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3593">
<stop
style="stop-color:#c8e0f9;stop-opacity:1;"
offset="0"
id="stop3595" />
<stop
style="stop-color:#637dca;stop-opacity:1;"
offset="1"
id="stop3597" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective2576" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-8"
id="radialGradient3094"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.009587,0,0,1.0096217,-13.183145,-11.125744)"
cx="51.637894"
cy="24.962704"
fx="51.637894"
fy="24.962704"
r="19.571428" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-6"
id="radialGradient3634"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.542613,0.570754,-0.2959998,0.2814055,118.56568,-25.069586)"
cx="81.866722"
cy="12.084522"
fx="81.866722"
fy="12.084522"
r="19.571428" />
<linearGradient
id="linearGradient3864-6">
<stop
id="stop3866-0"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868-6"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864-8"
id="radialGradient3634-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.542613,0.570754,-0.2959998,0.2814055,118.56568,-25.069586)"
cx="81.866722"
cy="12.084522"
fx="81.866722"
fy="12.084522"
r="19.571428" />
<linearGradient
id="linearGradient3864-8">
<stop
id="stop3866-4"
offset="0"
style="stop-color:#71b2f8;stop-opacity:1;" />
<stop
id="stop3868-9"
offset="1"
style="stop-color:#002795;stop-opacity:1;" />
</linearGradient>
<radialGradient
r="19.571428"
fy="12.084522"
fx="81.866722"
cy="12.084522"
cx="81.866722"
gradientTransform="matrix(0.38078949,0.40007655,-0.20772376,0.19725441,1.0290225,-8.1325274)"
gradientUnits="userSpaceOnUse"
id="radialGradient3058"
xlink:href="#linearGradient3864-8"
inkscape:collect="always" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3864"
id="radialGradient3136"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1297758,0,0,1.1298147,-37.132532,2.5237176)"
cx="48.645836"
cy="25.149042"
fx="48.645836"
fy="25.149042"
r="19.571428" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="32"
inkscape:cy="32"
inkscape:current-layer="g3912"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="986"
inkscape:window-x="-11"
inkscape:window-y="-11"
inkscape:window-maximized="1" />
<metadata
id="metadata2573">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<g
id="g3560"
transform="translate(8.7385455e-2,-0.7238878)">
<g
id="g3912"
transform="matrix(0.99373286,0,0,0.38750794,2.7398647,38.320441)">
<path
style="fill:#000000;fill-opacity:0.45801529;fill-rule:evenodd;stroke:none;stroke-width:2.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 20.654932,22.58659 C 10.24056,23.296112 2.0092055,31.950999 2.0092055,42.545859 c 0,11.059125 8.9594155,20.018938 20.0180515,20.018938 10.91646,0 19.791624,-8.738582 20.018051,-19.601255 -6.511931,-3.026004 -17.756234,-6.362261 -21.658875,-17.512841 0,-0.977591 0.117661,-1.929083 0.268499,-2.864111 z"
id="path3138"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssccc" />
<path
style="fill:#000000;fill-opacity:0.45801529;fill-rule:evenodd;stroke:none;stroke-width:2.20000005;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 38.935268,6.948418 c -8.904639,0 -16.2574,6.51926 -17.631399,15.036578 0.456356,-0.03109 0.912445,-0.222531 1.372326,-0.05967 10.689592,3.785525 15.774055,11.325766 20.018051,20.018938 0.04333,0.08874 0.0029,0.276208 0,0.417683 8.079645,-1.725199 14.140919,-8.918036 14.140919,-17.512841 0,-9.882624 -8.017712,-17.900689 -17.899897,-17.900685 z"
id="path3140"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scsscss" />
</g>
<path
style="fill:url(#radialGradient3136);fill-opacity:1;fill-rule:evenodd;stroke:#000137;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 21.547127,20.674053 C 10.63443,21.417518 2.0092055,30.48645 2.0092055,41.588164 c 0,11.588189 9.3881225,20.976635 20.9759125,20.976635 11.438811,0 20.738651,-9.156631 20.975913,-20.53897 -1.268556,0.270864 -2.589464,0.406402 -3.938845,0.406402 -10.355047,0 -18.756406,-8.401646 -18.756406,-18.75705 0,-1.024359 0.123292,-2.02137 0.281347,-3.001128 z"
id="path3550"
inkscape:connector-curvature="0" />
<path
style="fill:url(#radialGradient3094);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 40.534271,5.0130116 c -9.330724,0 -17.035314,6.8311394 -18.475059,15.7559214 0.478193,-0.03258 0.951533,-0.06253 1.437991,-0.06253 11.58779,0 20.975913,9.388447 20.975913,20.976636 0,0.148983 0.0031,0.289422 0,0.437664 8.466255,-1.807732 14.81756,-9.34467 14.81756,-18.350647 0,-10.355404 -8.401358,-18.7570507 -18.756405,-18.7570507 z"
id="path3087"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -71,6 +71,10 @@ Gui::MenuItem* Workbench::setupMenuBar() const
join->setCommand("Join"); join->setCommand("Join");
*join << "Part_JoinConnect" << "Part_JoinEmbed" << "Part_JoinCutout"; *join << "Part_JoinConnect" << "Part_JoinEmbed" << "Part_JoinCutout";
Gui::MenuItem* split = new Gui::MenuItem;
split->setCommand("Split");
*split << "Part_BooleanFragments" << "Part_Slice" << "Part_XOR";
Gui::MenuItem* part = new Gui::MenuItem; Gui::MenuItem* part = new Gui::MenuItem;
root->insertItem(item, part); root->insertItem(item, part);
part->setCommand("&Part"); part->setCommand("&Part");
@ -78,7 +82,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
*part << prim << "Part_Primitives" << "Part_Builder" << "Separator" *part << prim << "Part_Primitives" << "Part_Builder" << "Separator"
<< "Part_ShapeFromMesh" << "Part_MakeSolid" << "Part_ReverseShape" << "Part_ShapeFromMesh" << "Part_MakeSolid" << "Part_ReverseShape"
<< "Part_SimpleCopy" << "Part_RefineShape" << "Part_CheckGeometry" << "Part_SimpleCopy" << "Part_RefineShape" << "Part_CheckGeometry"
<< "Separator" << bop << join << "Separator" << "Separator" << bop << join << split << "Separator"
<< "Part_CrossSections" << "Part_Compound" << "Part_MakeFace" << "Part_Extrude" << "Part_CrossSections" << "Part_Compound" << "Part_MakeFace" << "Part_Extrude"
<< "Part_Revolve" << "Part_Mirror" << "Part_Fillet" << "Part_Chamfer" << "Part_Revolve" << "Part_Mirror" << "Part_Fillet" << "Part_Chamfer"
<< "Part_RuledSurface" << "Part_Loft" << "Part_Sweep" << "Part_RuledSurface" << "Part_Loft" << "Part_Sweep"
@ -123,7 +127,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
Gui::ToolBarItem* boolop = new Gui::ToolBarItem(root); Gui::ToolBarItem* boolop = new Gui::ToolBarItem(root);
boolop->setCommand("Boolean"); boolop->setCommand("Boolean");
*boolop << "Part_Boolean" << "Part_Cut" << "Part_Fuse" << "Part_Common" *boolop << "Part_Boolean" << "Part_Cut" << "Part_Fuse" << "Part_Common"
<< "Part_CompJoinFeatures" << "Part_CheckGeometry" << "Part_Section" << "Part_CompJoinFeatures" << "Part_CompSplitFeatures" << "Part_CheckGeometry" << "Part_Section"
<< "Part_CrossSections"; << "Part_CrossSections";
Gui::ToolBarItem* measure = new Gui::ToolBarItem(root); Gui::ToolBarItem* measure = new Gui::ToolBarItem(root);