Archived issue #0029860
Modeling Algorithms - BOPAlgo_BuilderFace cannot build new faces correctly
Description
BOPAlgo_BuilderFace cannot build new faces correctly. The source face contains cone with degenerated edge.
Steps to reproduce
restore Attachment 1 (BREP) cfe
bopbf f cfe
# 2 faces were built ==> WRONG (must be 3 faces)
bopbf f cfe
# 2 faces were built ==> WRONG (must be 3 faces)
Public activity
3 archived notes
Participants are labeled by their role within this record.
The fix for the issue #0029421 creates three faces (as it is needed). However, the face f_3 is invalid in terms of BRepCheck.
I have attached it in the file Attachment 2 (BIN) (is opened by "binrestore" DRAW-command).
Please note, that visually this face seems to be OK. So, maybe here BRepCheck algorithm works wrongly. It should be analyzed.
Faulty status is returned by BRepCheck_Wire::Closed2d() method. It uses BRepTools_WireExplorer algorithm, which finds only one edge in the wire (in spite of wire's containing 4 edges).
Please note, if we use BRepTools_WireExplorer only for 3D-space then it works correctly:
I have attached it in the file Attachment 2 (BIN) (is opened by "binrestore" DRAW-command).
Please note, that visually this face seems to be OK. So, maybe here BRepCheck algorithm works wrongly. It should be analyzed.
Faulty status is returned by BRepCheck_Wire::Closed2d() method. It uses BRepTools_WireExplorer algorithm, which finds only one edge in the wire (in spite of wire's containing 4 edges).
binrestore Attachment 2 (BIN) ff explode ff w wexplo ff_1 ff puts [llength [directory WEDGE_*]] # 1 but must be 4
Please note, if we use BRepTools_WireExplorer only for 3D-space then it works correctly:
binrestore Attachment 2 (BIN) ff explode ff w wexplo ff_1 puts [llength [directory WEDGE_*]] # 4 ==> OK
As result, the tests "bugs modalg_7 bug29807_b5a" and "bugs modalg_7 bug29807_b4a" changes self behavior. The number of entities has become as expected but
finds faulty entities.
checkshape result
finds faulty entities.
Please note that the degenerated edge is not trimmed by the intersection point with another edge. See Attachment 3 (PNG) attached picture, where p-curve of Attachment 2 (BIN) is shown.
I think, it is a problem of Boolean operation in "bugs modalg_7 bug29807_b5a" and "bugs modalg_7 bug29807_b4a" test cases.
I think, it is a problem of Boolean operation in "bugs modalg_7 bug29807_b5a" and "bugs modalg_7 bug29807_b4a" test cases.
Related records
- #0029807 · related to · closed[Regression to 7.0.0] Impossible to cut cone from prism
- #0029883 · parent of · assignedBoolean operation with prism and cone produces invalid result when tolerance of vertex in cone apex is too big
- #0029421 · related to · feedbackMake face classifier algorithm stable and robust
- #0029922 · related to · newBoolean operation with conical argument loses degenerated edge