View Issue Details

IDProjectCategoryView StatusLast Update
0023119CommunityOCCT:Application Frameworkpublic2012-11-16 13:17
ReporterRoman Lygin Assigned Toszy 
PrioritynormalSeverityminor 
Status closedResolutionfixed 
PlatformAOSL 
Product Version6.5.2 
Target Version6.5.4Fixed in Version6.5.4 
Summary0023119: TNaming_Selector::Solve() fails (changes from single face to compound of multiple faces)
DescriptionThe bug has been originally reported on the forum by Valeriu Catina - http://www.opencascade.org/org/forum/thread_23075/?forum=3.
The below reproducer simplifies the defect appearance.

TNaming_Selector::Select() correctly computes the type as FACE. However consequent call to Solve() changes the type to COMPOUND (consisting of multiple faces, and hence invalid), and significantly changes the data stored on sub-labels. See attached screenshots.

Two versions of the reproducer are provided - one using DNaming_SelectionCommands.cxx and one using DNaming_SelectionDriver.

Reproduced on OCC 6.5.x.

Extra note: TNaming_Selector::Select() and ::Solve() creates various structures for faces fuse2_1 ... fuse2_24. Due to lack of documentation of conventions applied by Topology Naming algorithm it is impossible to conclude whether these structures are correct or not, and makes debugging and suggesting a patch virtually impossible.
Steps To Reproducesource naming_test.tcl.
TagsNo tags attached.
Test case numbercaf named_shape (002) F8 F9

Attached Files

  • naming_test.tcl (1,188 bytes)
  • naming_after_TNaming_Selector-Select()-ok.png (105,586 bytes)
  • naming_after_TNaming_Selector-Solve()-fail.png (104,702 bytes)
  • OCC_NamingTest.rar (13,009 bytes)
  • naming_test2.tcl (1,352 bytes)
  • 23119.7z (40,292 bytes)

Activities

Roman Lygin

2012-04-22 18:10

developer  

naming_test.tcl (1,188 bytes)

Roman Lygin

2012-04-22 18:17

developer  

naming_after_TNaming_Selector-Select()-ok.png (105,586 bytes)

Roman Lygin

2012-04-22 18:17

developer  

naming_after_TNaming_Selector-Solve()-fail.png (104,702 bytes)

szy

2012-08-10 18:01

manager   ~0021231

The bug reported by Valeriu Catina is not linked with the reported one.
It concerns incorrect Naming when created shape has not Identity Location.
We have accepted this bug. It is pity that Valeriu still didn't register it in Mantis.
Concerning the current issue. For the moment it is not possible to say is it a bug or not because the attached script is not valid. It uses mixture of not compatible commands. Unfortunately Naming testing framework is still not completed. It has some intermediate state. As result it is not documented. Sorry for this. I do hope we will try to fix it till the end of the year.
I suggest you to use commands defined in DNaming_ModelingCommands.cxx file.
Used by you commands SelectGeometry and SolveSelection are obsolete and should be redesigned. I do hope we will do it in the next release.
Also I will try to find example of correct script to be used for testing temporary.

vcat

2012-08-24 17:02

reporter   ~0021333

Hello,
I attached a C++ coded reproducer of the present bug. The bug reported by me (Valeriu Catina) on the forum is actually identical to the present one. It shows no matter if the created shape has a identity location or not. I rechecked and therefore, the report on the forum appears to be erroneous regarding the location. All other statements seem to be correct.

I hope this clarification and the attached C++ reproducer will help out with the debugging.

Regards,

Valeriu Catina

vcat

2012-08-24 17:02

reporter  

OCC_NamingTest.rar (13,009 bytes)

szy

2012-08-31 18:14

manager   ~0021377

Last edited: 2012-08-31 18:16

The issue presented in the script in 'naming_test.tcl' should be separated to several sub-problems:
1) Bugs in Draw commands (DNaming package)
2) Incorrect using of existing Draw commands
3) Naming bugs

1. Impacted commands (SelectShape & SolveSelection) from DNaming_Selection.cxx were fixed (Branch CR23119 is created). Now as SelectShape as SelectGeometry commands can be used.

2. The script is redesigned and attached for information. It provides working example of consistent using of different groups of DNaming commands.

3. The naming bug (selected Face after re-computation becomes Compound).
  This testing case (presented in the script-reproducer) can be considered as the Algorithm limitation. The solver can't distinguish the expected face from other in Compound because to much participating in re-computation shapes have modification 1 : N. Attempt to filter it by neighbors also gives compound of three faces which all satisfy filter criteria. New script 'naming_test2.tcl' should be used for correct case reproducing.

szy

2012-08-31 18:17

manager  

naming_test2.tcl (1,352 bytes)

szy

2012-09-05 17:48

manager   ~0021415

Review it, please.

vro

2012-09-06 08:20

developer   ~0021417

Done!

szy

2012-09-12 14:37

manager   ~0021464

Hello Valeriu,
After the provided sample analysis I can make conclusion that your testing case can be considered as the Algorithm limitation too. The solver can't distinguish the expected face from other in Compound because many shapes in the testing case have modification 1 : 2. Attempt to filter it by neighbors also gives compound of 2 faces which all satisfy the filter criteria. See also several pictures (23119.7z) illustrating the conclusion for the case when the face 'F1_selection.png' (modified from F1.png - bottom face of the box B2) was selected, where:
'F1_selection.png' - the face which was selected;
'F1.png' - the initial face from which the selected face was modified;
'F1_mod.png' - result of initial face F1 modification => 2 faces (F1 modified to two presented faces. As result solver can't distinguish them and try to apply filter by neighbors);
'F1_sel_by_nbs.PNG' - result of 'filter' work. It is also two faces. As result solver creates Compound.

szy

2012-09-12 14:38

manager  

23119.7z (40,292 bytes)

szy

2012-09-13 14:24

manager   ~0021476

For testing purpose the new scripts F8 & F9 from branch CR23119 should be used.

mkv

2012-09-13 14:56

tester   ~0021478

Dear BugMaster,
Branch CR23119 (and products from GIT master) was compiled on Linux and Windows platforms and tested.

Regression:
Not detected

Improvements:
Not detected

Testing case:
caf named_shape (002) F8 - OK
caf named_shape (002) F9 - OK

Related Changesets

occt: master efd4b232

2012-09-14 13:18:59

szy

Details Diff
0023119: TNaming_Selector::Solve() fails (changes from single face to compound of multiple faces)
Patch for Naming improvement.

1). Added persistence.
2). Removed not supported evolution - Replace.

Fix of QADraw commands.
Modified test case: caf named_shape F6

1). Redesigned DNaming commands: SelectShape & SolveSelection
2). Added 2 new scripts: F8 & F9

Adding test cases caf/named_shape/F8 F9
Affected Issues
0023119
mod - src/DNaming/DNaming_SelectionCommands.cxx Diff File
mod - src/TNaming/TNaming_Name.cxx Diff File
mod - src/TNaming/TNaming_Naming.cxx Diff File
mod - tests/caf/named_shape/E1 Diff File
mod - tests/caf/named_shape/E2 Diff File
mod - tests/caf/named_shape/E3 Diff File
mod - tests/caf/named_shape/E4 Diff File
mod - tests/caf/named_shape/E5 Diff File
mod - tests/caf/named_shape/E6 Diff File
mod - tests/caf/named_shape/E7 Diff File
mod - tests/caf/named_shape/E8 Diff File
mod - tests/caf/named_shape/E9 Diff File
mod - tests/caf/named_shape/F1 Diff File
mod - tests/caf/named_shape/F2 Diff File
mod - tests/caf/named_shape/F3 Diff File
mod - tests/caf/named_shape/F4 Diff File
mod - tests/caf/named_shape/F5 Diff File
mod - tests/caf/named_shape/F6 Diff File
mod - tests/caf/named_shape/F7 Diff File
add - tests/caf/named_shape/F8 Diff File
add - tests/caf/named_shape/F9 Diff File

Issue History

Date Modified Username Field Change
2012-04-22 18:10 Roman Lygin New Issue
2012-04-22 18:10 Roman Lygin Assigned To => szy
2012-04-22 18:10 Roman Lygin File Added: naming_test.tcl
2012-04-22 18:17 Roman Lygin File Added: naming_after_TNaming_Selector-Select()-ok.png
2012-04-22 18:17 Roman Lygin File Added: naming_after_TNaming_Selector-Solve()-fail.png
2012-04-24 08:34 abv Status new => assigned
2012-08-10 18:01 szy Note Added: 0021231
2012-08-24 17:02 vcat Note Added: 0021333
2012-08-24 17:02 vcat File Added: OCC_NamingTest.rar
2012-08-31 18:14 szy Note Added: 0021377
2012-08-31 18:14 szy Status assigned => resolved
2012-08-31 18:16 szy Note Edited: 0021377
2012-08-31 18:17 szy File Added: naming_test2.tcl
2012-09-05 17:48 szy Note Added: 0021415
2012-09-05 17:48 szy Assigned To szy => vro
2012-09-05 17:48 szy Status resolved => assigned
2012-09-05 17:50 szy Status assigned => resolved
2012-09-06 08:20 vro Note Added: 0021417
2012-09-06 08:20 vro Assigned To vro => mkv
2012-09-06 08:20 vro Status resolved => reviewed
2012-09-07 10:07 bugmaster Target Version => 6.5.4
2012-09-12 14:37 szy Note Added: 0021464
2012-09-12 14:38 szy File Added: 23119.7z
2012-09-13 14:24 szy Note Added: 0021476
2012-09-13 14:56 mkv Note Added: 0021478
2012-09-13 14:58 mkv Test case number => caf named_shape (002) F8 F9
2012-09-13 14:58 mkv Assigned To mkv => bugmaster
2012-09-13 14:58 mkv Status reviewed => tested
2012-09-17 17:29 szy Changeset attached => occt master efd4b232
2012-09-17 17:33 szy Assigned To bugmaster => szy
2012-09-17 17:33 szy Status tested => verified
2012-09-17 17:33 szy Resolution open => fixed
2012-11-16 13:14 bugmaster Fixed in Version => 6.5.4
2012-11-16 13:17 bugmaster Status verified => closed