Add 3Point Angle Dimension
This commit is contained in:
committed by
Yorik van Havre
parent
1578b05a98
commit
b569120131
@@ -74,6 +74,7 @@ const char* DrawViewDimension::TypeEnums[]= {"Distance",
|
||||
"Radius",
|
||||
"Diameter",
|
||||
"Angle",
|
||||
"Angle3Pt",
|
||||
NULL};
|
||||
|
||||
const char* DrawViewDimension::MeasureTypeEnums[]= {"True",
|
||||
@@ -85,7 +86,8 @@ enum RefType{
|
||||
oneEdge,
|
||||
twoEdge,
|
||||
twoVertex,
|
||||
vertexEdge
|
||||
vertexEdge,
|
||||
threeVertex
|
||||
};
|
||||
|
||||
DrawViewDimension::DrawViewDimension(void)
|
||||
@@ -406,6 +408,32 @@ App::DocumentObjectExecReturn *DrawViewDimension::execute(void)
|
||||
pts.vertex = apex;
|
||||
m_anglePoints = pts;
|
||||
m_hasGeometry = true;
|
||||
} else if(Type.isValue("Angle3Pt")){
|
||||
if (getRefType() != threeVertex) {
|
||||
Base::Console().Log("Error: DVD - %s - 2D references are corrupt\n",getNameInDocument());
|
||||
return App::DocumentObject::StdReturn;
|
||||
}
|
||||
int idx0 = DrawUtil::getIndexFromName(subElements[0]);
|
||||
int idx1 = DrawUtil::getIndexFromName(subElements[1]);
|
||||
int idx2 = DrawUtil::getIndexFromName(subElements[2]);
|
||||
|
||||
TechDrawGeometry::Vertex* vert0 = getViewPart()->getProjVertexByIndex(idx0);
|
||||
TechDrawGeometry::Vertex* vert1 = getViewPart()->getProjVertexByIndex(idx1);
|
||||
TechDrawGeometry::Vertex* vert2 = getViewPart()->getProjVertexByIndex(idx2);
|
||||
if (!vert0 || !vert1 || !vert2) {
|
||||
Base::Console().Log("Error: DVD - %s - 2D references are corrupt\n",getNameInDocument());
|
||||
return App::DocumentObject::StdReturn;
|
||||
}
|
||||
|
||||
anglePoints pts;
|
||||
Base::Vector3d apex = vert1->getAs3D();
|
||||
Base::Vector3d extPoint0 = vert0->getAs3D();
|
||||
Base::Vector3d extPoint2 = vert2->getAs3D();
|
||||
pts.ends.first = extPoint0;
|
||||
pts.ends.second = extPoint2;
|
||||
pts.vertex = apex;
|
||||
m_anglePoints = pts;
|
||||
m_hasGeometry = true;
|
||||
}
|
||||
|
||||
//TODO: if MeasureType = Projected and the Projected shape changes, the Dimension may become invalid (see tilted Cube example)
|
||||
@@ -559,6 +587,14 @@ double DrawViewDimension::getDimValue()
|
||||
Base::Vector3d leg1 = pts.ends.second - vertex;
|
||||
double legAngle = leg0.GetAngle(leg1) * 180.0 / M_PI;
|
||||
result = legAngle;
|
||||
|
||||
} else if(Type.isValue("Angle3Pt")){ //same as case "Angle"?
|
||||
anglePoints pts = m_anglePoints;
|
||||
Base::Vector3d vertex = pts.vertex;
|
||||
Base::Vector3d leg0 = pts.ends.first - vertex;
|
||||
Base::Vector3d leg1 = pts.ends.second - vertex;
|
||||
double legAngle = leg0.GetAngle(leg1) * 180.0 / M_PI;
|
||||
result = legAngle;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
@@ -662,6 +698,8 @@ int DrawViewDimension::getRefType() const
|
||||
refType = getRefType1(subElements[0]);
|
||||
} else if (subElements.size() == 2) {
|
||||
refType = getRefType2(subElements[0],subElements[1]);
|
||||
} else if (subElements.size() == 3) {
|
||||
refType = getRefType3(subElements[0],subElements[1],subElements[2]);
|
||||
}
|
||||
return refType;
|
||||
}
|
||||
@@ -697,6 +735,21 @@ int DrawViewDimension::getRefType2(const std::string g1, const std::string g2)
|
||||
return refType;
|
||||
}
|
||||
|
||||
int DrawViewDimension::getRefType3(const std::string g1,
|
||||
const std::string g2,
|
||||
const std::string g3)
|
||||
{
|
||||
int refType = invalidRef;
|
||||
if ((DrawUtil::getGeomTypeFromName(g1) == "Vertex") &&
|
||||
(DrawUtil::getGeomTypeFromName(g2) == "Vertex") &&
|
||||
(DrawUtil::getGeomTypeFromName(g3) == "Vertex") ) {
|
||||
refType = threeVertex;
|
||||
}
|
||||
|
||||
return refType;
|
||||
}
|
||||
|
||||
|
||||
//! validate 2D references - only checks if they exist, not if they are the right type
|
||||
bool DrawViewDimension::checkReferences2D() const
|
||||
{
|
||||
|
||||
@@ -126,6 +126,9 @@ public:
|
||||
virtual QRectF getRect() const { return QRectF(0,0,1,1);} //pretend dimensions always fit!
|
||||
static int getRefType1(const std::string s);
|
||||
static int getRefType2(const std::string s1, const std::string s2);
|
||||
static int getRefType3(const std::string g1,
|
||||
const std::string g2,
|
||||
const std::string g3);
|
||||
int getRefType() const; //Vertex-Vertex, Edge, Edge-Edge
|
||||
void setAll3DMeasurement();
|
||||
void clear3DMeasurements(void);
|
||||
|
||||
@@ -78,7 +78,8 @@ enum EdgeType{
|
||||
isEllipse,
|
||||
isBSplineCircle,
|
||||
isBSpline,
|
||||
isAngle
|
||||
isAngle,
|
||||
isAngle3Pt
|
||||
};
|
||||
|
||||
|
||||
@@ -92,7 +93,7 @@ bool _checkSelection(Gui::Command* cmd, unsigned maxObjs = 2);
|
||||
bool _checkDrawViewPart(Gui::Command* cmd);
|
||||
bool _checkPartFeature(Gui::Command* cmd);
|
||||
int _isValidSingleEdge(Gui::Command* cmd);
|
||||
bool _isValidVertexes(Gui::Command* cmd);
|
||||
bool _isValidVertexes(Gui::Command* cmd, int count = 2);
|
||||
int _isValidEdgeToEdge(Gui::Command* cmd);
|
||||
bool _isValidVertexToEdge(Gui::Command* cmd);
|
||||
char* _edgeTypeToText(int e);
|
||||
@@ -856,6 +857,96 @@ bool CmdTechDrawNewAngleDimension::isActive(void)
|
||||
return (havePage && haveView);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// TechDraw_NewAngle3PtDimension
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdTechDrawNewAngle3PtDimension);
|
||||
|
||||
CmdTechDrawNewAngle3PtDimension::CmdTechDrawNewAngle3PtDimension()
|
||||
: Command("TechDraw_NewAngle3PtDimension")
|
||||
{
|
||||
sAppModule = "TechDraw";
|
||||
sGroup = QT_TR_NOOP("TechDraw");
|
||||
sMenuText = QT_TR_NOOP("Insert a new 3 point Angle dimension");
|
||||
sToolTipText = QT_TR_NOOP("Insert a new 3 point Angle dimension");
|
||||
sWhatsThis = "TechDraw_Dimension_Angle3Pt";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "TechDraw_Dimension_Angle3Pt";
|
||||
}
|
||||
|
||||
void CmdTechDrawNewAngle3PtDimension::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
bool result = _checkSelection(this,3);
|
||||
if (!result)
|
||||
return;
|
||||
result = _checkDrawViewPart(this);
|
||||
if (!result)
|
||||
return;
|
||||
|
||||
std::vector<Gui::SelectionObject> selection = getSelection().getSelectionEx();
|
||||
TechDraw::DrawViewPart * objFeat = 0;
|
||||
std::vector<std::string> SubNames;
|
||||
|
||||
std::vector<Gui::SelectionObject>::iterator itSel = selection.begin();
|
||||
for (; itSel != selection.end(); itSel++) {
|
||||
if ((*itSel).getObject()->isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
|
||||
objFeat = static_cast<TechDraw::DrawViewPart*> ((*itSel).getObject());
|
||||
SubNames = (*itSel).getSubNames();
|
||||
}
|
||||
}
|
||||
TechDraw::DrawPage* page = objFeat->findParentPage();
|
||||
std::string PageName = page->getNameInDocument();
|
||||
|
||||
TechDraw::DrawViewDimension *dim = 0;
|
||||
std::string FeatName = getUniqueObjectName("Dimension");
|
||||
|
||||
std::vector<App::DocumentObject *> objs;
|
||||
std::vector<std::string> subs;
|
||||
|
||||
if (_isValidVertexes(this, 3)) {
|
||||
objs.push_back(objFeat);
|
||||
objs.push_back(objFeat);
|
||||
objs.push_back(objFeat);
|
||||
subs.push_back(SubNames[0]);
|
||||
subs.push_back(SubNames[1]);
|
||||
subs.push_back(SubNames[2]);
|
||||
} else {
|
||||
QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Incorrect Selection"),
|
||||
QObject::tr("Need three points to make an 3 point Angle Dimension"));
|
||||
return;
|
||||
}
|
||||
|
||||
openCommand("Create Dimension");
|
||||
doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawViewDimension','%s')",FeatName.c_str());
|
||||
doCommand(Doc,"App.activeDocument().%s.Type = '%s'",FeatName.c_str()
|
||||
,"Angle3Pt");
|
||||
|
||||
dim = dynamic_cast<TechDraw::DrawViewDimension *>(getDocument()->getObject(FeatName.c_str()));
|
||||
if (!dim) {
|
||||
throw Base::Exception("CmdTechDrawNewAngle3PtDimension - dim not found\n");
|
||||
}
|
||||
dim->References2D.setValues(objs, subs);
|
||||
|
||||
doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str());
|
||||
|
||||
commitCommand();
|
||||
dim->recomputeFeature();
|
||||
|
||||
//Horrible hack to force Tree update
|
||||
double x = objFeat->X.getValue();
|
||||
objFeat->X.setValue(x);
|
||||
}
|
||||
|
||||
bool CmdTechDrawNewAngle3PtDimension::isActive(void)
|
||||
{
|
||||
bool havePage = DrawGuiUtil::needPage(this);
|
||||
bool haveView = DrawGuiUtil::needView(this);
|
||||
return (havePage && haveView);
|
||||
}
|
||||
|
||||
|
||||
//! link 3D geometry to Dimension(s) on a Page
|
||||
//TODO: should we present all potential Dimensions from all Pages?
|
||||
//===========================================================================
|
||||
@@ -948,6 +1039,7 @@ void CreateTechDrawCommandsDims(void)
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewDistanceXDimension());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewDistanceYDimension());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewAngleDimension());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawNewAngle3PtDimension());
|
||||
rcCmdMgr.addCommand(new CmdTechDrawLinkDimension());
|
||||
}
|
||||
|
||||
@@ -1063,17 +1155,22 @@ int _isValidSingleEdge(Gui::Command* cmd) {
|
||||
return edgeType;
|
||||
}
|
||||
|
||||
//! verify that Selection contains valid geometries for a Vertex to Vertex Dimension
|
||||
bool _isValidVertexes(Gui::Command* cmd) {
|
||||
//! verify that Selection contains valid geometries for a Vertex based Dimensions
|
||||
bool _isValidVertexes(Gui::Command* cmd, int count) {
|
||||
std::vector<Gui::SelectionObject> selection = cmd->getSelection().getSelectionEx();
|
||||
const std::vector<std::string> SubNames = selection[0].getSubNames();
|
||||
if(SubNames.size() == 2) { //there are 2
|
||||
if (TechDraw::DrawUtil::getGeomTypeFromName(SubNames[0]) == "Vertex" && //they both start with "Vertex"
|
||||
TechDraw::DrawUtil::getGeomTypeFromName(SubNames[1]) == "Vertex") {
|
||||
return true;
|
||||
bool isValid = true;
|
||||
if(SubNames.size() == (unsigned) count) {
|
||||
for (auto& s: SubNames) {
|
||||
if (TechDraw::DrawUtil::getGeomTypeFromName(s) != "Vertex") {
|
||||
isValid = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isValid = false;
|
||||
}
|
||||
return false;
|
||||
return isValid;
|
||||
}
|
||||
|
||||
//! verify that the Selection contains valid geometries for an Edge to Edge Dimension
|
||||
@@ -1198,6 +1295,9 @@ char* _edgeTypeToText(int e)
|
||||
case isAngle:
|
||||
result = "angle";
|
||||
break;
|
||||
case isAngle3Pt:
|
||||
result = "angle3";
|
||||
break;
|
||||
default:
|
||||
result = "unknown";
|
||||
}
|
||||
|
||||
@@ -235,6 +235,7 @@ void MDIViewPage::closeEvent(QCloseEvent* ev)
|
||||
if (!ev->isAccepted())
|
||||
return;
|
||||
detachSelection();
|
||||
|
||||
blockSelection(true);
|
||||
// when closing the view from GUI notify the view provider to mark it invisible
|
||||
if (_pcDocument && !m_objectName.empty()) {
|
||||
@@ -246,6 +247,7 @@ void MDIViewPage::closeEvent(QCloseEvent* ev)
|
||||
vp->hide();
|
||||
}
|
||||
}
|
||||
blockSelection(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -716,6 +718,8 @@ void MDIViewPage::print(QPrinter* printer)
|
||||
|
||||
// Reset
|
||||
m_view->toggleMarkers(true);
|
||||
//bool block =
|
||||
static_cast<void> (blockConnection(false));
|
||||
}
|
||||
|
||||
|
||||
@@ -904,7 +908,7 @@ void MDIViewPage::preSelectionChanged(const QPoint &pos)
|
||||
//flag to prevent selection activity within mdivp
|
||||
void MDIViewPage::blockSelection(const bool state)
|
||||
{
|
||||
isSelectionBlocked = state;
|
||||
isSelectionBlocked = state;
|
||||
}
|
||||
|
||||
|
||||
@@ -912,6 +916,8 @@ void MDIViewPage::blockSelection(const bool state)
|
||||
void MDIViewPage::clearSceneSelection()
|
||||
{
|
||||
blockSelection(true);
|
||||
m_sceneSelected.clear();
|
||||
|
||||
std::vector<QGIView *> views = m_view->getViews();
|
||||
|
||||
// Iterate through all views and unselect all
|
||||
@@ -970,17 +976,67 @@ void MDIViewPage::onSelectionChanged(const Gui::SelectionChanges& msg)
|
||||
}
|
||||
}
|
||||
|
||||
//! maintain QGScene selected items in selection order
|
||||
void MDIViewPage::sceneSelectionManager()
|
||||
{
|
||||
QList<QGraphicsItem*> sceneSel = m_view->scene()->selectedItems();
|
||||
|
||||
if (sceneSel.isEmpty()) {
|
||||
m_sceneSelected.clear(); //TODO: need to signal somebody? Tree? handled elsewhere
|
||||
//clearSelection
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_sceneSelected.isEmpty() &&
|
||||
!sceneSel.isEmpty()) {
|
||||
m_sceneSelected.push_back(sceneSel.front());
|
||||
return;
|
||||
}
|
||||
|
||||
//add to m_sceneSelected anything that is in q_sceneSel
|
||||
for (auto qts: sceneSel) {
|
||||
bool found = false;
|
||||
for (auto ms: m_sceneSelected) {
|
||||
if ( qts == ms ) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
m_sceneSelected.push_back(qts);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//remove items from m_sceneSelected that are not in q_sceneSel
|
||||
QList<QGraphicsItem*> m_new;
|
||||
for (auto m: m_sceneSelected) {
|
||||
for (auto q: sceneSel) {
|
||||
if (m == q) {
|
||||
m_new.push_back(m);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
m_sceneSelected = m_new;
|
||||
}
|
||||
|
||||
//! update Tree Selection from QGraphicsScene selection
|
||||
//triggered by m_view->scene() signal
|
||||
void MDIViewPage::sceneSelectionChanged()
|
||||
{
|
||||
sceneSelectionManager();
|
||||
|
||||
QList<QGraphicsItem*> dbsceneSel = m_view->scene()->selectedItems();
|
||||
|
||||
if(isSelectionBlocked) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<Gui::SelectionObject> treeSel = Gui::Selection().getSelectionEx();
|
||||
QList<QGraphicsItem*> sceneSel = m_view->scene()->selectedItems();
|
||||
|
||||
// QList<QGraphicsItem*> sceneSel = m_view->scene()->selectedItems();
|
||||
QList<QGraphicsItem*> sceneSel = m_sceneSelected;
|
||||
|
||||
//check if really need to change selection
|
||||
bool sameSel = compareSelections(treeSel,sceneSel);
|
||||
if (sameSel) {
|
||||
@@ -990,12 +1046,14 @@ void MDIViewPage::sceneSelectionChanged()
|
||||
setTreeToSceneSelect();
|
||||
}
|
||||
|
||||
//Note: no guarantee of selection order???
|
||||
void MDIViewPage::setTreeToSceneSelect(void)
|
||||
{
|
||||
bool saveBlock = blockConnection(true); // block selectionChanged signal from Tree/Observer
|
||||
blockSelection(true);
|
||||
Gui::Selection().clearSelection();
|
||||
QList<QGraphicsItem*> sceneSel = m_view->scene()->selectedItems();
|
||||
// QList<QGraphicsItem*> sceneSel = m_view->scene()->selectedItems(); //"no particular order"!!!
|
||||
QList<QGraphicsItem*> sceneSel = m_sceneSelected;
|
||||
for (QList<QGraphicsItem*>::iterator it = sceneSel.begin(); it != sceneSel.end(); ++it) {
|
||||
QGIView *itemView = dynamic_cast<QGIView *>(*it);
|
||||
if(itemView == 0) {
|
||||
@@ -1037,6 +1095,7 @@ void MDIViewPage::setTreeToSceneSelect(void)
|
||||
|
||||
std::stringstream ss;
|
||||
ss << "Vertex" << vert->getProjIndex();
|
||||
ss.str().c_str();
|
||||
//bool accepted =
|
||||
static_cast<void> (Gui::Selection().addSelection(viewObj->getDocument()->getName(),
|
||||
viewObj->getNameInDocument(),
|
||||
@@ -1113,7 +1172,7 @@ void MDIViewPage::setTreeToSceneSelect(void)
|
||||
blockConnection(saveBlock);
|
||||
}
|
||||
|
||||
bool MDIViewPage::compareSelections(std::vector<Gui::SelectionObject>& treeSel,QList<QGraphicsItem*>& sceneSel)
|
||||
bool MDIViewPage::compareSelections(std::vector<Gui::SelectionObject> treeSel, QList<QGraphicsItem*> sceneSel)
|
||||
{
|
||||
bool result = true;
|
||||
|
||||
@@ -1132,7 +1191,7 @@ bool MDIViewPage::compareSelections(std::vector<Gui::SelectionObject>& treeSel,Q
|
||||
std::vector<std::string> treeNames;
|
||||
std::vector<std::string> sceneNames;
|
||||
|
||||
for (auto& tn: treeSel) {
|
||||
for (auto tn: treeSel) {
|
||||
if (tn.getObject()->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) {
|
||||
int treeSubs = tn.getSubNames().size();
|
||||
subCount += treeSubs;
|
||||
@@ -1143,8 +1202,8 @@ bool MDIViewPage::compareSelections(std::vector<Gui::SelectionObject>& treeSel,Q
|
||||
std::sort(treeNames.begin(),treeNames.end());
|
||||
treeCount = treeNames.size();
|
||||
|
||||
for (auto& sn:sceneSel){
|
||||
QGIView *itemView = dynamic_cast<QGIView *>(sn);
|
||||
for (auto sn:sceneSel){
|
||||
QGIView *itemView = dynamic_cast<QGIView *>(sn); //<<<<<
|
||||
if(itemView == 0) {
|
||||
QGIPrimPath* pp = dynamic_cast<QGIPrimPath*>(sn); //count Vertex/Edge/Face
|
||||
if (pp != nullptr) {
|
||||
|
||||
@@ -124,8 +124,10 @@ protected:
|
||||
typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
|
||||
Connection connectDeletedObject;
|
||||
|
||||
bool compareSelections(std::vector<Gui::SelectionObject>& treeSel,QList<QGraphicsItem*>& sceneSel);
|
||||
bool compareSelections(std::vector<Gui::SelectionObject> treeSel,QList<QGraphicsItem*> sceneSel);
|
||||
void setTreeToSceneSelect(void);
|
||||
void sceneSelectionManager(void);
|
||||
|
||||
|
||||
private:
|
||||
QAction *m_nativeAction;
|
||||
@@ -146,6 +148,7 @@ private:
|
||||
|
||||
bool m_frameState;
|
||||
|
||||
QList<QGraphicsItem*> m_sceneSelected;
|
||||
QList<QGIView *> deleteItems;
|
||||
};
|
||||
|
||||
|
||||
@@ -1164,7 +1164,8 @@ void QGIViewDimension::draw()
|
||||
// centerMark->show();
|
||||
// dim->getViewPart()->addVertex(curveCenter,true);
|
||||
// }
|
||||
} else if(strcmp(dimType, "Angle") == 0) {
|
||||
} else if( (strcmp(dimType, "Angle") == 0) ||
|
||||
(strcmp(dimType, "Angel3Pt")) ) {
|
||||
// Only use two straight line edeges for angle
|
||||
anglePoints pts = dim->getAnglePoints();
|
||||
Base::Vector3d X(1.0,0.0,0.0);
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<file>icons/TechDraw_ProjTop.svg</file>
|
||||
<file>icons/TechDraw_Dimension.svg</file>
|
||||
<file>icons/TechDraw_Dimension_Angle.svg</file>
|
||||
<file>icons/TechDraw_Dimension_Angle3Pt.svg</file>
|
||||
<file>icons/TechDraw_Dimension_Diameter.svg</file>
|
||||
<file>icons/TechDraw_Dimension_Horizontal.svg</file>
|
||||
<file>icons/TechDraw_Dimension_Length.svg</file>
|
||||
|
||||
@@ -0,0 +1,468 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg5821"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.3 (unknown)"
|
||||
sodipodi:docname="TechDraw_Dimension_Angle3Pt.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1"
|
||||
inkscape:export-filename="/media/data/Yorik/FreeCAD/icons/Sketcher.png"
|
||||
inkscape:export-xdpi="45"
|
||||
inkscape:export-ydpi="45">
|
||||
<defs
|
||||
id="defs5823">
|
||||
<linearGradient
|
||||
id="linearGradient3036"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop3038"
|
||||
offset="0"
|
||||
style="stop-color:#c4a000;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop3040"
|
||||
offset="1"
|
||||
style="stop-color:#fce94f;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3024"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop3026"
|
||||
offset="0"
|
||||
style="stop-color:#c4a000;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop3028"
|
||||
offset="1"
|
||||
style="stop-color:#fce94f;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3905">
|
||||
<stop
|
||||
style="stop-color:#d3d7cf;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3907" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3909" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient6349">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6351" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop6353" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377">
|
||||
<stop
|
||||
style="stop-color:#0019a3;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3379" />
|
||||
<stop
|
||||
style="stop-color:#0069ff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3381" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3377"
|
||||
id="linearGradient3383"
|
||||
x1="901.1875"
|
||||
y1="1190.875"
|
||||
x2="1267.9062"
|
||||
y2="1190.875"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1,0,0,1,2199.356,0)" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective5829" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6349"
|
||||
id="radialGradient6355"
|
||||
cx="1103.6399"
|
||||
cy="1424.4465"
|
||||
fx="1103.6399"
|
||||
fy="1424.4465"
|
||||
r="194.40614"
|
||||
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3893"
|
||||
id="linearGradient3899"
|
||||
x1="35"
|
||||
y1="50"
|
||||
x2="31"
|
||||
y2="16"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3893">
|
||||
<stop
|
||||
style="stop-color:#d3d7cf;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3895" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3897" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3024"
|
||||
id="linearGradient3033"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="rotate(-15.814554,94.318805,-165.39495)"
|
||||
x1="34.093586"
|
||||
y1="49.729877"
|
||||
x2="33.891697"
|
||||
y2="16.103697" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3905"
|
||||
id="linearGradient3911"
|
||||
x1="8.5"
|
||||
y1="48.5"
|
||||
x2="5.5"
|
||||
y2="39.5"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3036"
|
||||
id="linearGradient3919"
|
||||
x1="9"
|
||||
y1="50"
|
||||
x2="5"
|
||||
y2="38"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3905"
|
||||
id="linearGradient1033"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="8.5"
|
||||
y1="48.5"
|
||||
x2="5.5"
|
||||
y2="39.5" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3036"
|
||||
id="linearGradient1035"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="9"
|
||||
y1="50"
|
||||
x2="5"
|
||||
y2="38" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3905"
|
||||
id="linearGradient1037"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="8.5"
|
||||
y1="48.5"
|
||||
x2="5.5"
|
||||
y2="39.5" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3036"
|
||||
id="linearGradient1039"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="9"
|
||||
y1="50"
|
||||
x2="5"
|
||||
y2="38" />
|
||||
<inkscape:perspective
|
||||
id="perspective5829-0"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
sodipodi:type="inkscape:persp3d" />
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
|
||||
r="194.40614"
|
||||
fy="1424.4465"
|
||||
fx="1103.6399"
|
||||
cy="1424.4465"
|
||||
cx="1103.6399"
|
||||
id="radialGradient6355-9"
|
||||
xlink:href="#linearGradient6349"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="9"
|
||||
x2="28"
|
||||
y1="39"
|
||||
x1="19"
|
||||
id="linearGradient3927"
|
||||
xlink:href="#linearGradient3036"
|
||||
inkscape:collect="always"
|
||||
gradientTransform="translate(-104,-70)" />
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="40"
|
||||
x2="22"
|
||||
y1="53"
|
||||
x1="26"
|
||||
id="linearGradient3949"
|
||||
xlink:href="#linearGradient3036"
|
||||
inkscape:collect="always"
|
||||
gradientTransform="translate(-52,-35)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="6.1640625"
|
||||
inkscape:cx="20.369975"
|
||||
inkscape:cy="42.62064"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="716"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="26"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-global="false"
|
||||
inkscape:snap-bbox="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2993"
|
||||
empspacing="2"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata5826">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>[WandererFan]</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:title>TechDraw_Dimension_Angle</dc:title>
|
||||
<dc:date>2016-04-27</dc:date>
|
||||
<dc:relation>http://www.freecadweb.org/wiki/index.php?title=Artwork</dc:relation>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>FreeCAD</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:identifier>FreeCAD/src/Mod/TechDraw/Gui/Resources/icons/TechDraw_Dimension_Angle.svg</dc:identifier>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title>FreeCAD LGPL2+</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<cc:license
|
||||
rdf:resource="https://www.gnu.org/licenses/lgpl-3.0.en.html">https://www.gnu.org/copyleft/lesser.html</cc:license>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>[agryson] Alexander Gryson</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
id="g1271">
|
||||
<g
|
||||
style="opacity:0.5"
|
||||
transform="translate(50.675539,33.702155)"
|
||||
id="g1245">
|
||||
<path
|
||||
style="fill:none;stroke:#302b00;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -43,9 -3.040157,23.114211"
|
||||
id="path3039-7"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-19.979921"
|
||||
inkscape:transform-center-y="7.0571055" />
|
||||
<path
|
||||
style="fill:none;stroke:#302b00;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -43,9 24.465679,-34.60391"
|
||||
id="path3039-7-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-12.23284"
|
||||
inkscape:transform-center-y="-17.301955" />
|
||||
<path
|
||||
style="fill:none;stroke:url(#linearGradient3949);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -43,9 -3.040157,23.114211"
|
||||
id="path3039-7-0"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-19.979921"
|
||||
inkscape:transform-center-y="7.0571055" />
|
||||
<path
|
||||
style="fill:url(#linearGradient3927);fill-opacity:1;stroke:url(#linearGradient3927);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -43,9 24.465679,-34.60391"
|
||||
id="path3039-7-4-9"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-12.23284"
|
||||
inkscape:transform-center-y="-17.301955" />
|
||||
<path
|
||||
style="fill:none;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -43,8 -2.512907,22.276442"
|
||||
id="path3039-7-0-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-19.979921"
|
||||
inkscape:transform-center-y="7.0571055" />
|
||||
<path
|
||||
style="fill:none;stroke:#fce94f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -42,6 22.741893,-32.286786"
|
||||
id="path3039-7-4-9-8"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:transform-center-x="-12.23284"
|
||||
inkscape:transform-center-y="-17.301955" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(0,-0.57357204)"
|
||||
id="g1019">
|
||||
<circle
|
||||
r="6"
|
||||
cy="44"
|
||||
cx="7"
|
||||
style="fill:url(#linearGradient3911);fill-opacity:1;stroke:#302b00;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path3037"
|
||||
transform="matrix(1.3333333,0,0,1.3333331,1.6666669,-14.666655)" />
|
||||
<circle
|
||||
r="6"
|
||||
cy="44"
|
||||
cx="7"
|
||||
style="fill:url(#linearGradient3919);fill-opacity:1;stroke:#fce94f;stroke-width:1.99999964;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path3037-8"
|
||||
transform="translate(4)" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(35.225475,8.9083601)"
|
||||
id="g1025">
|
||||
<circle
|
||||
r="6"
|
||||
cy="44"
|
||||
cx="7"
|
||||
transform="matrix(1.3333333,0,0,1.3333331,1.6666669,-14.666655)"
|
||||
id="path1021"
|
||||
style="fill:url(#linearGradient1037);fill-opacity:1;stroke:#302b00;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<circle
|
||||
r="6"
|
||||
cy="44"
|
||||
cx="7"
|
||||
transform="translate(4)"
|
||||
id="path1023"
|
||||
style="fill:url(#linearGradient1039);fill-opacity:1;stroke:#fce94f;stroke-width:1.99999964;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(18.354306,-33.267178)"
|
||||
id="g1031">
|
||||
<circle
|
||||
r="6"
|
||||
cy="44"
|
||||
cx="7"
|
||||
style="fill:url(#linearGradient1033);fill-opacity:1;stroke:#302b00;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path1027"
|
||||
transform="matrix(1.3333333,0,0,1.3333331,1.6666669,-14.666655)" />
|
||||
<circle
|
||||
r="6"
|
||||
cy="44"
|
||||
cx="7"
|
||||
style="fill:url(#linearGradient1035);fill-opacity:1;stroke:#fce94f;stroke-width:1.99999964;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path1029"
|
||||
transform="translate(4)" />
|
||||
</g>
|
||||
<g
|
||||
style="stroke:#302b00"
|
||||
transform="matrix(1.0698613,0,0,0.99404165,-50.600755,-11.067264)"
|
||||
id="g3024">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3033);fill-opacity:1;fill-rule:nonzero;stroke:#302b00;stroke-width:1.9393847;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:accumulate"
|
||||
d="m 84.507061,34.690068 2.04692,-3.436585 C 92,34 97,43 91.825155,50.852457 l -3.607584,-1.727811 c 1.409829,4.001548 1.917761,7.571141 1.955751,9.806886 l 0.03799,2.235745 1.765803,-1.371839 c 1.765802,-1.371838 4.865454,-3.213621 8.866995,-4.62345 L 97.236531,53.444176 C 105,46 98,30 89.624358,26.098604 l 2.046919,-3.436586 c -4.112628,1.042249 -7.713527,1.225354 -9.94355,1.061041 l -2.230023,-0.164314 1.206563,1.882607 c 1.206564,1.882605 2.760544,5.136088 3.802794,9.248716 z"
|
||||
id="path3770-1"
|
||||
sodipodi:nodetypes="ccccccccccccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#fce94f;stroke-width:1.9393847;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 82.42256,26.464811 3.10796,6.506965"
|
||||
id="path3864"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#fce94f;stroke-width:1.9393847;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 91.228661,56.049545 90.744642,50.322929"
|
||||
id="path3864-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#fce94f;stroke-width:1.9393847;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 82.121673,26.608365 C 100,35 97.513308,48 91.936325,53.148856"
|
||||
id="path3866"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#fce94f;stroke-width:1.9393847;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 86.55398,31.253483 85,28"
|
||||
id="path3868"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#fce94f;stroke-width:1.9393847;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 94.626431,49.541142 90.166916,58.93721"
|
||||
id="path3868-8"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#302b00;stroke-width:1.9393847;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:accumulate"
|
||||
d="m 84.507061,34.690068 2.04692,-3.436585 C 92,34 97,43 91.825155,50.852457 l -3.607584,-1.727811 c 1.409829,4.001548 1.917761,7.571141 1.955751,9.806886 l 0.03799,2.235745 1.765803,-1.371839 c 1.765802,-1.371838 4.865454,-3.213621 8.866995,-4.62345 L 97.236531,53.444176 C 105,46 98,30 89.624358,26.098604 l 2.046919,-3.436586 c -4.112628,1.042249 -7.713527,1.225354 -9.94355,1.061041 l -2.230023,-0.164314 1.206563,1.882607 c 1.206564,1.882605 2.760544,5.136088 3.802794,9.248716 z"
|
||||
id="path3770-9"
|
||||
sodipodi:nodetypes="ccccccccccccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
@@ -76,6 +76,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
|
||||
*draw << "TechDraw_NewRadiusDimension";
|
||||
*draw << "TechDraw_NewDiameterDimension";
|
||||
*draw << "TechDraw_NewAngleDimension";
|
||||
*draw << "TechDraw_NewAngle3PtDimension";
|
||||
*draw << "TechDraw_LinkDimension";
|
||||
*draw << "Separator";
|
||||
*draw << "TechDraw_ExportPage";
|
||||
@@ -125,6 +126,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
|
||||
*dims << "TechDraw_NewRadiusDimension";
|
||||
*dims << "TechDraw_NewDiameterDimension";
|
||||
*dims << "TechDraw_NewAngleDimension";
|
||||
*dims << "TechDraw_NewAngle3PtDimension";
|
||||
*dims << "TechDraw_LinkDimension";
|
||||
// *dims << "TechDraw_NewDimension"
|
||||
|
||||
@@ -177,6 +179,7 @@ Gui::ToolBarItem* Workbench::setupCommandBars() const
|
||||
*dims << "TechDraw_NewRadiusDimension";
|
||||
*dims << "TechDraw_NewDiameterDimension";
|
||||
*dims << "TechDraw_NewAngleDimension";
|
||||
*dims << "TechDraw_NewAngle3PtDimension";
|
||||
*dims << "TechDraw_LinkDimension";
|
||||
// *dims << "TechDraw_NewDimension";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user