diff --git a/src/Mod/Fem/App/FemConstraint.cpp b/src/Mod/Fem/App/FemConstraint.cpp index d0b1a8b366..19e07ca102 100644 --- a/src/Mod/Fem/App/FemConstraint.cpp +++ b/src/Mod/Fem/App/FemConstraint.cpp @@ -436,7 +436,11 @@ bool Constraint::getPoints(std::vector& points, BRepGProp::LinearProperties(compCurve.Wire(), linProps); double outWireLength = linProps.Mass(); int stepWire = stepsu + stepsv; - ShapeAnalysis_Surface surfAnalysis(surface.Surface().Surface()); + // apply subshape transformation to the geometry + gp_Trsf faceTrans = face.Location().Transformation(); + Handle(Geom_Geometry) transGeo = + surface.Surface().Surface()->Transformed(faceTrans); + ShapeAnalysis_Surface surfAnalysis(Handle(Geom_Surface)::DownCast(transGeo)); for (int i = 0; i < stepWire; ++i) { gp_Pnt p = compCurve.Value(outWireLength * i / stepWire); gp_Pnt2d pUV = surfAnalysis.ValueOfUV(p, Precision::Confusion());