Merge pull request #19167 from alfrix/hole_new_taskpanel
feat(PD): hole taskpanel: new image based cut panel
@@ -1146,6 +1146,9 @@ SET(Widget_CPP_SRCS
|
||||
Widgets.cpp
|
||||
Window.cpp
|
||||
WorkbenchSelector.cpp
|
||||
ElideLabel.cpp
|
||||
ElideCheckBox.cpp
|
||||
FontScaledSVG.cpp
|
||||
)
|
||||
SET(Widget_HPP_SRCS
|
||||
FileDialog.h
|
||||
@@ -1167,6 +1170,9 @@ SET(Widget_HPP_SRCS
|
||||
Widgets.h
|
||||
Window.h
|
||||
WorkbenchSelector.h
|
||||
ElideLabel.h
|
||||
ElideCheckBox.h
|
||||
FontScaledSVG.h
|
||||
)
|
||||
SET(Widget_SRCS
|
||||
${Widget_CPP_SRCS}
|
||||
|
||||
76
src/Gui/ElideCheckBox.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
/****************************************************************************
|
||||
* *
|
||||
* Copyright (c) 2025 Alfredo Monclus <alfredomonclus@gmail.com> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
// This custom widget adds the missing ellipsize functionality in QT5
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "ElideCheckBox.h"
|
||||
|
||||
namespace Gui {
|
||||
|
||||
const int CheckboxSpacing = 18;
|
||||
|
||||
ElideCheckBox::ElideCheckBox(QWidget *parent)
|
||||
: QCheckBox(parent) {
|
||||
}
|
||||
|
||||
void ElideCheckBox::paintEvent(QPaintEvent *event) {
|
||||
Q_UNUSED(event);
|
||||
QStyleOptionButton option;
|
||||
option.initFrom(this);
|
||||
option.state = (isChecked() ? QStyle::State_On : QStyle::State_Off) |
|
||||
(isEnabled() ? QStyle::State_Enabled : QStyle::State_ReadOnly);
|
||||
|
||||
QPainter painter(this);
|
||||
style()->drawControl(QStyle::CE_CheckBox, &option, &painter, this);
|
||||
|
||||
QRect textRect = option.rect;
|
||||
textRect.setX(textRect.x() + CheckboxSpacing);
|
||||
|
||||
constexpr int padding = 4;
|
||||
QFontMetrics fm(font());
|
||||
QString elidedText = fm.elidedText(text(), Qt::ElideRight, textRect.width() - padding);
|
||||
|
||||
painter.setPen(palette().color(QPalette::WindowText));
|
||||
painter.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, elidedText);
|
||||
}
|
||||
|
||||
QSize ElideCheckBox::sizeHint() const {
|
||||
QFontMetrics fm(font());
|
||||
int width = fm.horizontalAdvance(this->text()) + CheckboxSpacing;
|
||||
int height = fm.height();
|
||||
return {width, height};
|
||||
}
|
||||
|
||||
QSize ElideCheckBox::minimumSizeHint() const {
|
||||
QFontMetrics fm(font());
|
||||
QString minimumText = QStringLiteral("A...");
|
||||
int width = fm.horizontalAdvance(minimumText) + CheckboxSpacing;
|
||||
int height = fm.height();
|
||||
return {width, height};
|
||||
}
|
||||
|
||||
} // namespace Gui
|
||||
|
||||
#include "moc_ElideCheckBox.cpp" // NOLINT
|
||||
56
src/Gui/ElideCheckBox.h
Normal file
@@ -0,0 +1,56 @@
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
/****************************************************************************
|
||||
* *
|
||||
* Copyright (c) 2025 Alfredo Monclus <alfredomonclus@gmail.com> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
// This custom widget adds the missing ellipsize functionality in QT5
|
||||
|
||||
#ifndef ELIDECHECKBOX_H
|
||||
#define ELIDECHECKBOX_H
|
||||
|
||||
#ifndef _PreComp_
|
||||
#include <QCheckBox>
|
||||
#include <QPainter>
|
||||
#include <QFontMetrics>
|
||||
#include <QStyleOptionButton>
|
||||
#endif
|
||||
|
||||
#include <FCGlobal.h>
|
||||
|
||||
namespace Gui {
|
||||
|
||||
class GuiExport ElideCheckBox : public QCheckBox {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ElideCheckBox(QWidget *parent = nullptr);
|
||||
~ElideCheckBox() override = default;
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
QSize sizeHint() const override;
|
||||
QSize minimumSizeHint() const override;
|
||||
};
|
||||
|
||||
} // namespace Gui
|
||||
|
||||
#endif // ELIDECHECKBOX_H
|
||||
|
||||
73
src/Gui/ElideLabel.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
/****************************************************************************
|
||||
* *
|
||||
* Copyright (c) 2025 Alfredo Monclus <alfredomonclus@gmail.com> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
// This custom widget adds the missing ellipsize functionality in QT5
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "ElideLabel.h"
|
||||
|
||||
namespace Gui {
|
||||
|
||||
ElideLabel::ElideLabel(QWidget *parent)
|
||||
: QLabel(parent) {
|
||||
}
|
||||
|
||||
void ElideLabel::paintEvent(QPaintEvent *event) {
|
||||
Q_UNUSED(event);
|
||||
QPainter painter(this);
|
||||
painter.setPen(palette().color(QPalette::WindowText));
|
||||
painter.setFont(font());
|
||||
|
||||
constexpr int padding = 4;
|
||||
QFontMetrics fm(painter.fontMetrics());
|
||||
|
||||
int availableWidth = width() - padding * 2;
|
||||
if (availableWidth < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
QString elidedText = fm.elidedText(text(), Qt::ElideRight, availableWidth);
|
||||
|
||||
QRect textRect = rect().adjusted(padding, 0, -padding, 0);
|
||||
painter.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, elidedText);
|
||||
}
|
||||
|
||||
QSize ElideLabel::sizeHint() const {
|
||||
QFontMetrics fm(font());
|
||||
int width = fm.horizontalAdvance(this->text());
|
||||
int height = fm.height();
|
||||
return {width, height};
|
||||
}
|
||||
|
||||
QSize ElideLabel::minimumSizeHint() const {
|
||||
QFontMetrics fm(font());
|
||||
QString minimumText = QStringLiteral("A...");
|
||||
int width = fm.horizontalAdvance(minimumText);
|
||||
int height = fm.height();
|
||||
return {width, height};
|
||||
}
|
||||
|
||||
} // namespace Gui
|
||||
|
||||
#include "moc_ElideLabel.cpp" // NOLINT
|
||||
54
src/Gui/ElideLabel.h
Normal file
@@ -0,0 +1,54 @@
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
/****************************************************************************
|
||||
* *
|
||||
* Copyright (c) 2025 Alfredo Monclus <alfredomonclus@gmail.com> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
// This custom widget adds the missing ellipsize functionality in QT5
|
||||
|
||||
#ifndef ELIDELABEL_H
|
||||
#define ELIDELABEL_H
|
||||
|
||||
#ifndef _PreComp_
|
||||
#include <QLabel>
|
||||
#include <QPainter>
|
||||
#include <QFontMetrics>
|
||||
#endif
|
||||
|
||||
#include <FCGlobal.h>
|
||||
|
||||
namespace Gui {
|
||||
|
||||
class GuiExport ElideLabel : public QLabel {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ElideLabel(QWidget *parent = nullptr);
|
||||
~ElideLabel() override = default;
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
QSize sizeHint() const override;
|
||||
QSize minimumSizeHint() const override;
|
||||
};
|
||||
|
||||
} // namespace Gui
|
||||
|
||||
#endif // ELIDELABEL_H
|
||||
73
src/Gui/FontScaledSVG.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
/****************************************************************************
|
||||
* *
|
||||
* Copyright (c) 2025 Alfredo Monclus <alfredomonclus@gmail.com> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
// This custom widget scales an svg according to fonts
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "FontScaledSVG.h"
|
||||
|
||||
namespace Gui {
|
||||
|
||||
FontScaledSVG::FontScaledSVG(QWidget *parent)
|
||||
: QWidget(parent), m_svgRenderer(new QSvgRenderer(this)) {
|
||||
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
}
|
||||
|
||||
void FontScaledSVG::setSvg(const QString &svgPath) {
|
||||
if (m_svgRenderer->load(svgPath)) {
|
||||
updateScaledSize();
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
void FontScaledSVG::paintEvent(QPaintEvent *event) {
|
||||
Q_UNUSED(event);
|
||||
QPainter painter(this);
|
||||
|
||||
if (m_svgRenderer->isValid()) {
|
||||
QRect targetRect(0, 0, width(), height());
|
||||
m_svgRenderer->render(&painter, targetRect);
|
||||
}
|
||||
}
|
||||
|
||||
void FontScaledSVG::resizeEvent(QResizeEvent *event) {
|
||||
Q_UNUSED(event);
|
||||
updateScaledSize();
|
||||
}
|
||||
|
||||
void FontScaledSVG::updateScaledSize() {
|
||||
QSize baseSize = m_svgRenderer->defaultSize();
|
||||
|
||||
QFontMetrics metrics(font());
|
||||
qreal spacing = metrics.lineSpacing();
|
||||
constexpr int baseFactor = 18;
|
||||
qreal scalingFactor = spacing / baseFactor;
|
||||
|
||||
QSize targetSize = baseSize * scalingFactor;
|
||||
setFixedSize(targetSize);
|
||||
}
|
||||
|
||||
} // namespace Gui
|
||||
|
||||
#include "moc_FontScaledSVG.cpp" // NOLINT
|
||||
59
src/Gui/FontScaledSVG.h
Normal file
@@ -0,0 +1,59 @@
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
/****************************************************************************
|
||||
* *
|
||||
* Copyright (c) 2025 Alfredo Monclus <alfredomonclus@gmail.com> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
// This custom widget scales an svg according to fonts
|
||||
|
||||
#ifndef FONTSCALEDSVG_H
|
||||
#define FONTSCALEDSVG_H
|
||||
|
||||
#ifndef _PreComp_
|
||||
#include <QWidget>
|
||||
#include <QSvgRenderer>
|
||||
#include <QPainter>
|
||||
#include <QFontMetrics>
|
||||
#endif
|
||||
|
||||
#include <FCGlobal.h>
|
||||
|
||||
namespace Gui {
|
||||
|
||||
class GuiExport FontScaledSVG : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit FontScaledSVG(QWidget *parent = nullptr);
|
||||
void setSvg(const QString &svgPath);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
|
||||
private:
|
||||
QSvgRenderer *m_svgRenderer;
|
||||
|
||||
void updateScaledSize();
|
||||
};
|
||||
|
||||
} // namespace Gui
|
||||
|
||||
#endif // FONTSCALEDSVG_H
|
||||
@@ -834,7 +834,7 @@ QSize QuantitySpinBox::sizeHintCalculator(int h) const
|
||||
|
||||
const QFontMetrics fm(fontMetrics());
|
||||
int w = 0;
|
||||
constexpr int maxStrLen = 12;
|
||||
constexpr int maxStrLen = 9;
|
||||
|
||||
QString s;
|
||||
QString fixedContent = QLatin1String(" ");
|
||||
|
||||
@@ -108,6 +108,8 @@ public:
|
||||
void Restore(Base::XMLReader & reader) override;
|
||||
|
||||
virtual void updateProps();
|
||||
bool isDynamicCounterbore(const std::string &thread, const std::string &holeCutType);
|
||||
bool isDynamicCountersink(const std::string &thread, const std::string &holeCutType);
|
||||
|
||||
protected:
|
||||
void onChanged(const App::Property* prop) override;
|
||||
@@ -219,8 +221,6 @@ private:
|
||||
const CutDimensionSet& find_cutDimensionSet(const CutDimensionKey &k);
|
||||
|
||||
void addCutType(const CutDimensionSet& dimensions);
|
||||
bool isDynamicCounterbore(const std::string &thread, const std::string &holeCutType);
|
||||
bool isDynamicCountersink(const std::string &thread, const std::string &holeCutType);
|
||||
void updateHoleCutParams();
|
||||
std::optional<double> determineDiameter() const;
|
||||
void updateDiameterParam();
|
||||
|
||||
@@ -56,5 +56,17 @@
|
||||
<file>icons/PartDesign_SubtractiveWedge.svg</file>
|
||||
<file>icons/PartDesign_Thickness.svg</file>
|
||||
<file>icons/PartDesignWorkbench.svg</file>
|
||||
<file>images/hole_counterbore_angled.svg</file>
|
||||
<file>images/hole_counterbore_angled_included.svg</file>
|
||||
<file>images/hole_counterdrill_angled.svg</file>
|
||||
<file>images/hole_counterdrill_angled_included.svg</file>
|
||||
<file>images/hole_countersink_angled.svg</file>
|
||||
<file>images/hole_countersink_angled_included.svg</file>
|
||||
<file>images/hole_none_angled.svg</file>
|
||||
<file>images/hole_none_angled_included.svg</file>
|
||||
<file>images/hole_counterbore_flat.svg</file>
|
||||
<file>images/hole_counterdrill_flat.svg</file>
|
||||
<file>images/hole_countersink_flat.svg</file>
|
||||
<file>images/hole_none_flat.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_counterbore_angled.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.8318964"
|
||||
inkscape:cx="28.456736"
|
||||
inkscape:cy="143.52543"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g1399"
|
||||
transform="translate(4.4762314e-6,7.512192e-5)"
|
||||
style="stroke-width:0.558085;stroke-dasharray:none"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,39.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="M 166.29184,169.93124 V 192.924 l -15.65249,1.2e-4 v 91.70544 l -8.34584,7.84827 -8.34591,-7.84827 v -91.70571 l -15.64914,1.5e-4 v -22.99276"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 102.62606,150.9342 39.66909,-0.003 v 8.7527"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 107.67787,227.4368 h -5.05181 m 10.09614,-57.50556 h -5.04433 v 12.99311 44.51245"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,285.18946 h 27.9633 V 170.43668 h -13.82759"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 118.29846,167.39454 v -7.71062 h 47.99338 v 7.71062"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 107.67787,192.92442 5.04433,-4.2e-4"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 185.48737,193.69499 h 5.1905"
|
||||
id="path582-6"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 6.24723 h 48.46852"
|
||||
id="path586-7"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /></g></g><metadata
|
||||
id="metadata199"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_counterbore_angled_included.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.8747476"
|
||||
inkscape:cx="15.69312"
|
||||
inkscape:cy="131.18628"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g3619"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="40.615647,30.217161"
|
||||
orientation="0,-1"
|
||||
id="guide956"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g3619"
|
||||
transform="matrix(3.3979922,0,0,3.779528,-225.68321,-396.88302)"
|
||||
style="stroke-width:0.558085;stroke-dasharray:none"><g
|
||||
id="g1399"
|
||||
transform="matrix(0.29429143,0,0,0.2645833,66.416637,105.00864)"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,39.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:0.558085;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 115.3549,149.96959 v 6.0835 l -4.60639,3e-5 v 24.26373 l -2.45611,2.07652 -2.45613,-2.07652 v -24.2638 l -4.60541,4e-5 v -6.0835"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 96.618607,144.94329 11.674273,-7.9e-4 v 2.31582"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 98.105312,165.1846 h -1.486705 m 2.971206,-15.21501 h -1.484501 v 3.43776 11.77725"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 112.77462,182.39337 h 8.22936 v -32.29005 h -4.06934"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 105.83611,182.18333 v 1.72125 h 4.91358 v -1.72125"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 101.23086,149.29842 v -2.0401 h 14.12404 v 2.0401"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 98.105312,156.0532 1.484501,-1.1e-4"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 121.00398,156.27154 h 1.52752"
|
||||
id="path582-6"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 108.2929,183.90458 v 1.65291 h 14.26387"
|
||||
id="path586-7"
|
||||
sodipodi:nodetypes="ccc" /></g><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /></g></g><metadata
|
||||
id="metadata199"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 6.9 KiB |
@@ -0,0 +1,103 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_counterbore_flat.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.8747476"
|
||||
inkscape:cx="28.411727"
|
||||
inkscape:cy="145.75114"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g3619"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="54.898011,36.450878"
|
||||
orientation="0,-1"
|
||||
id="guide548"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g3619"
|
||||
transform="matrix(3.3979922,0,0,3.779528,-225.68321,-396.88302)"
|
||||
style="stroke-width:0.558085;stroke-dasharray:none"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 96.618607,144.94329 11.674273,-7.9e-4 v 2.31582"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 98.105312,165.1846 h -1.486705 m 2.971206,-15.21501 h -1.484501 v 0 15.21501"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 112.77462,180.46486 8.22936,1.3e-4 v -30.36167 h -4.06934"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 105.83611,182.18333 v 1.72125 h 4.91358 v -1.72125"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 101.23086,149.29842 v -2.0401 h 14.12404 v 2.0401"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 98.105312,156.0532 1.484501,-1.1e-4"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 121.00398,156.27154 h 1.52752"
|
||||
id="path582-6"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:0.558085;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 108.2929,183.90458 v 1.65291 h 14.26387"
|
||||
id="path586-7"
|
||||
sodipodi:nodetypes="ccc" /><g
|
||||
id="g463"
|
||||
transform="matrix(0.29429143,0,0,0.26600608,66.416639,104.76584)"
|
||||
style="stroke-width:0.55659"><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:1.99464;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="M 166.29184,169.93124 V 192.924 l -15.65249,1.2e-4 v 91.70544 H 133.9476 v -91.70571 l -15.64914,1.5e-4 v -22.99276"
|
||||
id="path455-3"
|
||||
sodipodi:nodetypes="cccccccc" /></g></g><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /></g></g></svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,125 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_counterdrill_angled.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.8747476"
|
||||
inkscape:cx="29.129713"
|
||||
inkscape:cy="61.439078"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g1399"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,39.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000;stroke-dasharray:none"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000;stroke-dasharray:none"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 166.29184,169.93124 v 13.75269 l -15.65249,17.50579 v 83.99925 l -8.34584,7.28886 -8.34591,-7.28886 v -83.99952 l -15.64914,-17.50552 v -13.75269"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 102.67787,150.9342 39.61728,-0.003 v 8.7527"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 107.67787,227.4368 h -5 m 10.04433,-57.50556 h -5.04433 v 12.99311 44.51245"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,285.18897 27.9633,4.9e-4 V 170.43668 h -3.8276"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 186.30041,242.4001 h 3.98819"
|
||||
id="path582"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 22.5055 h 47.99338"
|
||||
id="path586"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 118.29846,167.39454 v -7.71062 h 47.99338 v 7.71062"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 170.62493,179.6839 9.88143,-15.57868 h 9.78224"
|
||||
id="path454"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 107.67787,182.92435 h 5.04433"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /></g></g><metadata
|
||||
id="metadata1382"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_counterdrill_angled_included.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="13.787868"
|
||||
inkscape:cx="22.519798"
|
||||
inkscape:cy="134.86494"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="40.615636,30.21716"
|
||||
orientation="0,-1"
|
||||
id="guide874"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g1399"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,39.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000;stroke-dasharray:none"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000;stroke-dasharray:none"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 166.29184,169.93124 v 13.75269 l -15.65249,17.50579 v 83.99925 l -8.34584,7.28886 -8.34591,-7.28886 v -83.99952 l -15.64914,-17.50552 v -13.75269"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 102.67787,150.9342 39.61728,-0.003 v 8.7527"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 107.67787,227.4368 h -5 m 10.04433,-57.50556 h -5.04433 v 12.99311 44.51245"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,292.47734 27.9633,4.9e-4 0,-122.04115 h -3.8276"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 186.30041,242.4001 h 3.98819"
|
||||
id="path582"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 22.5055 h 47.99338"
|
||||
id="path586"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 118.29846,167.39454 v -7.71062 h 47.99338 v 7.71062"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 170.62493,179.6839 9.88143,-15.57868 h 9.78224"
|
||||
id="path454"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 107.67787,182.92435 h 5.04433"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /></g></g><metadata
|
||||
id="metadata1382"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_counterdrill_flat.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.4469671"
|
||||
inkscape:cx="57.151691"
|
||||
inkscape:cy="78.764894"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 166.29184,169.93124 v 13.75269 l -15.65249,17.50579 v 83.99925 H 133.9476 v -83.99952 l -15.64914,-17.50552 v -13.75269"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="cccccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 102.62606,150.9342 39.66909,-0.003 v 8.7527"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 107.67787,227.4368 h -5.05181 m 10.09614,-57.50556 h -5.04433 v 12.99311 44.51245"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,285.18897 27.9633,4.9e-4 V 170.43668 h -3.8276"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 186.30041,242.4001 h 3.98819"
|
||||
id="path582"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 22.5055 h 47.99338"
|
||||
id="path586"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 118.29846,167.39454 v -7.71062 h 47.99338 v 7.71062"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 170.62493,179.6839 9.88143,-15.57868 h 9.78224"
|
||||
id="path454"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 107.67787,182.92435 h 5.04433"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /></g></g><metadata
|
||||
id="metadata1409"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_countersink_angled.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.4469671"
|
||||
inkscape:cx="14.65056"
|
||||
inkscape:cy="109.22646"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="64.613966,155.30045"
|
||||
orientation="0,-1"
|
||||
id="guide7482"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="32.269726,134.70891"
|
||||
orientation="0,-1"
|
||||
id="guide466"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g1399"
|
||||
transform="translate(3.99e-6,6.3499137e-5)"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,39.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 102.62606,150.9342 39.66909,-0.003 v 8.7527"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 107.67787,227.4368 h -5.05181 m 10.09581,-57.50556 h -5.044 v 12.99311 44.51245"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,285.18897 27.9633,4.9e-4 V 170.43668 h -3.8276"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 186.30041,242.4001 h 3.98819"
|
||||
id="path582"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 22.5055 h 47.99338"
|
||||
id="path586"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 118.29846,167.39454 v -7.71062 h 47.99338 v 7.71062"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 107.67787,187.98608 h 5.044"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 167.28486,171.22599 -16.64551,16.76082 v 97.20216 l -8.34584,7.84827 -8.34591,-7.84827 v -97.20289 l -16.69179,-16.76009"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccccc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 171.15735,167.3723 3.28302,-3.26708 h 15.84823"
|
||||
id="path454-6"
|
||||
sodipodi:nodetypes="ccc" /></g></g><metadata
|
||||
id="metadata1354"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 7.0 KiB |
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_countersink_angled_included.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4373738"
|
||||
inkscape:cx="40.412349"
|
||||
inkscape:cy="81.440114"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="64.613966,155.30045"
|
||||
orientation="0,-1"
|
||||
id="guide7482"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="32.269726,134.70891"
|
||||
orientation="0,-1"
|
||||
id="guide466"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="40.615636,29.65775"
|
||||
orientation="0,-1"
|
||||
id="guide676"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g1399"
|
||||
transform="translate(3.99e-6,6.3499137e-5)"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,39.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 102.62606,150.9342 39.66909,-0.003 v 8.7527"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 107.67787,227.4368 h -5.05181 m 10.09581,-57.50556 h -5.044 v 12.99311 44.51245"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,293.03724 27.9633,4.9e-4 0,-122.60105 h -3.8276"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 186.30041,242.4001 h 3.98819"
|
||||
id="path582"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 22.5055 h 47.99338"
|
||||
id="path586"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 118.29846,167.39454 v -7.71062 h 47.99338 v 7.71062"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 107.67787,187.98608 h 5.044"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 167.28486,171.22599 -16.64551,16.76082 v 97.20216 l -8.34584,7.84827 -8.34591,-7.84827 v -97.20289 l -16.69179,-16.76009"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccccc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 171.15735,167.3723 3.28302,-3.26708 h 15.84823"
|
||||
id="path454-3"
|
||||
sodipodi:nodetypes="ccc" /></g></g><metadata
|
||||
id="metadata1354"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 7.1 KiB |
@@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="180"
|
||||
viewBox="0 0 90 180"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_countersink_flat.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.3777778"
|
||||
inkscape:cx="34.194079"
|
||||
inkscape:cy="86.595394"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420245,94.999913"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89495,80.036612"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="64.613966,155.30045"
|
||||
orientation="0,-1"
|
||||
id="guide7482"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="32.269726,134.70891"
|
||||
orientation="0,-1"
|
||||
id="guide466"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48917,-143.06709)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 167.28486,171.22599 -16.64551,16.76082 v 97.20218 H 133.9476 v -97.20291 l -16.69179,-16.76009"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2, 8.00001;stroke-dashoffset:0;stop-color:#000000"
|
||||
d="m 125.63827,142.69499 v 180"
|
||||
id="path4446" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 102.62606,150.9342 39.66909,-0.003 v 8.7527"
|
||||
id="path476"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
id="path578"
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 107.67787,227.4368 h -5.05181 m 10.09581,-57.50556 h -5.044 v 12.99311 44.51245"
|
||||
sodipodi:nodetypes="cccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52387,285.18899 27.9635,4.7e-4 V 170.43668 h -3.8276"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 186.30041,242.4001 h 3.98819"
|
||||
id="path582"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 22.5055 h 47.99338"
|
||||
id="path586"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 118.29846,167.39454 v -7.71062 h 47.99338 v 7.71062"
|
||||
id="path506"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 171.15735,167.3723 3.28302,-3.26708 h 15.84823"
|
||||
id="path454"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000"
|
||||
d="m 107.67787,187.98608 h 5.044"
|
||||
id="path1853"
|
||||
sodipodi:nodetypes="cc" /></g></g><metadata
|
||||
id="metadata1354"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
106
src/Mod/PartDesign/Gui/Resources/images/hole_none_angled.svg
Normal file
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90.034058"
|
||||
height="112.00004"
|
||||
viewBox="0 0 90.034058 112.00004"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_none_angled.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.8747476"
|
||||
inkscape:cx="-6.2567342"
|
||||
inkscape:cy="68.20866"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1399"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420233,93.999969"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89496,79.036667"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48916,-210.06711)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g1399"
|
||||
transform="translate(1.5e-5,6e-5)"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,3.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,285.18897 27.9633,4.9e-4 v -73.99945 h -27.9633"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 150.63936,211.19001 v 73.99896 l -8.34584,7.84827 -8.34591,-7.84827 v -73.99896"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 185.48737,242.13966 h 3.99998"
|
||||
id="path582-6"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 12.24722 h 48.46852"
|
||||
id="path586-7"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000"
|
||||
d="M 101.67786,321.69505 V 209.69501"
|
||||
id="path830" /></g></g><metadata
|
||||
id="metadata1310"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90.034058"
|
||||
height="112.00004"
|
||||
viewBox="0 0 90.034058 112.00004"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_none_angled_included.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="4.8747476"
|
||||
inkscape:cx="26.565478"
|
||||
inkscape:cy="63.490466"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1399"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420233,93.999969"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89496,79.036667"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="40.615656,28.657809"
|
||||
orientation="0,-1"
|
||||
id="guide918"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48916,-210.06711)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><g
|
||||
id="g1399"
|
||||
transform="translate(1.5e-5,6e-5)"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 114.8787,268.17673 -7.20083,3.51826 h -5"
|
||||
id="path472"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 111.18088,264.17674 17.22369,17.22361"
|
||||
id="path642" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 174.68621,264.1767 -17.22369,17.22361"
|
||||
id="path642-3" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
id="path1314"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="142.29521"
|
||||
sodipodi:cy="292.68314"
|
||||
sodipodi:rx="41.997044"
|
||||
sodipodi:ry="32.843685"
|
||||
sodipodi:start="4.0142573"
|
||||
sodipodi:end="5.4105207"
|
||||
sodipodi:arc-type="arc"
|
||||
d="m 115.30003,267.52341 a 41.997044,32.843685 0 0 1 53.99036,0"
|
||||
sodipodi:open="true" /></g><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,293.03724 27.9633,4.9e-4 v -81.84772 h -27.9633"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 150.63936,211.19001 v 73.99896 l -8.34584,7.84827 -8.34591,-7.84827 v -73.99896"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="ccccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 185.48737,242.13966 h 3.99998"
|
||||
id="path582-6"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 12.24722 h 48.46852"
|
||||
id="path586-7"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000"
|
||||
d="M 101.67786,321.69505 V 209.69501"
|
||||
id="path830" /></g></g><metadata
|
||||
id="metadata1310"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 5.3 KiB |
82
src/Mod/PartDesign/Gui/Resources/images/hole_none_flat.svg
Normal file
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90.034058"
|
||||
height="112.00004"
|
||||
viewBox="0 0 90.034058 112.00004"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="hole_none_flat.svg"
|
||||
inkscape:export-filename="hole_counterbore.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
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="namedview7"
|
||||
pagecolor="#2d2d2d"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.4469671"
|
||||
inkscape:cx="-50.769269"
|
||||
inkscape:cy="46.997838"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="824"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g1241"
|
||||
showguides="true"><sodipodi:guide
|
||||
position="-4.1420233,93.999969"
|
||||
orientation="1,0"
|
||||
id="guide1501"
|
||||
inkscape:locked="false" /><sodipodi:guide
|
||||
position="100.89496,79.036667"
|
||||
orientation="1,0"
|
||||
id="guide1530"
|
||||
inkscape:locked="false" /></sodipodi:namedview><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-101.48916,-210.06711)"><g
|
||||
id="g1241"
|
||||
transform="translate(-0.18870399,0.37210001)"><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 157.52407,285.18897 27.9633,4.9e-4 v -73.99945 h -27.9633"
|
||||
id="path580"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 133.94707,291.68398 v 6.50551 h 16.6963 v -6.50551"
|
||||
id="path584"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:#4d4d4d;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 150.63936,211.48814 v 73.70083 h -16.69175 v -73.7011"
|
||||
id="path455"
|
||||
sodipodi:nodetypes="cccc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 185.48737,242.13966 h 3.99998"
|
||||
id="path582-6"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#999999;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stop-color:#000000"
|
||||
d="m 142.29522,298.18949 v 12.24722 h 48.46852"
|
||||
id="path586-7"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000"
|
||||
d="M 101.67786,321.69505 V 209.69501"
|
||||
id="path830" /></g></g><metadata
|
||||
id="metadata1294"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:creator><cc:Agent><dc:title>Alfredo Monclus</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>FreeCAD LGPL2+</dc:title></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title>FreeCAD</dc:title></cc:Agent></dc:publisher></cc:Work></rdf:RDF></metadata></svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -61,15 +61,15 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
|
||||
QMetaObject::connectSlotsByName(this);
|
||||
|
||||
ui->ThreadType->addItem(tr("None"), QByteArray("None"));
|
||||
ui->ThreadType->addItem(tr("ISO metric regular profile"), QByteArray("ISO"));
|
||||
ui->ThreadType->addItem(tr("ISO metric fine profile"), QByteArray("ISO"));
|
||||
ui->ThreadType->addItem(tr("UTS coarse profile"), QByteArray("UTS"));
|
||||
ui->ThreadType->addItem(tr("UTS fine profile"), QByteArray("UTS"));
|
||||
ui->ThreadType->addItem(tr("UTS extra fine profile"), QByteArray("UTS"));
|
||||
ui->ThreadType->addItem(tr("ANSI pipe profile"), QByteArray("NPT"));
|
||||
ui->ThreadType->addItem(tr("BSP pipe profile"), QByteArray("BSP"));
|
||||
ui->ThreadType->addItem(tr("BSW whitworth profile"), QByteArray("BSW"));
|
||||
ui->ThreadType->addItem(tr("BSF whitworth fine profile"), QByteArray("BSF"));
|
||||
ui->ThreadType->addItem(tr("ISO metric regular"), QByteArray("ISO"));
|
||||
ui->ThreadType->addItem(tr("ISO metric fine"), QByteArray("ISO"));
|
||||
ui->ThreadType->addItem(tr("UTS coarse"), QByteArray("UTS"));
|
||||
ui->ThreadType->addItem(tr("UTS fine"), QByteArray("UTS"));
|
||||
ui->ThreadType->addItem(tr("UTS extra fine"), QByteArray("UTS"));
|
||||
ui->ThreadType->addItem(tr("ANSI pipes"), QByteArray("None"));
|
||||
ui->ThreadType->addItem(tr("ISO/BSP pipes"), QByteArray("None"));
|
||||
ui->ThreadType->addItem(tr("BSW whitworth"), QByteArray("None"));
|
||||
ui->ThreadType->addItem(tr("BSF whitworth fine"), QByteArray("None"));
|
||||
|
||||
// read values from the hole properties
|
||||
auto pcHole = getObject<PartDesign::Hole>();
|
||||
@@ -122,17 +122,11 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
|
||||
}
|
||||
ui->HoleCutType->setCurrentIndex(pcHole->HoleCutType.getValue());
|
||||
|
||||
bool isNotCut = pcHole->HoleCutType.getValue() == 0L;
|
||||
ui->labelHoleCutDiameter->setHidden(isNotCut);
|
||||
ui->labelHoleCutDepth->setHidden(isNotCut);
|
||||
ui->labelHoleCutCountersinkAngle->setHidden(isNotCut);
|
||||
ui->HoleCutDiameter->setHidden(isNotCut);
|
||||
ui->HoleCutDepth->setHidden(isNotCut);
|
||||
ui->HoleCutCountersinkAngle->setHidden(isNotCut);
|
||||
ui->HoleCutCustomValues->setHidden(isNotCut);
|
||||
|
||||
ui->HoleCutCustomValues->setChecked(pcHole->HoleCutCustomValues.getValue());
|
||||
ui->HoleCutCustomValues->setDisabled(pcHole->HoleCutCustomValues.isReadOnly());
|
||||
ui->HoleCutCustomValues->setHidden(
|
||||
pcHole->HoleCutType.getValue() < 5
|
||||
|| pcHole->HoleCutCustomValues.isReadOnly()
|
||||
);
|
||||
// HoleCutDiameter must not be smaller or equal than the Diameter
|
||||
ui->HoleCutDiameter->setMinimum(pcHole->Diameter.getValue() + 0.1);
|
||||
ui->HoleCutDiameter->setValue(pcHole->HoleCutDiameter.getValue());
|
||||
@@ -154,11 +148,9 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
|
||||
|
||||
bool isFlatDrill = pcHole->DrillPoint.getValue() == 0L;
|
||||
bool depthIsDimension = std::string(pcHole->DepthType.getValueAsString()) == "Dimension";
|
||||
ui->DrillGroupBox->setVisible(depthIsDimension);
|
||||
ui->drillPointFlat->setChecked(isFlatDrill);
|
||||
ui->drillPointAngled->setChecked(!isFlatDrill);
|
||||
ui->DrillPointAngle->setEnabled(!isFlatDrill);
|
||||
ui->DrillForDepth->setVisible(!isFlatDrill);
|
||||
ui->DrillPointAngled->setChecked(!isFlatDrill && depthIsDimension);
|
||||
ui->DrillPointAngle->setEnabled(!isFlatDrill && depthIsDimension);
|
||||
ui->DrillForDepth->setEnabled(!isFlatDrill && depthIsDimension);
|
||||
|
||||
ui->Tapered->setChecked(pcHole->Tapered.getValue());
|
||||
// Angle is only enabled (sensible) if tapered
|
||||
@@ -184,11 +176,14 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
|
||||
ui->UpdateView->setChecked(false);
|
||||
ui->UpdateView->setVisible(isThreaded && isModeled);
|
||||
|
||||
ui->Depth->setEnabled(std::string(pcHole->DepthType.getValueAsString()) == "Dimension");
|
||||
ui->Depth->setEnabled(depthIsDimension);
|
||||
ui->ThreadDepthWidget->setVisible(isThreaded && isModeled);
|
||||
ui->ThreadDepth->setEnabled(ui->Threaded->isChecked() && ui->ModelThread->isChecked()
|
||||
&& std::string(pcHole->ThreadDepthType.getValueAsString())
|
||||
== "Dimension");
|
||||
|
||||
ui->ThreadDepthDimensionWidget->setVisible(
|
||||
std::string(pcHole->ThreadDepthType.getValueAsString()) == "Dimension"
|
||||
);
|
||||
|
||||
setCutDiagram();
|
||||
|
||||
// clang-format off
|
||||
connect(ui->Threaded, &QCheckBox::clicked,
|
||||
@@ -221,9 +216,7 @@ TaskHoleParameters::TaskHoleParameters(ViewProviderHole* HoleView, QWidget* pare
|
||||
this, &TaskHoleParameters::depthChanged);
|
||||
connect(ui->Depth, qOverload<double>(&Gui::QuantitySpinBox::valueChanged),
|
||||
this, &TaskHoleParameters::depthValueChanged);
|
||||
connect(ui->drillPointFlat, &QRadioButton::clicked,
|
||||
this, &TaskHoleParameters::drillPointChanged);
|
||||
connect(ui->drillPointAngled, &QRadioButton::clicked,
|
||||
connect(ui->DrillPointAngled, &QCheckBox::toggled,
|
||||
this, &TaskHoleParameters::drillPointChanged);
|
||||
connect(ui->DrillPointAngle, qOverload<double>(&Gui::QuantitySpinBox::valueChanged),
|
||||
this, &TaskHoleParameters::drillPointAngledValueChanged);
|
||||
@@ -306,7 +299,7 @@ void TaskHoleParameters::modelThreadChanged()
|
||||
ui->CustomThreadClearance->setEnabled(ui->UseCustomThreadClearance->isChecked());
|
||||
|
||||
ui->ThreadDepthWidget->setVisible(isThreaded && isModeled);
|
||||
ui->ThreadDepth->setEnabled(
|
||||
ui->ThreadDepthDimensionWidget->setVisible(
|
||||
std::string(pcHole->ThreadDepthType.getValueAsString()) == "Dimension"
|
||||
);
|
||||
|
||||
@@ -323,7 +316,7 @@ void TaskHoleParameters::threadDepthTypeChanged(int index)
|
||||
{
|
||||
if (auto hole = getObject<PartDesign::Hole>()) {
|
||||
hole->ThreadDepthType.setValue(index);
|
||||
ui->ThreadDepth->setEnabled(index == 1);
|
||||
ui->ThreadDepthDimensionWidget->setVisible(index == 1);
|
||||
ui->ThreadDepth->setValue(hole->ThreadDepth.getValue());
|
||||
recomputeFeature();
|
||||
}
|
||||
@@ -333,6 +326,7 @@ void TaskHoleParameters::threadDepthChanged(double value)
|
||||
{
|
||||
if (auto hole = getObject<PartDesign::Hole>()) {
|
||||
hole->ThreadDepth.setValue(value);
|
||||
setCutDiagram();
|
||||
recomputeFeature();
|
||||
}
|
||||
}
|
||||
@@ -388,7 +382,7 @@ void TaskHoleParameters::holeCutTypeChanged(int index)
|
||||
recomputeFeature();
|
||||
|
||||
// apply the result to the widgets
|
||||
ui->HoleCutCustomValues->setDisabled(hole->HoleCutCustomValues.isReadOnly());
|
||||
ui->HoleCutCustomValues->setHidden(hole->HoleCutCustomValues.isReadOnly());
|
||||
ui->HoleCutCustomValues->setChecked(hole->HoleCutCustomValues.getValue());
|
||||
|
||||
// HoleCutCustomValues is only enabled for screw definitions
|
||||
@@ -396,47 +390,82 @@ void TaskHoleParameters::holeCutTypeChanged(int index)
|
||||
// the type is a countersink and thus if HoleCutCountersinkAngle can be enabled
|
||||
std::string HoleCutTypeString = hole->HoleCutType.getValueAsString();
|
||||
|
||||
bool isNotCut = HoleCutTypeString == "None";
|
||||
ui->labelHoleCutDiameter->setHidden(isNotCut);
|
||||
ui->labelHoleCutDepth->setHidden(isNotCut);
|
||||
ui->labelHoleCutCountersinkAngle->setHidden(isNotCut);
|
||||
ui->HoleCutDiameter->setHidden(isNotCut);
|
||||
ui->HoleCutDepth->setHidden(isNotCut);
|
||||
ui->HoleCutCountersinkAngle->setHidden(isNotCut);
|
||||
ui->HoleCutCustomValues->setHidden(isNotCut);
|
||||
|
||||
if (HoleCutTypeString == "None" || HoleCutTypeString == "Counterbore"
|
||||
|| HoleCutTypeString == "Countersink" || HoleCutTypeString == "Counterdrill") {
|
||||
ui->HoleCutCustomValues->setEnabled(false);
|
||||
if (HoleCutTypeString == "None") {
|
||||
ui->HoleCutDiameter->setEnabled(false);
|
||||
ui->HoleCutDepth->setEnabled(false);
|
||||
ui->HoleCutCountersinkAngle->setEnabled(false);
|
||||
}
|
||||
if (HoleCutTypeString == "Counterbore") {
|
||||
ui->HoleCutCountersinkAngle->setEnabled(false);
|
||||
}
|
||||
if (HoleCutTypeString == "Countersink") {
|
||||
ui->HoleCutCountersinkAngle->setEnabled(true);
|
||||
}
|
||||
if (
|
||||
HoleCutTypeString == "None"
|
||||
|| HoleCutTypeString == "Counterbore"
|
||||
|| HoleCutTypeString == "Countersink"
|
||||
|| HoleCutTypeString == "Counterdrill"
|
||||
) {
|
||||
ui->HoleCutCustomValues->setVisible(false);
|
||||
}
|
||||
else { // screw definition
|
||||
// we can have the case that we have no normed values
|
||||
// in this case HoleCutCustomValues is read-only AND true
|
||||
if (ui->HoleCutCustomValues->isChecked()) {
|
||||
ui->HoleCutDiameter->setEnabled(true);
|
||||
ui->HoleCutDepth->setEnabled(true);
|
||||
if (!hole->HoleCutCountersinkAngle.isReadOnly()) {
|
||||
ui->HoleCutCountersinkAngle->setEnabled(true);
|
||||
}
|
||||
}
|
||||
else {
|
||||
ui->HoleCutCustomValues->setEnabled(true);
|
||||
ui->HoleCutDiameter->setEnabled(false);
|
||||
ui->HoleCutDepth->setEnabled(false);
|
||||
ui->HoleCutCountersinkAngle->setEnabled(false);
|
||||
}
|
||||
bool isCustom = ui->HoleCutCustomValues->isChecked();
|
||||
ui->HoleCutDiameter->setEnabled(isCustom);
|
||||
ui->HoleCutDepth->setEnabled(isCustom);
|
||||
ui->HoleCutCountersinkAngle->setEnabled(
|
||||
isCustom && !hole->HoleCutCountersinkAngle.isReadOnly()
|
||||
);
|
||||
}
|
||||
setCutDiagram();
|
||||
}
|
||||
|
||||
void TaskHoleParameters::setCutDiagram()
|
||||
{
|
||||
auto hole = getObject<PartDesign::Hole>();
|
||||
const std::string holeCutTypeString = hole->HoleCutType.getValueAsString();
|
||||
const std::string threadTypeString = hole->ThreadType.getValueAsString();
|
||||
bool isAngled = (
|
||||
std::string(hole->DepthType.getValueAsString()) == "Dimension"
|
||||
&& ui->DrillPointAngled->isChecked()
|
||||
);
|
||||
bool isCountersink = (
|
||||
holeCutTypeString == "Countersink"
|
||||
|| hole->isDynamicCountersink(threadTypeString, holeCutTypeString)
|
||||
);
|
||||
bool isCounterbore = (
|
||||
holeCutTypeString == "Counterbore"
|
||||
|| hole->isDynamicCounterbore(threadTypeString, holeCutTypeString)
|
||||
);
|
||||
bool isCounterdrill = (holeCutTypeString == "Counterdrill");
|
||||
bool includeAngle = hole->DrillForDepth.getValue();
|
||||
bool isNotCut = holeCutTypeString == "None";
|
||||
|
||||
ui->labelHoleCutDiameter->setHidden(isNotCut);
|
||||
ui->labelHoleCutDepth->setHidden(isNotCut);
|
||||
ui->HoleCutDiameter->setHidden(isNotCut);
|
||||
ui->HoleCutDepth->setHidden(isNotCut);
|
||||
|
||||
std::string baseFileName;
|
||||
if (isCounterbore) {
|
||||
baseFileName = "hole_counterbore";
|
||||
ui->HoleCutCountersinkAngle->setVisible(false);
|
||||
ui->labelHoleCutCountersinkAngle->setVisible(false);
|
||||
}
|
||||
else if (isCountersink) {
|
||||
baseFileName = "hole_countersink";
|
||||
ui->HoleCutCountersinkAngle->setVisible(true);
|
||||
ui->labelHoleCutCountersinkAngle->setVisible(true);
|
||||
}
|
||||
else if (isCounterdrill) {
|
||||
baseFileName = "hole_counterdrill";
|
||||
ui->HoleCutCountersinkAngle->setVisible(true);
|
||||
ui->labelHoleCutCountersinkAngle->setVisible(true);
|
||||
}
|
||||
else {
|
||||
baseFileName = "hole_none";
|
||||
ui->HoleCutCountersinkAngle->setVisible(false);
|
||||
ui->labelHoleCutCountersinkAngle->setVisible(false);
|
||||
}
|
||||
|
||||
if (isAngled) {
|
||||
baseFileName += includeAngle ? "_angled_included" : "_angled";
|
||||
} else {
|
||||
baseFileName += "_flat";
|
||||
}
|
||||
|
||||
ui->cutDiagram->setSvg(QString::fromUtf8((":images/" + baseFileName + ".svg").c_str()));
|
||||
}
|
||||
|
||||
void TaskHoleParameters::holeCutCustomValuesChanged()
|
||||
@@ -514,17 +543,16 @@ void TaskHoleParameters::depthChanged(int index)
|
||||
if (!hole) {
|
||||
return;
|
||||
}
|
||||
|
||||
hole->DepthType.setValue(index);
|
||||
|
||||
recomputeFeature();
|
||||
// enabling must be handled after recompute
|
||||
bool DepthisDimension = (
|
||||
std::string(hole->DepthType.getValueAsString()) == "Dimension"
|
||||
);
|
||||
|
||||
ui->DrillGroupBox->setVisible(DepthisDimension);
|
||||
recomputeFeature();
|
||||
// enabling must be handled after recompute
|
||||
ui->ThreadDepth->setEnabled(DepthisDimension);
|
||||
ui->DrillPointAngled->setEnabled(DepthisDimension);
|
||||
ui->DrillPointAngle->setEnabled(DepthisDimension);
|
||||
ui->DrillForDepth->setEnabled(DepthisDimension);
|
||||
setCutDiagram();
|
||||
}
|
||||
|
||||
void TaskHoleParameters::depthValueChanged(double value)
|
||||
@@ -538,17 +566,11 @@ void TaskHoleParameters::depthValueChanged(double value)
|
||||
void TaskHoleParameters::drillPointChanged()
|
||||
{
|
||||
if (auto hole = getObject<PartDesign::Hole>()) {
|
||||
if (sender() == ui->drillPointFlat) {
|
||||
hole->DrillPoint.setValue(0L);
|
||||
ui->DrillForDepth->setVisible(false);
|
||||
}
|
||||
else if (sender() == ui->drillPointAngled) {
|
||||
hole->DrillPoint.setValue(1L);
|
||||
ui->DrillForDepth->setVisible(true);
|
||||
}
|
||||
else {
|
||||
assert(0);
|
||||
}
|
||||
bool angled = ui->DrillPointAngled->isChecked();
|
||||
hole->DrillPoint.setValue(angled);
|
||||
ui->DrillPointAngle->setEnabled(angled);
|
||||
ui->DrillForDepth->setEnabled(angled);
|
||||
setCutDiagram();
|
||||
recomputeFeature();
|
||||
}
|
||||
}
|
||||
@@ -567,6 +589,7 @@ void TaskHoleParameters::drillForDepthChanged()
|
||||
hole->DrillForDepth.setValue(ui->DrillForDepth->isChecked());
|
||||
recomputeFeature();
|
||||
}
|
||||
setCutDiagram();
|
||||
}
|
||||
|
||||
void TaskHoleParameters::taperedChanged()
|
||||
@@ -748,266 +771,145 @@ void TaskHoleParameters::changedObject(const App::Document&, const App::Property
|
||||
{
|
||||
auto hole = getObject<PartDesign::Hole>();
|
||||
if (!hole) {
|
||||
// happens when aborting the command
|
||||
return;
|
||||
return; // happens when aborting the command
|
||||
}
|
||||
bool ro = Prop.isReadOnly();
|
||||
|
||||
Base::Console().Log("Parameter %s was updated\n", Prop.getName());
|
||||
|
||||
auto updateCheckable = [&](QCheckBox* widget, bool value) {
|
||||
[[maybe_unused]] QSignalBlocker blocker(widget);
|
||||
widget->setChecked(value);
|
||||
widget->setDisabled(ro);
|
||||
};
|
||||
|
||||
auto updateRadio = [&](QRadioButton* widget, bool value) {
|
||||
[[maybe_unused]] QSignalBlocker blocker(widget);
|
||||
widget->setChecked(value);
|
||||
widget->setDisabled(ro);
|
||||
};
|
||||
|
||||
auto updateComboBox = [&](QComboBox* widget, int value) {
|
||||
[[maybe_unused]] QSignalBlocker blocker(widget);
|
||||
widget->setCurrentIndex(value);
|
||||
widget->setDisabled(ro);
|
||||
};
|
||||
|
||||
auto updateSpinBox = [&](Gui::PrefQuantitySpinBox* widget, double value) {
|
||||
[[maybe_unused]] QSignalBlocker blocker(widget);
|
||||
widget->setValue(value);
|
||||
widget->setDisabled(ro);
|
||||
};
|
||||
|
||||
if (&Prop == &hole->Threaded) {
|
||||
ui->Threaded->setEnabled(true);
|
||||
if (ui->Threaded->isChecked() ^ hole->Threaded.getValue()) {
|
||||
ui->Threaded->blockSignals(true);
|
||||
ui->Threaded->setChecked(hole->Threaded.getValue());
|
||||
ui->Threaded->blockSignals(false);
|
||||
}
|
||||
ui->Threaded->setDisabled(ro);
|
||||
updateCheckable(ui->Threaded, hole->Threaded.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ThreadType) {
|
||||
ui->ThreadType->setEnabled(true);
|
||||
updateComboBox(ui->ThreadType, hole->ThreadType.getValue());
|
||||
|
||||
ui->ThreadSize->blockSignals(true);
|
||||
ui->ThreadSize->clear();
|
||||
std::vector<std::string> cursor = hole->ThreadSize.getEnumVector();
|
||||
for (const auto& it : cursor) {
|
||||
ui->ThreadSize->addItem(QString::fromStdString(it));
|
||||
}
|
||||
ui->ThreadSize->setCurrentIndex(hole->ThreadSize.getValue());
|
||||
ui->ThreadSize->blockSignals(false);
|
||||
// Thread type also updates related properties
|
||||
auto updateComboBoxItems = [&](QComboBox* widget, const auto& values, int selected) {
|
||||
QSignalBlocker blocker(widget);
|
||||
widget->clear();
|
||||
for (const auto& it : values) {
|
||||
widget->addItem(QString::fromStdString(it));
|
||||
}
|
||||
widget->setCurrentIndex(selected);
|
||||
};
|
||||
|
||||
// Thread type also updates HoleCutType and ThreadClass
|
||||
ui->HoleCutType->blockSignals(true);
|
||||
ui->HoleCutType->clear();
|
||||
cursor = hole->HoleCutType.getEnumVector();
|
||||
for (const auto& it : cursor) {
|
||||
ui->HoleCutType->addItem(QString::fromStdString(it));
|
||||
}
|
||||
ui->HoleCutType->setCurrentIndex(hole->HoleCutType.getValue());
|
||||
ui->HoleCutType->blockSignals(false);
|
||||
|
||||
ui->ThreadClass->blockSignals(true);
|
||||
ui->ThreadClass->clear();
|
||||
cursor = hole->ThreadClass.getEnumVector();
|
||||
for (const auto& it : cursor) {
|
||||
ui->ThreadClass->addItem(QString::fromStdString(it));
|
||||
}
|
||||
ui->ThreadClass->setCurrentIndex(hole->ThreadClass.getValue());
|
||||
ui->ThreadClass->blockSignals(false);
|
||||
|
||||
if (ui->ThreadType->currentIndex() != hole->ThreadType.getValue()) {
|
||||
ui->ThreadType->blockSignals(true);
|
||||
ui->ThreadType->setCurrentIndex(hole->ThreadType.getValue());
|
||||
ui->ThreadType->blockSignals(false);
|
||||
}
|
||||
ui->ThreadType->setDisabled(ro);
|
||||
updateComboBoxItems(ui->ThreadSize, hole->ThreadSize.getEnumVector(), hole->ThreadSize.getValue());
|
||||
updateComboBoxItems(ui->HoleCutType, hole->HoleCutType.getEnumVector(), hole->HoleCutType.getValue());
|
||||
updateComboBoxItems(ui->ThreadClass, hole->ThreadClass.getEnumVector(), hole->ThreadClass.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ThreadSize) {
|
||||
ui->ThreadSize->setEnabled(true);
|
||||
if (ui->ThreadSize->currentIndex() != hole->ThreadSize.getValue()) {
|
||||
ui->ThreadSize->blockSignals(true);
|
||||
ui->ThreadSize->setCurrentIndex(hole->ThreadSize.getValue());
|
||||
ui->ThreadSize->blockSignals(false);
|
||||
}
|
||||
ui->ThreadSize->setDisabled(ro);
|
||||
updateComboBox(ui->ThreadSize, hole->ThreadSize.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ThreadClass) {
|
||||
ui->ThreadClass->setEnabled(true);
|
||||
if (ui->ThreadClass->currentIndex() != hole->ThreadClass.getValue()) {
|
||||
ui->ThreadClass->blockSignals(true);
|
||||
ui->ThreadClass->setCurrentIndex(hole->ThreadClass.getValue());
|
||||
ui->ThreadClass->blockSignals(false);
|
||||
}
|
||||
ui->ThreadClass->setDisabled(ro);
|
||||
updateComboBox(ui->ThreadClass, hole->ThreadClass.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ThreadFit) {
|
||||
ui->ThreadFit->setEnabled(true);
|
||||
if (ui->ThreadFit->currentIndex() != hole->ThreadFit.getValue()) {
|
||||
ui->ThreadFit->blockSignals(true);
|
||||
ui->ThreadFit->setCurrentIndex(hole->ThreadFit.getValue());
|
||||
ui->ThreadFit->blockSignals(false);
|
||||
}
|
||||
ui->ThreadFit->setDisabled(ro);
|
||||
updateComboBox(ui->ThreadFit, hole->ThreadFit.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->Diameter) {
|
||||
ui->Diameter->setEnabled(true);
|
||||
if (ui->Diameter->value().getValue() != hole->Diameter.getValue()) {
|
||||
ui->Diameter->blockSignals(true);
|
||||
ui->Diameter->setValue(hole->Diameter.getValue());
|
||||
ui->Diameter->blockSignals(false);
|
||||
}
|
||||
ui->Diameter->setDisabled(ro);
|
||||
updateSpinBox(ui->Diameter, hole->Diameter.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ThreadDirection) {
|
||||
ui->directionRightHand->setEnabled(true);
|
||||
ui->directionLeftHand->setEnabled(true);
|
||||
|
||||
std::string direction(hole->ThreadDirection.getValueAsString());
|
||||
if (direction == "Right" && !ui->directionRightHand->isChecked()) {
|
||||
ui->directionRightHand->blockSignals(true);
|
||||
ui->directionRightHand->setChecked(true);
|
||||
ui->directionRightHand->blockSignals(false);
|
||||
}
|
||||
if (direction == "Left" && !ui->directionLeftHand->isChecked()) {
|
||||
ui->directionLeftHand->blockSignals(true);
|
||||
ui->directionLeftHand->setChecked(true);
|
||||
ui->directionLeftHand->blockSignals(false);
|
||||
}
|
||||
ui->directionRightHand->setDisabled(ro);
|
||||
ui->directionLeftHand->setDisabled(ro);
|
||||
updateRadio(ui->directionRightHand, direction == "Right");
|
||||
updateRadio(ui->directionLeftHand, direction == "Left");
|
||||
}
|
||||
else if (&Prop == &hole->HoleCutType) {
|
||||
ui->HoleCutType->setEnabled(true);
|
||||
if (ui->HoleCutType->currentIndex() != hole->HoleCutType.getValue()) {
|
||||
ui->HoleCutType->blockSignals(true);
|
||||
ui->HoleCutType->setCurrentIndex(hole->HoleCutType.getValue());
|
||||
ui->HoleCutType->blockSignals(false);
|
||||
}
|
||||
ui->HoleCutType->setDisabled(ro);
|
||||
updateComboBox(ui->HoleCutType, hole->HoleCutType.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->HoleCutDiameter) {
|
||||
ui->HoleCutDiameter->setEnabled(true);
|
||||
if (ui->HoleCutDiameter->value().getValue() != hole->HoleCutDiameter.getValue()) {
|
||||
ui->HoleCutDiameter->blockSignals(true);
|
||||
ui->HoleCutDiameter->setValue(hole->HoleCutDiameter.getValue());
|
||||
ui->HoleCutDiameter->blockSignals(false);
|
||||
}
|
||||
ui->HoleCutDiameter->setDisabled(ro);
|
||||
updateSpinBox(ui->HoleCutDiameter, hole->HoleCutDiameter.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->HoleCutDepth) {
|
||||
ui->HoleCutDepth->setEnabled(true);
|
||||
if (ui->HoleCutDepth->value().getValue() != hole->HoleCutDepth.getValue()) {
|
||||
ui->HoleCutDepth->blockSignals(true);
|
||||
ui->HoleCutDepth->setValue(hole->HoleCutDepth.getValue());
|
||||
ui->HoleCutDepth->blockSignals(false);
|
||||
}
|
||||
ui->HoleCutDepth->setDisabled(ro);
|
||||
updateSpinBox(ui->HoleCutDepth, hole->HoleCutDepth.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->HoleCutCountersinkAngle) {
|
||||
ui->HoleCutCountersinkAngle->setEnabled(true);
|
||||
if (ui->HoleCutCountersinkAngle->value().getValue()
|
||||
!= hole->HoleCutCountersinkAngle.getValue()) {
|
||||
ui->HoleCutCountersinkAngle->blockSignals(true);
|
||||
ui->HoleCutCountersinkAngle->setValue(hole->HoleCutCountersinkAngle.getValue());
|
||||
ui->HoleCutCountersinkAngle->blockSignals(false);
|
||||
}
|
||||
ui->HoleCutCountersinkAngle->setDisabled(ro);
|
||||
updateSpinBox(ui->HoleCutCountersinkAngle, hole->HoleCutCountersinkAngle.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->DepthType) {
|
||||
ui->DepthType->setEnabled(true);
|
||||
if (ui->DepthType->currentIndex() != hole->DepthType.getValue()) {
|
||||
ui->DepthType->blockSignals(true);
|
||||
ui->DepthType->setCurrentIndex(hole->DepthType.getValue());
|
||||
ui->DepthType->blockSignals(false);
|
||||
}
|
||||
ui->DepthType->setDisabled(ro);
|
||||
updateComboBox(ui->DepthType, hole->DepthType.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->Depth) {
|
||||
ui->Depth->setEnabled(true);
|
||||
if (ui->Depth->value().getValue() != hole->Depth.getValue()) {
|
||||
ui->Depth->blockSignals(true);
|
||||
ui->Depth->setValue(hole->Depth.getValue());
|
||||
ui->Depth->blockSignals(false);
|
||||
}
|
||||
ui->Depth->setDisabled(ro);
|
||||
updateSpinBox(ui->Depth, hole->Depth.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->DrillPoint) {
|
||||
ui->drillPointFlat->setEnabled(true);
|
||||
ui->drillPointAngled->setEnabled(true);
|
||||
std::string drillPoint(hole->DrillPoint.getValueAsString());
|
||||
if (drillPoint == "Flat" && !ui->drillPointFlat->isChecked()) {
|
||||
ui->drillPointFlat->blockSignals(true);
|
||||
ui->drillPointFlat->setChecked(true);
|
||||
ui->drillPointFlat->blockSignals(false);
|
||||
}
|
||||
if (drillPoint == "Angled" && !ui->drillPointAngled->isChecked()) {
|
||||
ui->drillPointAngled->blockSignals(true);
|
||||
ui->drillPointAngled->setChecked(true);
|
||||
ui->drillPointAngled->blockSignals(false);
|
||||
}
|
||||
ui->drillPointFlat->setDisabled(ro);
|
||||
ui->drillPointAngled->setDisabled(ro);
|
||||
ui->DrillPointAngled->setEnabled(true);
|
||||
updateCheckable(ui->DrillPointAngled, hole->DrillPoint.getValueAsString() == std::string("Angled"));
|
||||
}
|
||||
else if (&Prop == &hole->DrillPointAngle) {
|
||||
ui->DrillPointAngle->setEnabled(true);
|
||||
if (ui->DrillPointAngle->value().getValue() != hole->DrillPointAngle.getValue()) {
|
||||
ui->DrillPointAngle->blockSignals(true);
|
||||
ui->DrillPointAngle->setValue(hole->DrillPointAngle.getValue());
|
||||
ui->DrillPointAngle->blockSignals(false);
|
||||
}
|
||||
ui->DrillPointAngle->setDisabled(ro);
|
||||
updateSpinBox(ui->DrillPointAngle, hole->DrillPointAngle.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->DrillForDepth) {
|
||||
ui->DrillForDepth->setEnabled(true);
|
||||
if (ui->DrillForDepth->isChecked() ^ hole->DrillForDepth.getValue()) {
|
||||
ui->DrillForDepth->blockSignals(true);
|
||||
ui->DrillForDepth->setChecked(hole->DrillForDepth.getValue());
|
||||
ui->DrillForDepth->blockSignals(false);
|
||||
}
|
||||
ui->DrillForDepth->setDisabled(ro);
|
||||
updateCheckable(ui->DrillForDepth, hole->DrillForDepth.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->Tapered) {
|
||||
ui->Tapered->setEnabled(true);
|
||||
if (ui->Tapered->isChecked() ^ hole->Tapered.getValue()) {
|
||||
ui->Tapered->blockSignals(true);
|
||||
ui->Tapered->setChecked(hole->Tapered.getValue());
|
||||
ui->Tapered->blockSignals(false);
|
||||
}
|
||||
ui->Tapered->setDisabled(ro);
|
||||
updateCheckable(ui->Tapered, hole->Tapered.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->TaperedAngle) {
|
||||
ui->TaperedAngle->setEnabled(true);
|
||||
if (ui->TaperedAngle->value().getValue() != hole->TaperedAngle.getValue()) {
|
||||
ui->TaperedAngle->blockSignals(true);
|
||||
ui->TaperedAngle->setValue(hole->TaperedAngle.getValue());
|
||||
ui->TaperedAngle->blockSignals(false);
|
||||
}
|
||||
ui->TaperedAngle->setDisabled(ro);
|
||||
updateSpinBox(ui->TaperedAngle, hole->TaperedAngle.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ModelThread) {
|
||||
ui->ModelThread->setEnabled(true);
|
||||
if (ui->ModelThread->isChecked() ^ hole->ModelThread.getValue()) {
|
||||
ui->ModelThread->blockSignals(true);
|
||||
ui->ModelThread->setChecked(hole->ModelThread.getValue());
|
||||
ui->ModelThread->blockSignals(false);
|
||||
}
|
||||
ui->ModelThread->setDisabled(ro);
|
||||
updateCheckable(ui->ModelThread, hole->ModelThread.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->UseCustomThreadClearance) {
|
||||
ui->UseCustomThreadClearance->setEnabled(true);
|
||||
if (ui->UseCustomThreadClearance->isChecked() ^ hole->UseCustomThreadClearance.getValue()) {
|
||||
ui->UseCustomThreadClearance->blockSignals(true);
|
||||
ui->UseCustomThreadClearance->setChecked(hole->UseCustomThreadClearance.getValue());
|
||||
ui->UseCustomThreadClearance->blockSignals(false);
|
||||
}
|
||||
ui->UseCustomThreadClearance->setDisabled(ro);
|
||||
updateCheckable(ui->UseCustomThreadClearance, hole->UseCustomThreadClearance.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->CustomThreadClearance) {
|
||||
ui->CustomThreadClearance->setEnabled(true);
|
||||
if (ui->CustomThreadClearance->value().getValue()
|
||||
!= hole->CustomThreadClearance.getValue()) {
|
||||
ui->CustomThreadClearance->blockSignals(true);
|
||||
ui->CustomThreadClearance->setValue(hole->CustomThreadClearance.getValue());
|
||||
ui->CustomThreadClearance->blockSignals(false);
|
||||
}
|
||||
ui->CustomThreadClearance->setDisabled(ro);
|
||||
updateSpinBox(ui->CustomThreadClearance, hole->CustomThreadClearance.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ThreadDepthType) {
|
||||
ui->ThreadDepthType->setEnabled(true);
|
||||
if (ui->ThreadDepthType->currentIndex() != hole->ThreadDepthType.getValue()) {
|
||||
ui->ThreadDepthType->blockSignals(true);
|
||||
ui->ThreadDepthType->setCurrentIndex(hole->ThreadDepthType.getValue());
|
||||
ui->ThreadDepthType->blockSignals(false);
|
||||
}
|
||||
ui->ThreadDepthType->setDisabled(ro);
|
||||
updateComboBox(ui->ThreadDepthType, hole->ThreadDepthType.getValue());
|
||||
}
|
||||
else if (&Prop == &hole->ThreadDepth) {
|
||||
ui->ThreadDepth->setEnabled(true);
|
||||
if (ui->ThreadDepth->value().getValue() != hole->ThreadDepth.getValue()) {
|
||||
ui->ThreadDepth->blockSignals(true);
|
||||
ui->ThreadDepth->setValue(hole->ThreadDepth.getValue());
|
||||
ui->ThreadDepth->blockSignals(false);
|
||||
}
|
||||
ui->ThreadDepth->setDisabled(ro);
|
||||
updateSpinBox(ui->ThreadDepth, hole->ThreadDepth.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1110,14 +1012,7 @@ Base::Quantity TaskHoleParameters::getDepth() const
|
||||
|
||||
long TaskHoleParameters::getDrillPoint() const
|
||||
{
|
||||
if (ui->drillPointFlat->isChecked()) {
|
||||
return 0;
|
||||
}
|
||||
if (ui->drillPointAngled->isChecked()) {
|
||||
return 1;
|
||||
}
|
||||
assert(0);
|
||||
return -1; // to avoid a compiler warning
|
||||
return ui->DrillPointAngled->isChecked() ? 1 : 0;
|
||||
}
|
||||
|
||||
Base::Quantity TaskHoleParameters::getDrillPointAngle() const
|
||||
|
||||
@@ -108,6 +108,7 @@ private Q_SLOTS:
|
||||
void updateViewChanged(bool isChecked);
|
||||
void threadDepthTypeChanged(int index);
|
||||
void threadDepthChanged(double value);
|
||||
void setCutDiagram();
|
||||
|
||||
private:
|
||||
class Observer : public App::DocumentObserver {
|
||||
|
||||