diff --git a/src/Mod/TechDraw/App/AppTechDrawPy.cpp b/src/Mod/TechDraw/App/AppTechDrawPy.cpp index 1f3a249366..69da4b3e2c 100644 --- a/src/Mod/TechDraw/App/AppTechDrawPy.cpp +++ b/src/Mod/TechDraw/App/AppTechDrawPy.cpp @@ -608,8 +608,19 @@ private: if (dvp == nullptr) { continue; } - double parentX = dvp->X.getValue(); - double parentY = dvp->Y.getValue(); + double grandParentX = 0.0; + double grandParentY = 0.0; + if (dvp->isDerivedFrom(TechDraw::DrawProjGroupItem::getClassTypeId())) { + TechDraw::DrawProjGroupItem* dpgi = static_cast(dvp); + TechDraw::DrawProjGroup* dpg = dpgi->getPGroup(); + if (dpg == nullptr) { + continue; + } + grandParentX = dpg->X.getValue(); + grandParentY = dpg->Y.getValue(); + } + double parentX = dvp->X.getValue() + grandParentX; + double parentY = dvp->Y.getValue() + grandParentY; Base::Vector3d parentPos(parentX,parentY,0.0); std::string sDimText = dvd->getFormatedValue(); char* dimText = &sDimText[0u]; //hack for const-ness