libsrc/core/version.hpp | 7 ++-
+ libsrc/meshing/basegeom.cpp | 3 +-
libsrc/meshing/meshclass.cpp | 6 +-
libsrc/occ/occgenmesh.cpp | 17 +++---
libsrc/occ/occmeshsurf.cpp | 128 +++++++++++++----------------------------
libsrc/stlgeom/stlgeom.hpp | 2 +-
libsrc/stlgeom/stltopology.hpp | 2 +-
nglib/nglib.cpp | 2 +-
- 7 files changed, 62 insertions(+), 102 deletions(-)
+ 8 files changed, 64 insertions(+), 103 deletions(-)
diff --git a/libsrc/core/version.hpp b/libsrc/core/version.hpp
index 3048ce5b..81524b58 100644
if(dot == size_t(-1)) vstring = "";
else vstring = vstring.substr(dot+1, vstring.size()-dot-1);
if(!vstring.empty())
+diff --git a/libsrc/meshing/basegeom.cpp b/libsrc/meshing/basegeom.cpp
+index cb5b8407..2c066038 100644
+--- a/libsrc/meshing/basegeom.cpp
++++ b/libsrc/meshing/basegeom.cpp
+@@ -498,7 +498,8 @@ namespace netgen
+ for(auto i : Range(divide_edge_sections))
+ {
+ auto pt = edge->GetPoint(double(i+1)/divide_edge_sections);
+- hvalue[i+1] = hvalue[i] + 1./mesh.GetH(pt, layer) * (pt-old_pt).Length();
++ // !!! no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS
++ hvalue[i+1] = hvalue[i] + min(1., 1./mesh.GetH(pt, layer) * (pt-old_pt).Length());
+ old_pt = pt;
+ }
+ int nsubedges = max2(1, int(floor(hvalue[divide_edge_sections]+0.5)));
diff --git a/libsrc/meshing/meshclass.cpp b/libsrc/meshing/meshclass.cpp
index c89064cb..a23b8889 100644
--- a/libsrc/meshing/meshclass.cpp