diff --git a/src/Mod/TechDraw/App/DrawProjGroupItem.cpp b/src/Mod/TechDraw/App/DrawProjGroupItem.cpp index 7c35b4db0f..544d62c013 100644 --- a/src/Mod/TechDraw/App/DrawProjGroupItem.cpp +++ b/src/Mod/TechDraw/App/DrawProjGroupItem.cpp @@ -109,7 +109,10 @@ void DrawProjGroupItem::autoPosition() { auto pgroup = getPGroup(); Base::Vector3d newPos; - if ((pgroup != nullptr) && + if (isAnchor()) { + X.setValue(0.0); + Y.setValue(0.0); + } else if ((pgroup != nullptr) && (pgroup->AutoDistribute.getValue()) && (!LockPosition.getValue())) { newPos = pgroup->getXYPosition(Type.getValueAsString()); @@ -138,6 +141,20 @@ DrawProjGroup* DrawProjGroupItem::getPGroup() const } return result; } + +bool DrawProjGroupItem::isAnchor(void) +{ + bool result = false; + auto group = getPGroup(); + if (group != nullptr) { + DrawProjGroupItem* anchor = group->getAnchor(); + if (anchor == this) { + result = true; + } + } + return result; +} + gp_Ax2 DrawProjGroupItem::getViewAxis(const Base::Vector3d& pt, const Base::Vector3d& axis, const bool flip) const diff --git a/src/Mod/TechDraw/App/DrawProjGroupItem.h b/src/Mod/TechDraw/App/DrawProjGroupItem.h index 5102d8696d..c7a19ac8e5 100644 --- a/src/Mod/TechDraw/App/DrawProjGroupItem.h +++ b/src/Mod/TechDraw/App/DrawProjGroupItem.h @@ -78,6 +78,7 @@ public: virtual double getScale(void) const override; void autoPosition(void); + bool isAnchor(void); protected: