View Issue Details

IDProjectCategoryView StatusLast Update
0028674Open CASCADEOCCT:Modeling Algorithmspublic2023-08-01 15:08
ReporternbvAssigned Tonbv 
PrioritynormalSeverityminor 
Status assignedResolutionopen 
PlatformWinOSVS 12 (2013) 
Product Version7.1.0 
Target VersionUnscheduled 
Summary0028674: BRepTools_WireExplorer works unstable and does not return several edges
DescriptionSource face contains 14 edges (please check by "nbshapes ff").

However, script (see Steps To Reproduce) returns 3 edges or 11 edges from time to time.

Additionally, Please pay attention to the message 0028211:0071726. There, BRepTools_WireExplorer works stable but after the fix, test bugs moddata_1 bug22761 will change its behavior

--
P.S.

This bug results in unstable work of test case "bugs moddata_2 bug22746_3" after integration the fix for issue #28211.
Steps To ReproduceFace is obtained from the test case "bugs moddata_2 bug22746_3"

binrestore d:/ff.brep ff

explode ff w

nbshapes ff_1 -t
# VERTEX : 16; EDGE : 14

wexplo ff_1 f

set n [llength [directory WEDGE_*]]

puts "$n edge(s) found"

#########################################################

Another script: See message 0028211:0071639.
TagsNo tags attached.
Test case number

Attached Files

  • ff.brep (48,993 bytes)
  • bad_wire.PNG (12,636 bytes)

Relationships

related to 0021968 assignedmsv Open CASCADE BRepTools_WireExplorer gives different number of edges in dependance of order of edges in wire. 
related to 0029121 newgka Open CASCADE Iges-reader reads invalid shape 
related to 0008546 assignedmsv Open CASCADE The algorithm BRepTools_WireExplorer works wrong for the face attached 
child of 0029133 closedbugmaster Open CASCADE Unstable test cases 

Activities

nbv

2017-04-21 16:34

developer  

ff.brep (48,993 bytes)

msv

2017-04-21 17:47

developer   ~0065441

The script in steps to reproduce gives always 3 edges on OCCT built with VC12 and always 11 edges with VC10.

msv

2017-04-21 17:51

developer   ~0065442

It is needed to take into account that WireExplorer produces correct result (returns all edges in proper order) only for well-defined manifold wires. The wire in this face in unclosed and non-manifold. However, it is strange that it behaves differently on different platforms.

msv

2017-04-21 17:51

developer  

bad_wire.PNG (12,636 bytes)

msv

2017-04-21 18:09

developer   ~0065446

The wire has two disconnections. One is between edges 1 and 14, and another is between edges 11 and 12. Thus, there are two chains of connected edges. One chain consists of 3 edges, and another is of 11. So, it is needed to understand why the starting edge is different on various platforms.

msv

2017-04-21 18:43

developer   ~0065448

I was wrong saying "it gives always 3 edges on OCCT built with VC12 and always 11 edges with VC10".
It really returns 3 or 11 on the same platform from run to run.

The cause is iteration on a map with TopoDS_Shape key.

To solve this bug it is needed to revise the class BRepTools_WireExplorer to get rid of dependence on map iterations.

msv

2017-04-21 19:31

developer   ~0065449

Last edited: 2017-04-24 18:01

After discussion with ABV, we have elaborated the following vision on how this algorithm must work on bad cases.

1) If the wire is not manifold or contains more than one connected chain the algorithm must raise warning status, so that the calling algorithm was aware of the problem with this wire. Further iteration on such wire may return not all edges.

2) If initialized with a face it means the wire serves as the face boundary and must be topologically closed. In this case if the wire is open the algorithm must raise warning status.

E.g., if the wire explorer is called from the face classifier, and it raises the warning status the classifier must take decision that this wire cannot be used in classification, so any point must be classified as if there was no this wire in the face.

Issue History

Date Modified Username Field Change
2017-04-21 16:34 nbv New Issue
2017-04-21 16:34 nbv Assigned To => msv
2017-04-21 16:34 nbv File Added: ff.brep
2017-04-21 16:36 nbv OS => Win 10
2017-04-21 16:36 nbv Platform => x64
2017-04-21 16:36 nbv Product Version => 7.1.0
2017-04-21 16:36 nbv Steps to Reproduce Updated
2017-04-21 16:40 nbv Description Updated
2017-04-21 16:40 nbv Steps to Reproduce Updated
2017-04-21 16:43 nbv Summary BRepTools_WireExplorer works unstable and does not retur several edges => BRepTools_WireExplorer works unstable and does not return several edges
2017-04-21 16:43 nbv Steps to Reproduce Updated
2017-04-21 16:43 nbv Steps to Reproduce Updated
2017-04-21 17:08 nbv OS Win 10 => VS 12 (2013)
2017-04-21 17:08 nbv OS Version => Win64
2017-04-21 17:08 nbv Platform x64 => Win
2017-04-21 17:47 msv Note Added: 0065441
2017-04-21 17:51 msv Note Added: 0065442
2017-04-21 17:51 msv File Added: bad_wire.PNG
2017-04-21 18:09 msv Note Added: 0065446
2017-04-21 18:32 msv Steps to Reproduce Updated
2017-04-21 18:43 msv Note Added: 0065448
2017-04-21 19:31 msv Note Added: 0065449
2017-04-21 19:32 msv Assigned To msv => nbv
2017-04-21 19:32 msv Status new => assigned
2017-04-24 18:01 msv Note Edited: 0065449
2017-07-24 09:22 msv Target Version 7.2.0 => 7.3.0
2017-09-18 13:42 nbv Relationship added related to 0021968
2017-10-11 09:23 nbv Relationship added related to 0008546
2017-10-13 11:03 nbv Relationship added related to 0029121
2017-10-19 15:21 nbv Relationship added child of 0029133
2017-10-19 15:25 nbv Steps to Reproduce Updated
2017-11-07 10:48 nbv Description Updated
2017-12-05 17:08 msv Target Version 7.3.0 => 7.4.0
2019-08-12 16:37 msv Target Version 7.4.0 => 7.5.0
2020-09-14 22:56 msv Target Version 7.5.0 => 7.6.0
2021-08-29 18:53 msv Target Version 7.6.0 => 7.7.0
2022-10-24 10:42 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:08 dpasukhi Target Version 7.8.0 => Unscheduled