Sketcher: Defining External geos.
This commit is contained in:
committed by
WandererFan
parent
1c514f5a15
commit
f3c79302c4
@@ -320,7 +320,6 @@ static bool inline checkSmallEdge(const Part::TopoShape &s) {
|
||||
}
|
||||
|
||||
void SketchObject::buildShape() {
|
||||
|
||||
// Shape.setValue(solvedSketch.toShape());
|
||||
// We use the following instead to map element names
|
||||
|
||||
@@ -1860,22 +1859,36 @@ int SketchObject::toggleConstruction(int GeoId)
|
||||
// no need to check input data validity as this is an sketchobject managed operation.
|
||||
Base::StateLocker lock(managedoperation, true);
|
||||
|
||||
const std::vector<Part::Geometry*>& vals = getInternalGeometry();
|
||||
if (GeoId < 0 || GeoId >= int(vals.size()))
|
||||
return -1;
|
||||
if (GeoId >= 0) {
|
||||
const std::vector<Part::Geometry*>& vals = getInternalGeometry();
|
||||
if (GeoId >= int(vals.size())) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (getGeometryFacade(GeoId)->isInternalAligned())
|
||||
return -1;
|
||||
if (getGeometryFacade(GeoId)->isInternalAligned()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// While it may seem that there is not a need to trigger an update at this time, because the
|
||||
// solver has its own copy of the geometry, and updateColors of the viewprovider may be
|
||||
// triggered by the clearselection of the UI command, this won't update the elements widget, in
|
||||
// the accumulative of actions it is judged that it is worth to trigger an update here.
|
||||
// While it may seem that there is not a need to trigger an update at this time, because the
|
||||
// solver has its own copy of the geometry, and updateColors of the viewprovider may be
|
||||
// triggered by the clearselection of the UI command, this won't update the elements widget, in
|
||||
// the accumulative of actions it is judged that it is worth to trigger an update here.
|
||||
|
||||
std::unique_ptr<Part::Geometry> geo(vals[GeoId]->clone());
|
||||
auto gft = GeometryFacade::getFacade(geo.get());
|
||||
gft->setConstruction(!gft->getConstruction());
|
||||
this->Geometry.set1Value(GeoId, std::move(geo));
|
||||
auto gft = GeometryFacade::getFacade(vals[GeoId]);
|
||||
gft->setConstruction(!gft->getConstruction());
|
||||
this->Geometry.touch();
|
||||
}
|
||||
else {
|
||||
if (GeoId > GeoEnum::RefExt) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
const std::vector<Part::Geometry*>& extGeos = getExternalGeometry();
|
||||
auto geo = extGeos[-GeoId - 1];
|
||||
auto egf = ExternalGeometryFacade::getFacade(geo);
|
||||
egf->setFlag(ExternalGeometryExtension::Defining, !egf->testFlag(ExternalGeometryExtension::Defining));
|
||||
this->ExternalGeo.touch();
|
||||
}
|
||||
|
||||
solverNeedsUpdate = true;
|
||||
signalSolverUpdate(); // FIXME: In theory this is totally redundant, but now seems required
|
||||
|
||||
@@ -557,8 +557,19 @@ PyObject* SketchObjectPy::addExternal(PyObject* args)
|
||||
{
|
||||
char* ObjectName;
|
||||
char* SubName;
|
||||
if (!PyArg_ParseTuple(args, "ss", &ObjectName, &SubName)) {
|
||||
return nullptr;
|
||||
PyObject* defining; // this is an optional argument default false
|
||||
bool isDefining;
|
||||
if (!PyArg_ParseTuple(args, "ssO!", &ObjectName, &SubName, &PyBool_Type, &defining)) {
|
||||
PyErr_Clear();
|
||||
if (!PyArg_ParseTuple(args, "ss", &ObjectName, &SubName)) {
|
||||
return nullptr;
|
||||
}
|
||||
else {
|
||||
isDefining = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
isDefining = Base::asBoolean(defining);
|
||||
}
|
||||
|
||||
// get the target object for the external link
|
||||
@@ -579,7 +590,7 @@ PyObject* SketchObjectPy::addExternal(PyObject* args)
|
||||
}
|
||||
|
||||
// add the external
|
||||
if (skObj->addExternal(Obj, SubName) < 0) {
|
||||
if (skObj->addExternal(Obj, SubName, isDefining) < 0) {
|
||||
std::stringstream str;
|
||||
str << "Not able to add external shape element " << SubName;
|
||||
PyErr_SetString(PyExc_ValueError, str.str().c_str());
|
||||
|
||||
@@ -115,6 +115,7 @@ CmdSketcherToggleConstruction::CmdSketcherToggleConstruction()
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CreatePeriodicBSplineByInterpolation");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CompCreateBSpline");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_CarbonCopy");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_External");
|
||||
rcCmdMgr.addCommandMode("ToggleConstruction", "Sketcher_ToggleConstruction");
|
||||
}
|
||||
|
||||
@@ -158,8 +159,7 @@ void CmdSketcherToggleConstruction::activated(int iMsg)
|
||||
selection =
|
||||
getSelection().getSelectionEx(nullptr, Sketcher::SketchObject::getClassTypeId());
|
||||
|
||||
Sketcher::SketchObject* Obj =
|
||||
static_cast<Sketcher::SketchObject*>(selection[0].getObject());
|
||||
auto* Obj = static_cast<Sketcher::SketchObject*>(selection[0].getObject());
|
||||
|
||||
// only one sketch with its subelements are allowed to be selected
|
||||
if (selection.size() != 1) {
|
||||
@@ -185,13 +185,13 @@ void CmdSketcherToggleConstruction::activated(int iMsg)
|
||||
bool verticesonly = true;
|
||||
|
||||
for (const auto& subname : SubNames) {
|
||||
if (subname.size() > 4 && subname.substr(0, 4) == "Edge") {
|
||||
if ((subname.size() > 4 && subname.substr(0, 4) == "Edge")
|
||||
|| (subname.size() > 12 && subname.substr(0, 12) == "ExternalEdge")) {
|
||||
verticesonly = false;
|
||||
}
|
||||
}
|
||||
|
||||
for (std::vector<std::string>::const_iterator it = SubNames.begin(); it != SubNames.end();
|
||||
++it) {
|
||||
for (const auto& subname : SubNames) {
|
||||
// It was decided to provide a special behaviour:
|
||||
// Vertices will only be toggled to/from construction IF ONLY
|
||||
// vertices are within the group.
|
||||
@@ -205,13 +205,17 @@ void CmdSketcherToggleConstruction::activated(int iMsg)
|
||||
|
||||
|
||||
// only handle edges
|
||||
if (it->size() > 4 && it->substr(0, 4) == "Edge") {
|
||||
int GeoId = std::atoi(it->substr(4, 4000).c_str()) - 1;
|
||||
if (subname.size() > 4 && subname.substr(0, 4) == "Edge") {
|
||||
int geoId = std::atoi(subname.substr(4, 4000).c_str()) - 1;
|
||||
// issue the actual commands to toggle
|
||||
Gui::cmdAppObjectArgs(selection[0].getObject(), "toggleConstruction(%d) ", GeoId);
|
||||
Gui::cmdAppObjectArgs(Obj, "toggleConstruction(%d) ", geoId);
|
||||
}
|
||||
else if (verticesonly && it->size() > 6 && it->substr(0, 6) == "Vertex") {
|
||||
int vertexId = std::atoi(it->substr(6, 4000).c_str()) - 1;
|
||||
else if (subname.size() > 12 && subname.substr(0, 12) == "ExternalEdge") {
|
||||
int geoId = GeoEnum::RefExt - std::atoi(subname.substr(12, 4000).c_str()) + 1;
|
||||
Gui::cmdAppObjectArgs(Obj, "toggleConstruction(%d) ", geoId);
|
||||
}
|
||||
else if (verticesonly && subname.size() > 6 && subname.substr(0, 6) == "Vertex") {
|
||||
int vertexId = std::atoi(subname.substr(6, 4000).c_str()) - 1;
|
||||
|
||||
int geoId;
|
||||
PointPos pos;
|
||||
@@ -221,9 +225,7 @@ void CmdSketcherToggleConstruction::activated(int iMsg)
|
||||
|
||||
if (geo && geo->is<Part::GeomPoint>()) {
|
||||
// issue the actual commands to toggle
|
||||
Gui::cmdAppObjectArgs(selection[0].getObject(),
|
||||
"toggleConstruction(%d) ",
|
||||
geoId);
|
||||
Gui::cmdAppObjectArgs(Obj, "toggleConstruction(%d) ", geoId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1436,7 +1436,7 @@ public:
|
||||
|
||||
// ======================================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdSketcherExternal)
|
||||
DEF_STD_CMD_AU(CmdSketcherExternal)
|
||||
|
||||
CmdSketcherExternal::CmdSketcherExternal()
|
||||
: Command("Sketcher_External")
|
||||
@@ -1452,6 +1452,8 @@ CmdSketcherExternal::CmdSketcherExternal()
|
||||
eType = ForEdit;
|
||||
}
|
||||
|
||||
CONSTRUCTION_UPDATE_ACTION(CmdSketcherExternal, "Sketcher_External")
|
||||
|
||||
void CmdSketcherExternal::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
|
||||
@@ -163,9 +163,11 @@ public:
|
||||
Gui::Command::openCommand(
|
||||
QT_TRANSLATE_NOOP("Command", "Add external geometry"));
|
||||
Gui::cmdAppObjectArgs(sketchgui->getObject(),
|
||||
"addExternal(\"%s\",\"%s\")",
|
||||
"addExternal(\"%s\",\"%s\", %s)",
|
||||
msg.pObjectName,
|
||||
msg.pSubName);
|
||||
msg.pSubName,
|
||||
isConstructionMode() ? "False" : "True");
|
||||
|
||||
Gui::Command::commitCommand();
|
||||
|
||||
// adding external geometry does not require a solve() per se (the DoF is the
|
||||
|
||||
@@ -421,6 +421,9 @@ void EditModeGeometryCoinManager::updateGeometryColor(const GeoListFacade& geoli
|
||||
if (egf->testFlag(ExternalGeometryExtension::Missing)) {
|
||||
color[i] = drawingParameters.InvalidSketchColor;
|
||||
}
|
||||
else if (egf->testFlag(ExternalGeometryExtension::Defining)) {
|
||||
color[i] = drawingParameters.CurveColor;
|
||||
}
|
||||
else {
|
||||
color[i] = drawingParameters.CurveExternalColor;
|
||||
}
|
||||
|
||||
@@ -199,6 +199,7 @@
|
||||
<file>icons/geometry/Sketcher_CreateTriangle_Constr.svg</file>
|
||||
<file>icons/geometry/Sketcher_Extend.svg</file>
|
||||
<file>icons/geometry/Sketcher_External.svg</file>
|
||||
<file>icons/geometry/Sketcher_External_Constr.svg</file>
|
||||
<file>icons/geometry/Sketcher_Split.svg</file>
|
||||
<file>icons/geometry/Sketcher_ToggleConstruction.svg</file>
|
||||
<file>icons/geometry/Sketcher_ToggleConstruction_Constr.svg</file>
|
||||
|
||||
@@ -1,18 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2869"
|
||||
version="1.1"
|
||||
viewBox="0 0 64 64"
|
||||
sodipodi:docname="Sketcher_External.svg"
|
||||
inkscape:version="1.1-beta1 (77e7b44db3, 2021-03-28)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<sodipodi:namedview
|
||||
id="namedview71"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
objecttolerance="10.0"
|
||||
gridtolerance="10.0"
|
||||
guidetolerance="10.0"
|
||||
inkscape:pageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.765625"
|
||||
inkscape:cx="32"
|
||||
inkscape:cy="32"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="1571"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2869" />
|
||||
<defs
|
||||
id="defs2871">
|
||||
<linearGradient
|
||||
@@ -280,84 +303,73 @@
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer3"
|
||||
style="display:inline">
|
||||
<g
|
||||
id="layer1">
|
||||
<g
|
||||
id="g3849"
|
||||
transform="translate(-60)">
|
||||
<path
|
||||
id="path3023"
|
||||
d="m 63,39 v 20 l 32,2 V 41 Z"
|
||||
style="fill:url(#linearGradient3856);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3025"
|
||||
d="M 95,61 115,51 V 31 L 95,41 Z"
|
||||
style="fill:url(#linearGradient3858);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3027"
|
||||
d="M 63,39 83,29 115,31 95,41 Z"
|
||||
style="fill:#729fcf;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3023-1"
|
||||
d="M 65,41 V 57.1 L 93,59 V 42.836 Z"
|
||||
style="fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3025-7"
|
||||
d="M 97.000001,57.8 113,49.767 V 34.2 L 97,42 Z"
|
||||
style="fill:none;stroke:#3465a4;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g26"
|
||||
transform="translate(0,0.89514509)">
|
||||
<path
|
||||
style="fill:none;stroke:#0b1521;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 22,8 34,2"
|
||||
id="path3921" />
|
||||
<path
|
||||
style="fill:none;stroke:#3465a4;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 22,8 34,2"
|
||||
id="path3921-4" />
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 22.3125,6.9998744 34,2"
|
||||
id="path11" />
|
||||
</g>
|
||||
<g
|
||||
id="g3971"
|
||||
transform="rotate(34.600775,37.262309,14.601933)">
|
||||
<path
|
||||
id="path3941"
|
||||
d="m 40,28 -3.863704,-1.035276 2.070553,-7.727407 -3.863704,-1.035276 7.607289,-5.208567 3.983821,8.314395 -3.863703,-1.035276 z"
|
||||
style="fill:url(#linearGradient3978);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.77869459,0,0,0.77869445,36.54595,1.1036616)"
|
||||
id="g34"
|
||||
style="stroke-width:1.2842">
|
||||
<path
|
||||
style="fill:none;stroke:#2e0000;stroke-width:2.56841;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path33"
|
||||
d="M -26.310778,5.3580033 A 8.3519646,8.3515832 0.02039876 1 1 -13.623399,16.222662 8.3519646,8.3515832 0.02039876 1 1 -26.310778,5.3580033 Z" />
|
||||
<path
|
||||
style="fill:url(#linearGradient34);fill-opacity:1;stroke:#ef2929;stroke-width:2.56842;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path34"
|
||||
d="m -24.358888,7.0362241 a 5.782493,5.7773415 0 1 1 8.784093,7.5158349 5.782493,5.7773415 0 0 1 -8.784093,-7.5158349 z" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.77869459,0,0,0.77869445,70.129085,1.6640417)"
|
||||
id="g25"
|
||||
style="stroke-width:1.2842">
|
||||
<path
|
||||
style="fill:none;stroke:#2e0000;stroke-width:2.56841;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path24"
|
||||
d="M -26.310778,5.3580033 A 8.3519646,8.3515832 0.02039876 1 1 -13.623399,16.222662 8.3519646,8.3515832 0.02039876 1 1 -26.310778,5.3580033 Z" />
|
||||
<path
|
||||
style="fill:url(#linearGradient25);fill-opacity:1;stroke:#ef2929;stroke-width:2.56842;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path25"
|
||||
d="m -24.358888,7.0362241 a 5.782493,5.7773415 0 1 1 8.784093,7.5158349 5.782493,5.7773415 0 0 1 -8.784093,-7.5158349 z" />
|
||||
</g>
|
||||
id="g3849"
|
||||
transform="translate(-60)">
|
||||
<path
|
||||
id="path3023"
|
||||
d="m 63,39 v 20 l 32,2 V 41 Z"
|
||||
style="fill:url(#linearGradient3856);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3025"
|
||||
d="M 95,61 115,51 V 31 L 95,41 Z"
|
||||
style="fill:url(#linearGradient3858);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3027"
|
||||
d="M 63,39 83,29 115,31 95,41 Z"
|
||||
style="fill:#729fcf;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3023-1"
|
||||
d="M 65,41 V 57.1 L 93,59 V 42.836 Z"
|
||||
style="fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3025-7"
|
||||
d="M 97.000001,57.8 113,49.767 V 34.2 L 97,42 Z"
|
||||
style="fill:none;stroke:#3465a4;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#151819;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 22,8.8951451 56,10.895145"
|
||||
id="path3921" />
|
||||
<path
|
||||
style="fill:none;stroke:#d3d7cf;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 22,8.8951451 56,10.895145"
|
||||
id="path3921-4" />
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 22.3125,7.8950195 34,2"
|
||||
id="path11" />
|
||||
<g
|
||||
id="g3971"
|
||||
transform="rotate(34.600775,37.262309,14.601933)">
|
||||
<path
|
||||
id="path3941"
|
||||
d="m 40,28 -3.863704,-1.035276 2.070553,-7.727407 -3.863704,-1.035276 7.607289,-5.208567 3.983821,8.314395 -3.863703,-1.035276 z"
|
||||
style="fill:url(#linearGradient3978);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.77869459,0,0,0.77869445,36.54595,1.1036616)"
|
||||
id="g34"
|
||||
style="stroke-width:1.2842">
|
||||
<path
|
||||
style="fill:none;stroke:#2e0000;stroke-width:2.56841;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path33"
|
||||
d="M -26.310778,5.3580033 A 8.3519646,8.3515832 0.02039876 1 1 -13.623399,16.222662 8.3519646,8.3515832 0.02039876 1 1 -26.310778,5.3580033 Z" />
|
||||
<path
|
||||
style="fill:url(#linearGradient34);fill-opacity:1;stroke:#ef2929;stroke-width:2.56842;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path34"
|
||||
d="m -24.358888,7.0362241 a 5.782493,5.7773415 0 1 1 8.784093,7.5158349 5.782493,5.7773415 0 0 1 -8.784093,-7.5158349 z" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.77869459,0,0,0.77869445,70.129085,1.6640417)"
|
||||
id="g25"
|
||||
style="stroke-width:1.2842">
|
||||
<path
|
||||
style="fill:none;stroke:#2e0000;stroke-width:2.56841;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path24"
|
||||
d="M -26.310778,5.3580033 A 8.3519646,8.3515832 0.02039876 1 1 -13.623399,16.222662 8.3519646,8.3515832 0.02039876 1 1 -26.310778,5.3580033 Z" />
|
||||
<path
|
||||
style="fill:url(#linearGradient25);fill-opacity:1;stroke:#ef2929;stroke-width:2.56842;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path25"
|
||||
d="m -24.358888,7.0362241 a 5.782493,5.7773415 0 1 1 8.784093,7.5158349 5.782493,5.7773415 0 0 1 -8.784093,-7.5158349 z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,363 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg2869"
|
||||
version="1.1"
|
||||
viewBox="0 0 64 64"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs2871">
|
||||
<linearGradient
|
||||
id="linearGradient5">
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop19" />
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop20" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="swatch18">
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop18" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="swatch15">
|
||||
<stop
|
||||
style="stop-color:#3d0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop15" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5-1">
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5" />
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3836-9">
|
||||
<stop
|
||||
style="stop-color:#a40000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3838-8" />
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3840-1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3836-9-3">
|
||||
<stop
|
||||
style="stop-color:#a40000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3838-8-5" />
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3840-1-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="5"
|
||||
x2="-22"
|
||||
y1="18"
|
||||
x1="-18"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3082"
|
||||
xlink:href="#linearGradient3836-9-3" />
|
||||
<linearGradient
|
||||
id="linearGradient3836-9-7">
|
||||
<stop
|
||||
style="stop-color:#a40000;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3838-8-0" />
|
||||
<stop
|
||||
style="stop-color:#ef2929;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3840-1-9" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="5"
|
||||
x2="-22"
|
||||
y1="18"
|
||||
x1="-18"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3082-3"
|
||||
xlink:href="#linearGradient3836-9-7" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3836-9-3"
|
||||
id="linearGradient3801-1-3"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-18"
|
||||
y1="18"
|
||||
x2="-22"
|
||||
y2="5"
|
||||
gradientTransform="matrix(0.76342439,0,0,0.75750425,-4.596389,2.7525637)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3836-9-3"
|
||||
id="linearGradient3801-1-3-2"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-18"
|
||||
y1="18"
|
||||
x2="-22"
|
||||
y2="5"
|
||||
gradientTransform="matrix(0.84956703,0,0,0.84301394,-2.927337,1.7790378)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3836-9-3"
|
||||
id="linearGradient34"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.82607043,0,0,0.82533448,-4.0098079,1.346708)"
|
||||
x1="-18"
|
||||
y1="18"
|
||||
x2="-22"
|
||||
y2="5" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3838"
|
||||
id="linearGradient3844"
|
||||
x1="36"
|
||||
y1="1039.3622"
|
||||
x2="32"
|
||||
y2="1003.3622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(2.0563921e-6,-988.36218)" />
|
||||
<linearGradient
|
||||
id="linearGradient3838">
|
||||
<stop
|
||||
style="stop-color:#d3d7cf;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3840" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3842" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3830"
|
||||
id="linearGradient3836"
|
||||
x1="36"
|
||||
y1="1037.3622"
|
||||
x2="32"
|
||||
y2="1005.3622"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(2.0563921e-6,-988.36218)" />
|
||||
<linearGradient
|
||||
id="linearGradient3830">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3832" />
|
||||
<stop
|
||||
style="stop-color:#d3d7cf;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3834" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="10.504496"
|
||||
y1="16.48678"
|
||||
x2="5.9349072"
|
||||
y2="1.6356685"
|
||||
id="linearGradient-1"
|
||||
gradientTransform="scale(0.99999018,1.0000098)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#A40000"
|
||||
offset="0%"
|
||||
id="stop6-9" />
|
||||
<stop
|
||||
stop-color="#EF2929"
|
||||
offset="100%"
|
||||
id="stop8" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3815"
|
||||
id="linearGradient3856"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="80"
|
||||
y1="58"
|
||||
x2="79"
|
||||
y2="42" />
|
||||
<linearGradient
|
||||
id="linearGradient3815">
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3817" />
|
||||
<stop
|
||||
style="stop-color:#729fcf;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3819" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3841"
|
||||
id="linearGradient3858"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="109"
|
||||
y1="51"
|
||||
x2="105"
|
||||
y2="38" />
|
||||
<linearGradient
|
||||
id="linearGradient3841">
|
||||
<stop
|
||||
style="stop-color:#204a87;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3843" />
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3845" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="5"
|
||||
x2="-22"
|
||||
y1="18"
|
||||
x1="-18"
|
||||
gradientTransform="matrix(0.77114848,0,0,0.77113937,-4.4090973,2.5859051)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3898"
|
||||
xlink:href="#linearGradient3836-9-3" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3815"
|
||||
id="linearGradient3978"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="-15"
|
||||
y1="37"
|
||||
x2="-19"
|
||||
y2="37"
|
||||
gradientTransform="rotate(15,69.468151,244.38323)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient3836-9-3"
|
||||
id="linearGradient25"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.82607043,0,0,0.82533448,-4.0098079,1.346708)"
|
||||
x1="-18"
|
||||
y1="18"
|
||||
x2="-22"
|
||||
y2="5" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata2874">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>[maxwxyz]</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:relation>https://www.freecad.org/wiki/index.php?title=Artwork</dc:relation>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>FreeCAD</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:identifier>FreeCAD/src/Mod/Sketcher/Gui/Resources/icons/Sketcher_CreateArc.svg</dc:identifier>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title>FreeCAD LGPL2+</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<dc:date>2023-12-19</dc:date>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer3"
|
||||
style="display:inline">
|
||||
<g
|
||||
id="layer1">
|
||||
<g
|
||||
id="g3849"
|
||||
transform="translate(-60)">
|
||||
<path
|
||||
id="path3023"
|
||||
d="m 63,39 v 20 l 32,2 V 41 Z"
|
||||
style="fill:url(#linearGradient3856);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3025"
|
||||
d="M 95,61 115,51 V 31 L 95,41 Z"
|
||||
style="fill:url(#linearGradient3858);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3027"
|
||||
d="M 63,39 83,29 115,31 95,41 Z"
|
||||
style="fill:#729fcf;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3023-1"
|
||||
d="M 65,41 V 57.1 L 93,59 V 42.836 Z"
|
||||
style="fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
id="path3025-7"
|
||||
d="M 97.000001,57.8 113,49.767 V 34.2 L 97,42 Z"
|
||||
style="fill:none;stroke:#3465a4;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g26"
|
||||
transform="translate(0,0.89514509)">
|
||||
<path
|
||||
style="fill:none;stroke:#0b1521;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 22,8 34,2"
|
||||
id="path3921" />
|
||||
<path
|
||||
style="fill:none;stroke:#3465a4;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 22,8 34,2"
|
||||
id="path3921-4" />
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 22.3125,6.9998744 34,2"
|
||||
id="path11" />
|
||||
</g>
|
||||
<g
|
||||
id="g3971"
|
||||
transform="rotate(34.600775,37.262309,14.601933)">
|
||||
<path
|
||||
id="path3941"
|
||||
d="m 40,28 -3.863704,-1.035276 2.070553,-7.727407 -3.863704,-1.035276 7.607289,-5.208567 3.983821,8.314395 -3.863703,-1.035276 z"
|
||||
style="fill:url(#linearGradient3978);fill-opacity:1;stroke:#0b1521;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.77869459,0,0,0.77869445,36.54595,1.1036616)"
|
||||
id="g34"
|
||||
style="stroke-width:1.2842">
|
||||
<path
|
||||
style="fill:none;stroke:#2e0000;stroke-width:2.56841;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path33"
|
||||
d="M -26.310778,5.3580033 A 8.3519646,8.3515832 0.02039876 1 1 -13.623399,16.222662 8.3519646,8.3515832 0.02039876 1 1 -26.310778,5.3580033 Z" />
|
||||
<path
|
||||
style="fill:url(#linearGradient34);fill-opacity:1;stroke:#ef2929;stroke-width:2.56842;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path34"
|
||||
d="m -24.358888,7.0362241 a 5.782493,5.7773415 0 1 1 8.784093,7.5158349 5.782493,5.7773415 0 0 1 -8.784093,-7.5158349 z" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.77869459,0,0,0.77869445,70.129085,1.6640417)"
|
||||
id="g25"
|
||||
style="stroke-width:1.2842">
|
||||
<path
|
||||
style="fill:none;stroke:#2e0000;stroke-width:2.56841;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path24"
|
||||
d="M -26.310778,5.3580033 A 8.3519646,8.3515832 0.02039876 1 1 -13.623399,16.222662 8.3519646,8.3515832 0.02039876 1 1 -26.310778,5.3580033 Z" />
|
||||
<path
|
||||
style="fill:url(#linearGradient25);fill-opacity:1;stroke:#ef2929;stroke-width:2.56842;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path25"
|
||||
d="m -24.358888,7.0362241 a 5.782493,5.7773415 0 1 1 8.784093,7.5158349 5.782493,5.7773415 0 0 1 -8.784093,-7.5158349 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user