occt: master 8b1e055f
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
bugmaster | master | 2016-08-18 09:12:33 | master 87b48b40 | |
Changeset | 0027781: [Regression to 6.9.0] Exception in ShapeFix_Shape algorithm with option FixSmallAreaWireMode The matter was that during checking wires of a shape for small area, non-outer wires were checked with constructing a new face with BRepBuilderAPI_MakeFace. If a face has location an edge from original face has no pcurve on the constructed face, which leads to exception in BRepGProp::SurfaceProperties. The fix constructs new face using EmptyCopy. The method ShapeAnalysis_Wire::CheckSmallArea() has been changed so as to check area of the outer wire without hole-wires. API of this method has been changed, as the second argument theIsOuterWire is not needed any more. The test cases have been updated, below are explanations of changes: test de iges_2 G7 The fixed version leaves a wire in a face, but the master version considered it small and removed. The master version works wrong. It is because the face built with this wire has negative area, but the code in CheckSmallArea function does not get absolute value before comparing area with the tolerance. The left wire leads to splitting of the face on two, checkshape error in the face, and statshape faulty due to increased number of faces in the second pass. test de iges_2 G2 The fixed version leaves a wire that is removed in the master version. The cause is the same as in G7 test case. However, here the problematic wire has very big tolerance. So, when the fixed version left it in the shape, the overall maximal tolerance became much greater than in reference data. test de step_3 E6 In fixed version a really bad small wire is removed from the face, while in master version it is left and produces an error in checkshape report. So, it is an improvement. |
|||
mod - src/ShapeAnalysis/ShapeAnalysis_Wire.cxx | Diff File | |||
mod - src/ShapeAnalysis/ShapeAnalysis_Wire.hxx | Diff File | |||
mod - src/ShapeFix/ShapeFix_Face.cxx | Diff File | |||
add - tests/bugs/heal/bug27781 | Diff File | |||
mod - tests/de/iges_2/G2 | Diff File | |||
mod - tests/de/iges_2/G7 | Diff File | |||
mod - tests/de/step_3/E6 | Diff File |