View Issue Details

IDProjectCategoryView StatusLast Update
0032807CommunityOCCT:Modeling Algorithmspublic2022-05-21 11:47
ReporterManycore Assigned Tomgerus  
PrioritynormalSeveritymajor 
Status verifiedResolutionfixed 
PlatformWindowsOSVC++ 2015 
Product Version7.6.0 
Target Version7.7.0 
Summary0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points
DescriptionBRepOffsetAPI_MakePipeShell with the attached path and profile does not build correct on 7.6.0 version.
The result is old_result.png, we hope get the new_result
Steps To ReproduceTopoDS_Shape Sh1;
TopoDS_Shape Sh2;
BRep_Builder B;
bool b1 = BRepTools::Read(Sh1, "D:\\path.brep", B);
bool b2 = BRepTools::Read(Sh2, "D:\\profile.brep", B);

const TopoDS_Wire& path = TopoDS::Wire(Sh1);
const TopoDS_Wire& profile= TopoDS::Wire(Sh2);
BRepOffsetAPI_MakePipeShell shellMaker(path);
shellMaker.SetTransitionMode(static_cast<BRepBuilderAPI_TransitionMode>(1));
shellMaker.Add(profile, /*WithContact*/false, /*WithCorrection*/true);
shellMaker.Build();
const TopoDS_Shape& shape = shellMaker.Shape();
TagsNo tags attached.
Test case numbertests\pipe\bugs\bug0032807

Attached Files

  • path.brep (591 bytes)
  • profile.brep (3,299 bytes)
  • old_result.brep (214,454 bytes)
  • new_result.brep (287,353 bytes)
  • path_profile.png (8,216 bytes)
  • old_result.png (22,946 bytes)
  • new_result.png (28,039 bytes)
  • 企业微信截图_16432807732818.png (15,824 bytes)
  • 企业微信截图_1643280935600.png (9,365 bytes)
  • 企业微信截图_1643280893418.png (10,052 bytes)
  • path__profile .png (15,824 bytes)
  • UEdges_has_more_than_one_Intersect_points.png (9,365 bytes)
  • we_choose_the_one_keeps_the_tangentCross.png (10,052 bytes)
  • bug0032807 (415 bytes)
  • bug0032807_path.brep (587 bytes)
  • bug0032807_profile.brep (3,296 bytes)

Relationships

related to 0032809 verifiedazv Modeling Algorithms - Sweep algorithm with Round Corner mode failed 

Activities

Manycore

2022-01-27 06:47

developer   ~0106619

path.brep (591 bytes)
profile.brep (3,299 bytes)
old_result.brep (214,454 bytes)
new_result.brep (287,353 bytes)
path_profile.png (8,216 bytes)
old_result.png (22,946 bytes)
new_result.png (28,039 bytes)

Manycore

2022-01-27 14:06

developer   ~0106630

Last edited: 2022-01-27 14:10

From the perspective of the offset algorithm, we can chhoose the intersect point keep the tangentCross. v31 is same side with v3, v32 is opposite side with v3. so we choose p1
企业微信截图_16432807732818.png (15,824 bytes)
企业微信截图_1643280935600.png (9,365 bytes)
企业微信截图_1643280893418.png (10,052 bytes)

kgv

2022-01-27 14:13

developer   ~0106632

Last edited: 2022-01-27 14:14

@Manycore,
> Assigned To => Manycore
Please do not override default value of "Assigned To" field while registering new bug, if you are not going to fix it yourself (maintainer of Category might not receive no notification about new bug in this case).

> 企.png
Consider renaming attachment with meaningful names and without non-Latin symbols.

git

2022-01-27 14:18

administrator   ~0106633

Branch CR32807 has been created by Manycore.

SHA-1: e47224a8b3f6f56be21c02c9a0177dba176fe262


Detailed log of new commits:

Author: gelin
Date: Thu Jan 27 19:18:38 2022 +0800

    sweep algorithm deal with EE more than one intersect points

Manycore

2022-01-28 06:27

developer   ~0106642

Last edited: 2022-01-28 06:29

> I will fix the bug myself

> re-attach the picture with meaningful names.

>The picture describes the idea of ​​​​the solution. When prev UEdge and next UEgde has more than one intresect points .
From the perspective of the offset algorithm, we can chhoose the intersect point keep the tangentCross.
v31 is same side with v3, v32 is opposite side with v3. so we choose p1
path__profile .png (15,824 bytes)
UEdges_has_more_than_one_Intersect_points.png (9,365 bytes)
we_choose_the_one_keeps_the_tangentCross.png (10,052 bytes)

Manycore

2022-01-28 06:51

developer   ~0106643

> add test case:
   test script and test data
bug0032807 (415 bytes)
bug0032807_path.brep (587 bytes)
bug0032807_profile.brep (3,296 bytes)

git

2022-01-28 07:07

administrator   ~0106644

Branch CR32807 has been updated by Manycore.

SHA-1: 97a8bb768fb3c799e4359e733c0c89f607bb5b86


Detailed log of new commits:

Author: gelin
Date: Fri Jan 28 12:07:05 2022 +0800

    add test script

Manycore

2022-01-28 07:28

developer   ~0106645

Last edited: 2022-01-28 08:39

Reminder sent to: kgv

please help to review the code

kgv

2022-01-28 09:55

developer   ~0106646

@Manycore

+  //! theIntersectPointCrossDirection : prev path direction at the origin point of theAxeOfBisPlane
+  //  cross next path direction at the origin point of theAxeOfBisPlane. used when EE has more than one vertices

The second line will be lost from documentation (should start with `//!`).
It is better using `@param` for describing parameters (and update description of entire method).
New argument name looks pretty long - it might be reasonable to make it shorter.

gelin	add test script CR32807
gelin	sweep algorithm deal with EE more than one intersect...
kgv	0032783: Documentation - Doxygen 1.9.3 generates corrup... CR0-WEEK-3 IR-2022-01-21

The first commit in the branch should be started from the Summary copied with number from bugtracker (see other commits in git log).

+  // see CR0032807
   gp_Vec myIntersectPointCrossDirection;

It is usually redundant mentioning bug numbers in code, as long as the bug is not TODO for fixing some known issue later.

+++ b/tests/pipe/bugs/bug0032807
@@ -0,0 +1,16 @@
+puts "TODO CR0032807 ALL: Sweep modeling exception"
+puts "TODO CR0032807 ALL: TEST INCOMPLETE"
+
+puts "========"
+puts "TODO CR0032807: Sweep algorithm deal with EE more than one intersect points"

Why there are "TODO" in test case - does it fail with the patch?

git

2022-01-28 11:44

administrator   ~0106649

Branch CR32807 has been deleted by Manycore.

SHA-1: 97a8bb768fb3c799e4359e733c0c89f607bb5b86

git

2022-01-28 11:47

administrator   ~0106650

Branch CR32807 has been created by Manycore.

SHA-1: 81d29e2640b900b3dc34544c5e768ce4f358c2b0


Detailed log of new commits:

Author: gelin
Date: Fri Jan 28 16:47:01 2022 +0800

    0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points

git

2022-04-06 13:12

administrator   ~0107661

Branch CR32807_1 has been created by mgerus.

SHA-1: 00c6685f044e8f44071cfe20ca316cb0b3e69147


Detailed log of new commits:

Author: mgerus
Date: Wed Apr 6 13:12:19 2022 +0300

    Add fix what repair shipping

Author: mgerus
Date: Wed Apr 6 09:56:22 2022 +0300

    0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points
    
    Add changes to dox/upgrade/upgrade.md

git

2022-04-12 07:16

administrator   ~0107873

Branch CR32807_1 has been updated forcibly by mgerus.

SHA-1: edd45be2097a975ca10c35ee865a96fb5fe72f71

Manycore

2022-04-12 10:53

developer   ~0107884

@mgerus , bug 0032811 has two reasons: 1. SSI lost one intersect curve 2. UEdges has more than one intersect points . 1. has resolved in isuee 0032849, after resolved 2.(this isuee), please help to test 0032811

azv

2022-04-12 12:04

administrator   ~0107886

Dear @Manycore,

Thank you very much for your contribution to OpenCASCADE Technology. We are really appreciate your patches. Unfortunately, we have no chance to process them all simultaneously. Please, be patient. @mgerus currently works on this issue, because there are some problems on Linux which have to be fixed.

As regards issue 0032811, it will be processed as soon as possible (some updates are already done), when other urgent tasks will be finished. I would appreciate it if you could post comments to the dedicated issue.

Best regards,
Artem

git

2022-04-21 14:51

administrator   ~0108082

Branch CR32807_1 has been updated by mgerus.

SHA-1: 9bae62d9fecfa9de54f2a1af1627e07ea40f2aaf


Detailed log of new commits:

Author: mgerus
Date: Thu Apr 21 14:50:49 2022 +0300

    possible fix for linux

git

2022-04-22 10:23

administrator   ~0108101

Branch CR32807_1 has been updated forcibly by mgerus.

SHA-1: c0d7afd1081c679b4235321b1565e07855c39a8a

git

2022-04-27 13:20

administrator   ~0108222

Branch CR32807_2 has been created by mgerus.

SHA-1: 6b1f83ef81b1123151238262f9a080b47146a0ae


Detailed log of new commits:

Author: mgerus
Date: Wed Apr 27 13:20:17 2022 +0300

    Exact tolerance calculate and validate

git

2022-04-28 11:36

administrator   ~0108236

Branch CR32807_2 has been updated by mgerus.

SHA-1: 57d71f0e54bc419661ea0a3d020d060d2c086ad9


Detailed log of new commits:

Author: mgerus
Date: Thu Apr 28 11:35:19 2022 +0300

    exact v2

git

2022-04-29 11:11

administrator   ~0108248

Branch CR32807_3 has been created by mgerus.

SHA-1: 84b6acca9aea0ed92d140a932321b2bf6d2b9a96


Detailed log of new commits:

Author: mgerus
Date: Fri Apr 29 11:11:31 2022 +0300

    0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points

git

2022-04-29 14:43

administrator   ~0108254

Branch CR32807_3 has been updated forcibly by mgerus.

SHA-1: 25cd3130388df5a02458562f40242548674d221f

mgerus

2022-04-29 16:16

developer   ~0108259

Dear @azv please review the branch CR32807_3.
http://jenkins-test-occt/view/CR32807_1-master-MGERUS/view/COMPARE/

Branches for Integration:
OCCT - CR32807_3
Products - Not

azv

2022-05-05 10:03

administrator   ~0108333

Dear Maxim,

Here are my remarks:

General

1. Please, update the commit message and describe the things done in the scope of this fix as well as changes in reference data of unrelated test cases.

2. Change status of issue to resolved and assign it to reviewer.

src/BRepFill/BRepFill_TrimShellCorner.cxx

1239:  gp_Pnt aPt;
1240:  gp_Vec aDirOnE1, aDirOnE2;
1241:  gp_Dir aIntersectPointCrossDir;

Variables should be defined locally, where they are used.


src/BRepFill/BRepFill_Sweep.cxx

Functions CheckSameParameters() look generally the same. I propose that one of them should use another. Otherwise, multipliers should be carefully specified.

370:  Handle(Adaptor3d_Curve) curve3d = sp.Curve3d();
371:  Handle(Adaptor3d_CurveOnSurface) curveOnSurface = sp.CurveOnSurface();
372:  CheckSameParameter(curve3d, curveOnSurface, tol3d, ResTol);
373:
374:  if (!CheckSameParameter(curve3d, curveOnSurface, tol3d, ResTol) &&  ResTol > tolreached) {

Why CheckSameParameter() is called twice here?

tests/pipe/bugs/bug32807

Add a screenshot of the result, as it is done in other cases of test grid.

git

2022-05-06 07:29

administrator   ~0108356

Branch CR32807_3 has been updated by mgerus.

SHA-1: 61e7662dd87f74362fd2a569e9762bb9b9e7a9aa


Detailed log of new commits:

Author: mgerus
Date: Fri May 6 07:29:04 2022 +0300

    fixing after review

git

2022-05-06 07:34

administrator   ~0108357

Branch CR32807_4 has been created by mgerus.

SHA-1: 89c0973900d00c3816279c14dce577992aa85136


Detailed log of new commits:

Author: mgerus
Date: Fri May 6 07:32:35 2022 +0300

    0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points
    
    Add choosing the intersect point taking into account the tangentCross when prev UEdge and next UEdge has more than one intersect points;
    Add exact correction of edge tolerance (it fix problems with edge tolerance on Linux);
    Add exact check of edge tolerance in testcase

mgerus

2022-05-06 10:28

developer   ~0108360

Branch CR32807_3 contains fixes after review, branch for integration CR32807_4
http://jenkins-test-occt/view/CR32807_1-master-MGERUS/view/COMPARE/

Branches for Integration:
OCCT - CR32807_4
Products - Not

azv

2022-05-06 10:51

administrator   ~0108362

What about

> Functions CheckSameParameters() look generally the same. I propose that one of them should use another. Otherwise, multipliers should be carefully specified.

Could we unite them?

git

2022-05-06 12:05

administrator   ~0108364

Branch CR32807_3 has been updated by mgerus.

SHA-1: 947f036a5057b6c77b6a9267fc0fe3385e065c1d


Detailed log of new commits:

Author: mgerus
Date: Fri May 6 12:05:43 2022 +0300

    fixing after review v2

git

2022-05-11 09:07

administrator   ~0108389

Branch CR32807_3 has been updated by mgerus.

SHA-1: baa00241f8a1dcb9fe8e9ef473ffb5716645f306


Detailed log of new commits:

Author: mgerus
Date: Wed May 11 09:07:25 2022 +0300

    revert fix for CheckSameParameter()

git

2022-05-11 16:10

administrator   ~0108397

Branch CR32807_4 has been updated forcibly by mgerus.

SHA-1: 00342bc4b6517d9daecce8ea8afa2fe946a68869

mgerus

2022-05-11 16:11

developer   ~0108398

http://jenkins-test-occt/view/CR32807_1-master-MGERUS/view/COMPARE/

Branches for Integration:
OCCT - CR32807_4
Products - Not

git

2022-05-14 22:29

administrator   ~0108422

Branch CR32807_4 has been updated forcibly by azv.

SHA-1: 67d24ed22badfaf6e54e6822f8960a820b5e80b0

azv

2022-05-16 10:07

administrator   ~0108430

Reviewed. For integration:
OCCT: CR32807_4
Products: NOT

afokin

2022-05-21 11:08

administrator   ~0108533

Combination -
OCCT branch : IR-2022-05-20
master SHA - 84d39c06fa79d4227c1bc415e36e3924f7ff64c6
49e51745631c52b6c452c65adae4d6dfa21a1b1e
Products branch : IR-2022-05-20 SHA - 17cda8130dd822da7e07127476a2902326a00742
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 18673.29000000065 / 18725.070000000575 [-0.28%]
Products
Total CPU difference: 11729.870000000092 / 11731.410000000136 [-0.01%]
Windows-64-VC14:
OCCT
Total CPU difference: 20661.390625 / 20657.984375 [+0.02%]
Products
Total CPU difference: 13282.171875 / 13258.375 [+0.18%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2022-05-21 11:47

administrator   ~0108536

Branch CR32807 has been deleted by mnt.

SHA-1: 81d29e2640b900b3dc34544c5e768ce4f358c2b0

git

2022-05-21 11:47

administrator   ~0108537

Branch CR32807_1 has been deleted by mnt.

SHA-1: c0d7afd1081c679b4235321b1565e07855c39a8a

git

2022-05-21 11:47

administrator   ~0108538

Branch CR32807_2 has been deleted by mnt.

SHA-1: 57d71f0e54bc419661ea0a3d020d060d2c086ad9

git

2022-05-21 11:47

administrator   ~0108539

Branch CR32807_3 has been deleted by mnt.

SHA-1: baa00241f8a1dcb9fe8e9ef473ffb5716645f306

git

2022-05-21 11:47

administrator   ~0108540

Branch CR32807_4 has been deleted by mnt.

SHA-1: 67d24ed22badfaf6e54e6822f8960a820b5e80b0

Related Changesets

occt: master 2052b04e

2022-05-11 16:08:55

mgerus


Committer: smoskvin Details Diff
0032807: Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points

Add choosing the intersect point taking into account the tangentCross when prev UEdge and next UEdge has more than one intersect points;
Add exact correction of edge tolerance (it fix problems with edge tolerance on Linux);
Add exact check of edge tolerance in testcase
Affected Issues
0032807
mod - src/Approx/Approx_SameParameter.cxx Diff File
mod - src/Approx/Approx_SameParameter.hxx Diff File
mod - src/BRepFill/BRepFill_Sweep.cxx Diff File
mod - src/BRepFill/BRepFill_TrimShellCorner.cxx Diff File
mod - src/BRepFill/BRepFill_TrimShellCorner.hxx Diff File
mod - tests/bugs/modalg_7/bug29204 Diff File
mod - tests/bugs/modalg_7/bug29663 Diff File
mod - tests/evolved/voluved/HMC008 Diff File
add - tests/pipe/bugs/bug32807 Diff File

Issue History

Date Modified Username Field Change
2022-01-27 06:38 Manycore New Issue
2022-01-27 06:38 Manycore Assigned To => Manycore
2022-01-27 06:47 Manycore Note Added: 0106619
2022-01-27 06:47 Manycore File Added: path.brep
2022-01-27 06:47 Manycore File Added: profile.brep
2022-01-27 06:47 Manycore File Added: old_result.brep
2022-01-27 06:47 Manycore File Added: new_result.brep
2022-01-27 06:47 Manycore File Added: path_profile.png
2022-01-27 06:47 Manycore File Added: old_result.png
2022-01-27 06:47 Manycore File Added: new_result.png
2022-01-27 14:06 Manycore Note Added: 0106630
2022-01-27 14:06 Manycore File Added: 企业微信截图_16432807732818.png
2022-01-27 14:06 Manycore File Added: 企业微信截图_1643280935600.png
2022-01-27 14:06 Manycore File Added: 企业微信截图_1643280893418.png
2022-01-27 14:10 Manycore Note Edited: 0106630
2022-01-27 14:13 kgv Note Added: 0106632
2022-01-27 14:14 kgv Note Edited: 0106632
2022-01-27 14:18 git Note Added: 0106633
2022-01-27 14:22 kgv Summary Bad result of sweep operation when the UEdges has more than one intersect points => Modeling Algorithms - Bad result of sweep operation when the UEdges has more than one intersect points
2022-01-28 06:27 Manycore Note Added: 0106642
2022-01-28 06:27 Manycore File Added: path__profile .png
2022-01-28 06:27 Manycore File Added: UEdges_has_more_than_one_Intersect_points.png
2022-01-28 06:27 Manycore File Added: we_choose_the_one_keeps_the_tangentCross.png
2022-01-28 06:29 Manycore Note Edited: 0106642
2022-01-28 06:51 Manycore Note Added: 0106643
2022-01-28 06:51 Manycore File Added: bug0032807
2022-01-28 06:51 Manycore File Added: bug0032807_path.brep
2022-01-28 06:51 Manycore File Added: bug0032807_profile.brep
2022-01-28 07:07 git Note Added: 0106644
2022-01-28 07:12 Manycore Severity trivial => major
2022-01-28 07:12 Manycore Test case number => tests\pipe\bugs\bug0032807
2022-01-28 07:28 Manycore Note Added: 0106645
2022-01-28 08:39 Manycore Note Edited: 0106645
2022-01-28 08:41 Manycore Assigned To Manycore => kgv
2022-01-28 08:41 Manycore Status new => resolved
2022-01-28 09:47 kgv Assigned To kgv => msv
2022-01-28 09:55 kgv Note Added: 0106646
2022-01-28 11:04 msv Assigned To msv => jgv
2022-01-28 11:44 git Note Added: 0106649
2022-01-28 11:47 git Note Added: 0106650
2022-03-31 08:44 azv Assigned To jgv => mgerus
2022-03-31 08:44 azv Status resolved => assigned
2022-04-05 22:42 azv Relationship added related to 0032809
2022-04-06 13:12 git Note Added: 0107661
2022-04-12 07:16 git Note Added: 0107873
2022-04-12 10:14 Manycore Assigned To mgerus => Manycore
2022-04-12 10:16 Manycore Assigned To Manycore => mgerus
2022-04-12 10:53 Manycore Note Added: 0107884
2022-04-12 12:04 azv Note Added: 0107886
2022-04-21 14:51 git Note Added: 0108082
2022-04-22 10:23 git Note Added: 0108101
2022-04-27 13:20 git Note Added: 0108222
2022-04-28 11:36 git Note Added: 0108236
2022-04-29 11:11 git Note Added: 0108248
2022-04-29 14:43 git Note Added: 0108254
2022-04-29 16:16 mgerus Note Added: 0108259
2022-05-05 10:03 azv Note Added: 0108333
2022-05-06 07:29 git Note Added: 0108356
2022-05-06 07:34 git Note Added: 0108357
2022-05-06 10:28 mgerus Note Added: 0108360
2022-05-06 10:29 mgerus Assigned To mgerus => azv
2022-05-06 10:29 mgerus Status assigned => resolved
2022-05-06 10:51 azv Assigned To azv => mgerus
2022-05-06 10:51 azv Status resolved => assigned
2022-05-06 10:51 azv Note Added: 0108362
2022-05-06 12:05 git Note Added: 0108364
2022-05-11 09:07 git Note Added: 0108389
2022-05-11 16:10 git Note Added: 0108397
2022-05-11 16:11 mgerus Note Added: 0108398
2022-05-14 22:29 git Note Added: 0108422
2022-05-16 10:06 azv Assigned To mgerus => azv
2022-05-16 10:06 azv Status assigned => resolved
2022-05-16 10:07 azv Assigned To azv => bugmaster
2022-05-16 10:07 azv Status resolved => reviewed
2022-05-16 10:07 azv Note Added: 0108430
2022-05-21 11:08 afokin Status reviewed => tested
2022-05-21 11:08 afokin Note Added: 0108533
2022-05-21 11:45 smoskvin Changeset attached => occt master 2052b04e
2022-05-21 11:45 mgerus Assigned To bugmaster => mgerus
2022-05-21 11:45 mgerus Status tested => verified
2022-05-21 11:45 mgerus Resolution open => fixed
2022-05-21 11:47 git Note Added: 0108536
2022-05-21 11:47 git Note Added: 0108537
2022-05-21 11:47 git Note Added: 0108538
2022-05-21 11:47 git Note Added: 0108539
2022-05-21 11:47 git Note Added: 0108540