View Issue Details

IDProjectCategoryView StatusLast Update
0026244Open CASCADEOCCT:Modeling Algorithmspublic2016-04-20 15:49
ReporterakzAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Target Version7.0.0Fixed in Version7.0.0 
Summary0026244: Destructive results of simplification with DRAW command 'unifysamedom' after intersection of two complex models
DescriptionThere is attached script which builds complex model.
We try to apply some Boolean operations on this model and its rotated copy.
Boolean operation 'bcommon' gives a valid shape (by 'checkshape') with normal tolerance. But after the simplification 'unifysamedom' was called, shape has became invalid. Moreover, some constructive elements, like holes, disappeared and a maximal tolerance has became > 187.
Steps To Reproducesource ANC101CompileWithoutFillets.tcl
tcopy _model _copy
trotate _copy $aWedgeHoleXPos $aWedgeHoleYPos 0 0 0 1 90
bcommon res _model _copy
checkshape res
unifysamedom res res
Additional information
and documentation updates
Another bug on Boolean operations with same model with fillets:
http://tracker.dev.opencascade.org/view.php?id=26243
TagsNo tags attached.
Test case numberbugs heal bug26244

Attached Files

  • ANC101CompileWithoutFillets.tcl (9,077 bytes)
  • ANC101_gl_simplify.png (20,901 bytes)
  • bef_fix1.png (11,711 bytes)
  • bef_fix2.png (20,458 bytes)
  • aft_fix1.png (11,377 bytes)

Relationships

related to 0026243 closedbugmaster Boolean operations failed on shapes with fillets 

Activities

akz

2015-05-20 15:10

developer  

ANC101CompileWithoutFillets.tcl (9,077 bytes)

ssv

2015-05-21 10:15

developer   ~0041352

I obtain StdFail_NotDone exception on the provided case (MSVC 2013, x64): no result (even faulty) of unifysamedom is available.

ssv

2015-05-21 10:17

developer  

ANC101_gl_simplify.png (20,901 bytes)

git

2015-08-26 14:48

administrator   ~0044663

Branch CR26244 has been created by isn.

SHA-1: ce0098218eac60f62d3806aea7128877ac224594


Detailed log of new commits:

Author: isn
Date: Wed Aug 26 14:48:37 2015 +0300

    0026244: Destructive results of simplification with DRAW command 'unifysamedom' after intersection of two complex models

isn

2015-08-26 15:18

developer   ~0044668

Last edited: 2015-08-26 17:10

This problem cannot be reproduced on the current version (i.e. checkshape is not giving any faulty shapes), but there is another problem with triangulation (bef_fix1.png):
---
source ANC101CompileWithoutFillets.tcl
tcopy _model _copy
trotate _copy $aWedgeHoleXPos $aWedgeHoleYPos 0 0 0 1 90
bcommon res _model _copy
checkshape res
unifysamedom r res
incmesh r 0.1
trinfo r

As a result of last command, "Maximal deflection" will be > 50 which seems to be wrong.

fix in the branch CR26244 should eliminate this problem. ##(aft_fix1.png)

isn

2015-08-26 15:25

developer  

bef_fix1.png (11,711 bytes)

isn

2015-08-26 15:25

developer  

bef_fix2.png (20,458 bytes)

isn

2015-08-26 15:26

developer  

aft_fix1.png (11,377 bytes)

msv

2015-08-27 13:07

developer   ~0044734

The code in lines 629-660 must be rewritten:
1) aChain(i - 1) can raise exception when i==1.
2) Do not return false if no vertices to avoid are found.
3) Make edge in different way depending on whether we use the existing circle or create a new one. In the last case new edge must be left Forward, and vertex V1 added there two times with different orientation.

isn

2015-08-31 17:40

developer   ~0044897

Last edited: 2015-08-31 17:43

the new branch is CR26244_1;
(circles only)
please check.

git

2015-08-31 17:41

administrator   ~0044899

Branch CR26244_1 has been created by isn.

SHA-1: 15a4c383968e171c309cfc904d6fd5888f2dceb6


Detailed log of new commits:

Author: isn
Date: Mon Aug 31 17:37:38 2015 +0300

    unifysamedom :: problem with triangulation

git

2015-08-31 17:43

administrator   ~0044901

Branch CR26244_1 has been updated forcibly by isn.

SHA-1: 0b9bdd6d52060cbcb824a57bf157d3f5e973bc72

msv

2015-08-31 19:02

developer   ~0044911

Please simplify the fix as we agreed.

msv

2015-08-31 19:04

developer   ~0044912

And, please re-base on current master.

git

2015-08-31 19:26

administrator   ~0044914

Branch CR26244_1 has been updated forcibly by isn.

SHA-1: 46e9fb28ab9d964ea047c044d5771fcdcde8eadf

isn

2015-08-31 19:46

developer   ~0044915

done

msv

2015-09-01 12:26

developer   ~0044922

Remarks:

- MC is used in 'else' scope of next 'if', so it is better to declare it there:
622: GC_MakeCircle MC (PV1,PVM,PV2);

- This is extra, because V1.IsSame.(V2):
626: if (PV1.Distance(PV2) > Precision::Confusion())

- Remove commented code, to make it clear:
624: if (/*!MC.IsDone() || MC.Value().IsNull()*/ V1.IsSame(V2)) {

- Move definitions of PV1, PV2, VM, PVM to the scope where they are used.

- Though the following record looks compact, it involves the same comparison two times. It is better to write direct 'if...else' statements:
632: FP = FE.Orientation() == TopAbs_FORWARD ? adef.FirstParameter() : adef.LastParameter();
633: LP = FE.Orientation() == TopAbs_FORWARD ? adef.LastParameter() : adef.FirstParameter();

- The following condition is erroneous, because FP can be negative, use Abs():
634: if (FP < Precision::PConfusion())

- In the line 643, simplify expression 'FP + (LP - FP) / 2.' to '(FP + LP) * 0.5'

- As we know that V1.IsSame(V2) and they have different orientation, in the following statement we can use just V2:
650: B.Add(E,V1.Reversed());

git

2015-09-02 12:06

administrator   ~0044956

Branch CR26244_1 has been updated by isn.

SHA-1: 7a75f442028f9928c8cc60a061fa4504721363b9


Detailed log of new commits:

Author: isn
Date: Wed Sep 2 12:05:56 2015 +0300

    corrections

msv

2015-09-02 18:50

developer   ~0044978

Reviewed.

git

2015-09-03 13:03

administrator   ~0044999

Branch CR26244_1 has been updated by mkv.

SHA-1: d15b94add6713736cef58cb251c57965fdd5870e


Detailed log of new commits:

Author: mkv
Date: Thu Sep 3 13:02:41 2015 +0300

    Test case for issue CR26244

mkv

2015-09-03 13:03

tester   ~0045000

Dear BugMaster,
Branch CR26244_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 7a75f442028f9928c8cc60a061fa4504721363b9

Number of compiler warnings:

occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)

products component :
Linux: 39 (39 on master)
Windows: 0 (0 on master)

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
http://occt-tests/CR26244-1-master-occt-64/Debian70-64/bugs/heal/bug26244.html
http://occt-tests/CR26244-1-master-occt-64/Windows-64-VC10/bugs/heal/bug26244.html
bugs heal bug26244: OK

Testing on Linux:
occt component :
Total MEMORY difference: 91785433 / 91192751 [+0.65%]
Total CPU difference: 17761.219999998815 / 17162.109999999382 [+3.49%]
products component :
Total MEMORY difference: 25202742 / 25221023 [-0.07%]
Total CPU difference: 7288.749999999995 / 7038.589999999997 [+3.55%]

Testing on Windows:
occt component :
Total MEMORY difference: 57098781 / 57090163 [+0.02%]
Total CPU difference: 16400.71273209907 / 16439.978183798914 [-0.24%]
products component :
Total MEMORY difference: 16223023 / 16222282 [+0.00%]
Total CPU difference: 5268.746573799948 / 5332.831784599964 [-1.20%]

There are no differences in images found by testdiff.

git

2015-10-16 18:09

administrator   ~0047146

Branch CR26244 has been deleted by kgv.

SHA-1: ce0098218eac60f62d3806aea7128877ac224594

git

2015-10-16 18:09

administrator   ~0047147

Branch CR26244_1 has been deleted by kgv.

SHA-1: d15b94add6713736cef58cb251c57965fdd5870e

Related Changesets

occt: master dd2f1b75

2015-09-03 12:24:12

isn


Committer: bugmaster Details Diff
0026244: Destructive results of simplification with DRAW command 'unifysamedom' after intersection of two complex models

corrections unifysamedom :: problem with triangulation (2)

Test case for issue CR26244
Affected Issues
0026244
mod - src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cxx Diff File
add - tests/bugs/heal/bug26244 Diff File

Issue History

Date Modified Username Field Change
2015-05-20 15:10 akz New Issue
2015-05-20 15:10 akz Assigned To => msv
2015-05-20 15:10 akz File Added: ANC101CompileWithoutFillets.tcl
2015-05-20 15:11 akz Description Updated
2015-05-20 15:13 akz Description Updated
2015-05-20 15:13 akz Steps to Reproduce Updated
2015-05-20 15:13 akz Relationship added related to 0026243
2015-05-20 15:14 akz Description Updated
2015-05-20 15:17 msv Assigned To msv => ifv
2015-05-20 15:17 msv Status new => assigned
2015-05-20 15:17 msv Target Version => 7.1.0
2015-05-21 10:15 ssv Note Added: 0041352
2015-05-21 10:17 ssv File Added: ANC101_gl_simplify.png
2015-05-21 13:05 ifv Assigned To ifv => jgv
2015-08-24 18:18 jgv Assigned To jgv => isn
2015-08-26 14:48 git Note Added: 0044663
2015-08-26 14:52 isn Assigned To isn => msv
2015-08-26 14:52 isn Status assigned => resolved
2015-08-26 15:18 isn Note Added: 0044668
2015-08-26 15:25 isn File Added: bef_fix1.png
2015-08-26 15:25 isn File Added: bef_fix2.png
2015-08-26 15:26 isn File Added: aft_fix1.png
2015-08-26 15:26 isn Note Edited: 0044668
2015-08-26 15:27 isn Note Edited: 0044668
2015-08-26 17:10 isn Note Edited: 0044668
2015-08-27 13:07 msv Note Added: 0044734
2015-08-27 13:07 msv Assigned To msv => isn
2015-08-27 13:07 msv Status resolved => assigned
2015-08-31 17:40 isn Note Added: 0044897
2015-08-31 17:41 isn Assigned To isn => msv
2015-08-31 17:41 isn Status assigned => resolved
2015-08-31 17:41 git Note Added: 0044899
2015-08-31 17:43 git Note Added: 0044901
2015-08-31 17:43 isn Note Edited: 0044897
2015-08-31 19:02 msv Note Added: 0044911
2015-08-31 19:02 msv Status resolved => assigned
2015-08-31 19:02 msv Assigned To msv => isn
2015-08-31 19:04 msv Note Added: 0044912
2015-08-31 19:26 git Note Added: 0044914
2015-08-31 19:46 isn Note Added: 0044915
2015-08-31 19:47 isn Assigned To isn => msv
2015-08-31 19:47 isn Status assigned => resolved
2015-09-01 12:26 msv Note Added: 0044922
2015-09-01 12:26 msv Assigned To msv => isn
2015-09-01 12:26 msv Status resolved => assigned
2015-09-02 12:06 git Note Added: 0044956
2015-09-02 12:07 isn Assigned To isn => msv
2015-09-02 12:07 isn Status assigned => resolved
2015-09-02 18:50 msv Note Added: 0044978
2015-09-02 18:50 msv Assigned To msv => bugmaster
2015-09-02 18:50 msv Status resolved => reviewed
2015-09-02 19:13 mkv Assigned To bugmaster => mkv
2015-09-03 13:03 git Note Added: 0044999
2015-09-03 13:03 mkv Note Added: 0045000
2015-09-03 13:03 mkv Assigned To mkv => bugmaster
2015-09-03 13:03 mkv Status reviewed => tested
2015-09-03 13:03 mkv Test case number => bugs heal bug26244
2015-09-04 13:02 bugmaster Changeset attached => occt master dd2f1b75
2015-09-04 13:02 bugmaster Status tested => verified
2015-09-04 13:02 bugmaster Resolution open => fixed
2015-09-24 11:23 abv Target Version 7.1.0 => 7.0.0
2015-10-16 18:09 git Note Added: 0047146
2015-10-16 18:09 git Note Added: 0047147
2016-04-20 15:44 aiv Fixed in Version => 7.0.0
2016-04-20 15:49 aiv Status verified => closed