From dd7a8e88bad0d7b61573060e8cd5b7957a13f937 Mon Sep 17 00:00:00 2001 From: jfa Date: Thu, 21 May 2020 13:23:04 +0300 Subject: [PATCH] Fix for bos #19108: t_shape_builder --- src/GEOMImpl/GEOMImpl_Block6Explorer.cxx | 7 +++++++ src/Tools/t_shape/t_shape_builder.py | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx b/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx index f22287c64..5eae3592e 100644 --- a/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx +++ b/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx @@ -1352,6 +1352,13 @@ TCollection_AsciiString GEOMImpl_Block6Explorer::MakeAnyFace (const TopoDS_Wire& if (!ana.IsValid()) { TopoDS_Shape aFace2; ShHealOper_ShapeProcess aHealer; + + // bos #19108: T-Shape + // Default values for the next two parameters is 0.05, + // which is too large for some T-Shape cases + aHealer.SetParameter("FixFaceSize.Tolerance", 1e-05); + aHealer.SetParameter("DropSmallEdges.Tolerance3d", 1e-05); + aHealer.Perform(aFace1, aFace2); if (aHealer.isDone()) theResult = aFace2; diff --git a/src/Tools/t_shape/t_shape_builder.py b/src/Tools/t_shape/t_shape_builder.py index 6f961ec37..cd6c61166 100644 --- a/src/Tools/t_shape/t_shape_builder.py +++ b/src/Tools/t_shape/t_shape_builder.py @@ -65,7 +65,7 @@ def demidisk(r1, a1, roty=0, solid_thickness=0): arc1 = geompy.MakeArc(v[1], v7, v[3]) l[0] = geompy.MakeLineTwoPnt(v[1], v[3]) face1 = geompy.MakeFaceWires([arc1, l[0]], 1) - part1 = geompy.MakePartition([face1], [l[2], l[4], l[5], l[6], l[7]], [], [], geompy.ShapeType["FACE"], 0, [], 0, True) + part1 = geompy.MakePartition([face1], [l[2], l[4], l[5], l[6], l[7]], [], [], geompy.ShapeType["FACE"], 0, [], 0) if with_solid: # Add some faces corresponding to the solid layer outside @@ -191,7 +191,7 @@ def build_shape(r1, r2, h1, h2, solid_thickness=0, progressBar=None ): faces_coupe = faci[5:] if with_solid: faces_coupe = faci[5:]+faces_jonction_ext[:3] - base2 = geompy.MakePartition(faces_coupe, [], [], [], geompy.ShapeType["FACE"], 0, [], 0, True) + base2 = geompy.MakePartition(faces_coupe, [], [], [], geompy.ShapeType["FACE"], 0, [], 0) extru2 = geompy.MakePrismVecH(base2, OZ, h2) if progressBar is not None: @@ -223,7 +223,7 @@ def build_shape(r1, r2, h1, h2, solid_thickness=0, progressBar=None ): faces_coupe = faci[:5] if with_solid: faces_coupe.extend(faces_jonction_ext[-7:]) - raccord = geompy.MakePartition([garder], faces_coupe + [arcextru], [], [], geompy.ShapeType["SOLID"], 0, [], 0, True) + raccord = geompy.MakePartition([garder], faces_coupe + [arcextru], [], [], geompy.ShapeType["SOLID"], 0, [], 0) assemblage = geompy.MakeCompound([raccord, extru1, extru2]) assemblage = geompy.MakeGlueFaces(assemblage, 1e-7) @@ -325,7 +325,7 @@ def jonction(r1, r2, h1, h2, a1): plan = geompy.MakePlaneThreePnt(p0, p1, p2, 10000) #geompy.addToStudy(plan, "plan%d"%i) section = geompy.MakeSection(plan, arcextru, True) - secpart = geompy.MakePartition([section], [sect45, sect90], [], [], geompy.ShapeType["EDGE"], 0, [], 0, True) + secpart = geompy.MakePartition([section], [sect45, sect90], [], [], geompy.ShapeType["EDGE"], 0, [], 0) #geompy.addToStudy(secpart, "secpart%d"%i) lsec = geompy.ExtractShapes(secpart, geompy.ShapeType["EDGE"], True) -- 2.39.2