View Issue Details

IDProjectCategoryView StatusLast Update
0027651Open CASCADEOCCT:Modeling Algorithmspublic2022-10-24 10:42
Reporteraml Assigned Toifv  
PrioritynormalSeverityminor 
Status assignedResolutionopen 
Product Version7.0.0 
Target Version7.8.0 
Summary0027651: Modeling Algorithms - Add projection support in sewing pcurves handling
DescriptionThis bug is child of CR27531 issue.

It is necessary to check possibility of adding projection in sewing pcurves handling and add it if possible.

Pseudo-code of current shared edge handling:

1) Take pcurve from the first face and try to bind it on the second.
2) If 1) failed, take pcurve from the second and bind on the first.

The proposed solution is to add following parts:
3) Project the first 3d curve on the second face.
4) if 3) failed, project the second 3d curve on the first face.

Steps To Reproducetest bugs modalg_6 bug27651
TagsNo tags attached.
Test case number

Relationships

related to 0030435 closedifv Open CASCADE Improving performance of Approx_ComputeCLine 
child of 0027531 closedbugmaster Open CASCADE Modeling Algorithms - Make the algorithm Approx_SameParameter more clear and robust 
Not all the children of this issue are yet resolved or closed.

Activities

msv

2018-05-08 12:32

developer   ~0075873

After discussion it is decided to make additional methods in BRepLib that will update/add pcurve with checking it for same parameter property, and re-projecting if necessary.
Such method will be called from sewing instead of SameParameter().

git

2018-06-05 17:31

administrator   ~0076626

Branch CR27651 has been created by ifv.

SHA-1: f68f3b28dd72fcc241885e6e843bf802b6dc9aee


Detailed log of new commits:

Author: ifv
Date: Fri May 25 15:21:04 2018 +0300

    0027651: Add projection support in sewing pcurves handling

git

2018-06-07 12:09

administrator   ~0076661

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 5352fb5f2973e71e6f5aa3e36996ef68eb0fc1c0

git

2018-07-06 17:44

administrator   ~0077314

Branch CR27651 has been updated forcibly by ifv.

SHA-1: b42d1da7b3579a2254f7aa204c5d4d7311ea7bfd

git

2018-07-09 13:36

administrator   ~0077391

Branch CR27651 has been updated forcibly by ifv.

SHA-1: c3ad9fcb2a849abf960d5b51791d21ca313d34d4

git

2018-07-23 16:40

administrator   ~0077929

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 10e41cab48dea3960f9c7fed4390abf817b4a86d

git

2018-07-24 17:31

administrator   ~0077970

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 397a0178fcd377072b868c86bef0cd74d28122fd

git

2018-08-29 14:09

administrator   ~0078832

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 011c677e09cfe9517c8bd3142a7606ba21b926dd

git

2018-08-31 13:22

administrator   ~0078885

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 9f56e3580ea124959ffe942944176824f7f54989

git

2018-09-03 15:30

administrator   ~0078941

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 402d52899e43deb7bca45480665e6c52b8a23561

git

2018-12-29 13:35

administrator   ~0081652

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 8d654b253801fb0f6c9770288da3c6dcbc7392f9

git

2019-04-26 12:23

administrator   ~0084008

Branch CR27651 has been updated forcibly by ifv.

SHA-1: e219e0f0fb805e599ff723a81b418e47825f811d

git

2019-05-14 15:47

administrator   ~0084340

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 1fb772b64a9481180215f340573fb6a385840b0d

git

2019-05-17 14:55

administrator   ~0084428

Branch CR27651 has been updated by ifv.

SHA-1: 08d0acc067c5dfeb8078c1ae159e869a5c398f36


Detailed log of new commits:

Author: ifv
Date: Fri May 17 14:46:35 2019 +0300

    Fix regressions

git

2019-05-21 16:21

administrator   ~0084512

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 251990c497d42584ccbf322011c0bf9e363c16dd

git

2019-05-24 11:02

administrator   ~0084594

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 99e1bdb9bd500bb0d3a56ea2447e0cf56e1a1f97

git

2019-05-24 15:52

administrator   ~0084606

Branch CR27651 has been updated forcibly by ifv.

SHA-1: d89e6298920cfc42b739d864495e9aaacac0b279

git

2019-05-27 16:48

administrator   ~0084668

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 1461508de0f09515868b39e6aecff2426b93bbb7

git

2019-06-21 15:59

administrator   ~0085199

Branch CR27651 has been updated forcibly by ifv.

SHA-1: f90e18e2523c974bb613b6979e80f990c168a27c

git

2019-07-02 16:25

administrator   ~0085381

Branch CR27651 has been updated forcibly by ifv.

SHA-1: e2059f336d42f1286d5596ae9d068f30b5c0ac8d

git

2019-10-01 15:43

administrator   ~0087665

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 5cd726c55e9cbe44df09e467978e67e1c95ab371

git

2019-10-02 13:52

administrator   ~0087687

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 979161afe000ab12ca987e0da89edf53381b3116

ifv

2019-10-02 14:18

developer   ~0087690

CR27651 is ready for review.
Test results is CR27651-master-IFV
Some comments:
Patch fixes #29732 and improves 0027614 (decrease tolerance 10.18 -> 5.8)

Patch has some problems with performance (see CPU difference), for example,
most difference:
CPU bugs modalg_2 bug22804: 57.15 / 0.16 [+35618.75%]
CPU bugs modalg_7 bug28700_2: 57.05 / 0.04 [+142525.00%]

The reason is:
when pcurve is bad, the old sewing algo only calculates tolerance, usually tolerance is very large and update edge, now algorithm try to get new pcurve by projection. For these cases (both cases have the same shape) projection time is rathe large.
Result tolerance for old algo is 2352.4, for patch is 291.2
sewing is performed with tol = 200

msv

2019-10-04 18:33

developer   ~0087838

Remarks:

src/BRepLib/BRepLib_1.cxx
- In the new methods SetPCurve, please check the presence of geometry (surface and curve) in input shapes before further processing (lines 384, 537). It is because we more and more deal with shapes with no geometry (only triangulation), and it is needed to protect low-level functionality from crashes on such shapes.
- 428, 578: Please check this condition, I suspect it is wrong:
if (theMaxTol >= aMaxTol || aNewTol > 10. * theMaxTol)
- 478, 648: Checking aNewTol is redundant here, it is always > 0.
- 565: Why edge tolerance is not updated here, by analogy with another SetPCurve method?

src/BRepTest/BRepTest_BasicCommands.cxx
- 1430: change addpcurve to setpcurve.

msv

2019-10-04 18:34

developer   ~0087839

Dear Galina,
Please review the file BRepBuilderAPI_Sewing.cxx in this patch.

gka

2019-11-12 12:38

developer   ~0088909

1. Keep tolerance of edge (line 900) befor call method SameParameter()is useless because edge always created with tolerance Precision::Confusion().
2. The condition myTolerance < aTolMax in the "if"statement on line 954 used for the pcurve reconstruction decision is unclear. Because value of myTolerance used only to decide should be boundary of faces be sewed or not.

3. It is desirable to split method RepLib::SetPCurve() on the to parts :
 1. set existing pcurve for edge
 2. reconstruction pcurve by project 3D curve on the surface.
Plese note that in the sewing only second part (2 item) sould be used in order to keep performance.

Please restore formating not modified lines in the method BRepBuilderAPI_Sewing::SameParameterEdge() in order to avoid big number of modifications due to changing of the formattiing.

git

2019-12-23 14:13

administrator   ~0089711

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 7d6ae7b71ade4963b98df455c717c25acec7a4ef

git

2019-12-25 12:51

administrator   ~0089752

Branch CR27651 has been updated by ifv.

SHA-1: f9120eeacc94341cfc50c730a494b33e397fd37c


Detailed log of new commits:

Author: ifv
Date: Wed Dec 25 12:47:09 2019 +0300

    Modification according to remarks

git

2020-01-20 17:46

administrator   ~0089960

Branch CR27651 has been updated forcibly by ifv.

SHA-1: 0e07189cb23d526e75b89013bd5d092d54a87aeb

git

2020-01-23 12:03

administrator   ~0090007

Branch CR27651 has been updated by ifv.

SHA-1: cca76c5661d65a6f708736c2a181f5e4285c85c6


Detailed log of new commits:

Author: ifv
Date: Thu Jan 23 11:58:10 2020 +0300

    Test modifications 23.01.20

Issue History

Date Modified Username Field Change
2016-06-28 10:51 aml New Issue
2016-06-28 10:51 aml Assigned To => msv
2016-06-28 10:51 aml Relationship added child of 0027531
2016-06-28 11:25 aml Steps to Reproduce Updated
2016-06-28 11:40 msv Assigned To msv => ifv
2016-06-28 11:40 msv Status new => assigned
2016-10-28 11:53 msv Target Version 7.1.0 => 7.2.0
2017-07-24 09:32 msv Target Version 7.2.0 => 7.3.0
2017-12-05 17:08 msv Target Version 7.3.0 => 7.4.0
2018-05-08 11:09 msv Assigned To ifv => gka
2018-05-08 12:29 msv Assigned To gka => msv
2018-05-08 12:32 msv Note Added: 0075873
2018-05-08 12:32 msv Assigned To msv => ifv
2018-06-05 17:31 git Note Added: 0076626
2018-06-07 12:09 git Note Added: 0076661
2018-07-06 17:44 git Note Added: 0077314
2018-07-09 13:36 git Note Added: 0077391
2018-07-23 16:40 git Note Added: 0077929
2018-07-24 17:31 git Note Added: 0077970
2018-08-29 14:09 git Note Added: 0078832
2018-08-31 13:22 git Note Added: 0078885
2018-09-03 15:30 git Note Added: 0078941
2018-12-29 13:35 git Note Added: 0081652
2019-01-10 13:06 ifv Relationship added related to 0030435
2019-04-26 12:23 git Note Added: 0084008
2019-05-14 15:47 git Note Added: 0084340
2019-05-14 22:16 kgv Summary Add projection support in sewing pcurves handling => Modeling Algorithms - Add projection support in sewing pcurves handling
2019-05-17 14:55 git Note Added: 0084428
2019-05-21 16:21 git Note Added: 0084512
2019-05-24 11:02 git Note Added: 0084594
2019-05-24 15:52 git Note Added: 0084606
2019-05-27 16:48 git Note Added: 0084668
2019-06-21 15:59 git Note Added: 0085199
2019-07-02 16:25 git Note Added: 0085381
2019-08-12 17:46 msv Target Version 7.4.0 => 7.5.0
2019-10-01 15:43 git Note Added: 0087665
2019-10-02 13:52 git Note Added: 0087687
2019-10-02 13:54 ifv Steps to Reproduce Updated
2019-10-02 14:18 ifv Note Added: 0087690
2019-10-02 14:18 ifv Assigned To ifv => msv
2019-10-02 14:18 ifv Status assigned => resolved
2019-10-04 18:33 msv Note Added: 0087838
2019-10-04 18:33 msv Assigned To msv => ifv
2019-10-04 18:33 msv Status resolved => assigned
2019-10-04 18:34 msv Note Added: 0087839
2019-11-11 16:58 ifv Assigned To ifv => gka
2019-11-11 16:58 ifv Status assigned => feedback
2019-11-12 12:38 gka Note Added: 0088909
2019-11-12 12:43 gka Assigned To gka => ifv
2019-11-12 12:52 gka Status feedback => assigned
2019-12-23 14:13 git Note Added: 0089711
2019-12-23 16:04 ifv File Added: bug31242.brep
2019-12-23 16:05 ifv File Deleted: bug31242.brep
2019-12-25 12:51 git Note Added: 0089752
2020-01-20 17:46 git Note Added: 0089960
2020-01-23 12:03 git Note Added: 0090007
2020-09-15 16:27 msv Target Version 7.5.0 => 7.6.0
2021-08-29 18:54 msv Target Version 7.6.0 => 7.7.0
2022-10-24 10:42 szy Target Version 7.7.0 => 7.8.0