View Issue Details

IDProjectCategoryView StatusLast Update
0028414CommunityOCCT:Data Exchangepublic2023-05-17 19:21
Reportergdw Assigned Toatereshi 
PrioritynormalSeveritymajor 
Status closedResolutionfixed 
PlatformMacOSOS 
Product Version6.9.1 
Target Version7.7.0Fixed in Version7.7.0 
Summary0028414: Data Exchange - Step entity not correctly read
DescriptionHello,
We have identified an entity (STEP TOROIDAL_SURFACE) that is not correctly read (see the screen shots of IDA-Step and FreeCAD).
We have isolated the entity in a as small as possible Step file in order to help the correction.
Thank in advance for your help.
--
Guilhem
Steps To ReproduceTest "bugs step bug28414".
TagsNo tags attached.
Test case numberNot required

Attached Files

  • StepBug.zip (507,140 bytes)
  • bug_tore.stp (15,501 bytes)
  • Capture d’écran 2018-05-01 à 16.32.27.png (49,193 bytes)
  • Capture d’écran 2018-05-01 à 16.32.54.png (84,779 bytes)
  • bug28414.stp (15,505 bytes)
  • de_step_1_J6_1.png (24,569 bytes)
  • torus_problem.docx (1,694,818 bytes)
  • torus_problem-2.docx (2,064,659 bytes)

Relationships

related to 0029564 closedbugmaster Community Data Exchange - STEP Import and Export failure 
related to 0027722 assigneddpasukhi Community Data Exchange - STEP error for Ellipse revol shape 
related to 0028024 closedatereshi Open CASCADE Configuration - revise XSTEPResource initialization 
related to 0033221 resolveddpasukhi Open CASCADE Tests - Resource files are not deleted after testing 
related to 0033386 new Community Data Exchange, Step Import - Toroidal surface with single outer bound 

Activities

gdw

2017-01-30 19:28

developer  

StepBug.zip (507,140 bytes)

abv

2017-01-31 09:47

manager   ~0063235

Among available STEP viewers:
- Autodesk A360 and GOM Inspect (based on Hoops by TechSoft3D), PTC Creo Elements show this face as almost full torus;
- OCCT, FreeCAD, RGK show it as small part;
- Rhino fails to open it;
- STEP NC shows broken shape.

Thus translation of toruses to and from STEP definitely deserves to be checked.

gdw

2018-01-02 12:25

developer   ~0073218

Hello,
What is the status of this issue?
Thks in advance
--
gdw

eryar

2018-01-04 04:34

developer   ~0073228

Hi gdw,

I think this may have relationships with 0027722:
https://tracker.dev.opencascade.org/view.php?id=27722

gdw

2018-04-28 12:56

developer  

bug_tore.stp (15,501 bytes)

gdw

2018-04-28 12:56

developer   ~0075740

Hello,
The problem seems to be not related to the ellipse but preferably to the BSP subtraction.

In the file bug_tore, if
0000329 = ADVANCED_FACE( '', ( #749 ), #750, .T. );

is replaced by
0000329 = ADVANCED_FACE( '', ( ), #750, .T. );

the tore is read by occ; otherwise, only the cookie is read...

Hope this help
--
Guilhem

gdw

2018-05-01 17:33

developer  

Capture d’écran 2018-05-01 à 16.32.27.png (49,193 bytes)

gdw

2018-05-01 17:34

developer  

Capture d’écran 2018-05-01 à 16.32.54.png (84,779 bytes)

gdw

2018-05-01 17:39

developer   ~0075755

Hi,

After investigations, the problem seems to come from the way the tore is cut by the wire in the ADVANCED_FACE: the part that should kept is 'outside' while occ keeps 'inside', as shown in the screenshots (the yellow one is correct while the gray one is what occ produces).
Currently I am trying to investigate in BrepMesh_FastDiscret.cxx that actually triangule the tore...
Help will infinitely appreciated!
--
Guilhem

gdw

2018-05-12 10:52

developer   ~0075949

More over, the problem seems to come when some B_SPLINE_CURVE_WITH_KNOTS are involved in the EdgeLoop of the ADVANCED_FACE; not sure that the problem is limited if the surface of the ADVANCED_FACE is a torus...
Feedback and help greatly appreciated!

gdw

2018-05-18 08:16

developer   ~0076020

We have temporarily fixed the problem by suppressing the edge part of the advanced face if the target form is a toroids and if the edges are made exclusively with knots surface. This inly a work around...

gdw

2018-08-19 13:14

developer   ~0078684

For more information, the problem comes from FACE_OUTER_BOUND...

git

2020-11-18 11:25

administrator   ~0096872

Branch CR28414 has been created by skl.

SHA-1: bb7eb4c1dcfbf802ef04563fa71057a66e5c9354


Detailed log of new commits:

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Step entity not correctly read.
    
    Temporary check

git

2020-11-18 17:20

administrator   ~0096888

Branch CR28414 has been updated forcibly by skl.

SHA-1: 004ecab95df2de6782e447fe3c11a6476e1aa640

git

2020-11-21 06:56

administrator   ~0096926

Branch CR28414 has been updated forcibly by skl.

SHA-1: c896d7915a7b5778780886baea246d40d41b5a01

git

2020-11-22 08:49

administrator   ~0096991

Branch CR28414 has been updated by skl.

SHA-1: 619d87b8f54e5c84a51977aab8cefdee64292934


Detailed log of new commits:

Author: skl
Date: Sun Nov 22 08:49:42 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Check temporary solution.

git

2020-11-23 17:46

administrator   ~0097012

Branch CR28414 has been updated forcibly by skl.

SHA-1: 19a36cbd1a6a827b973504a2f70bc8cc1b016153

git

2020-11-24 07:52

administrator   ~0097019

Branch CR28414 has been updated by skl.

SHA-1: ddcc1b69c480fa442357e07a5008b7f550445c1a


Detailed log of new commits:

Author: skl
Date: Tue Nov 24 07:52:37 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Temporary check

git

2020-11-24 15:14

administrator   ~0097031

Branch CR28414 has been updated by skl.

SHA-1: fb9dc489fa78bf7b76a0d9b8d94ca5141f068d5a


Detailed log of new commits:

Author: skl
Date: Tue Nov 24 15:13:57 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Next version of fix.

skl

2020-11-27 11:23

developer  

bug28414.stp (15,505 bytes)

skl

2020-11-27 11:25

developer   ~0097105

Please add attached file bug28414.stp to repository.

git

2020-11-27 11:32

administrator   ~0097106

Branch CR28414 has been updated forcibly by skl.

SHA-1: 1269f76c49956bd40f960e68df86c7cad3d5c44b

git

2020-11-30 09:41

administrator   ~0097147

Branch CR28414 has been updated forcibly by skl.

SHA-1: 6284b2343419ec0f0e6ce085f654cfa68ffe34d1

git

2020-11-30 09:51

administrator   ~0097148

Branch CR28414 has been updated forcibly by skl.

SHA-1: c7f54f5a958998dc3e8bdd82bd832e42c5c671a7

git

2020-11-30 11:28

administrator   ~0097152

Branch CR28414 has been updated forcibly by skl.

SHA-1: 05acd7b3ff27b5f086fdf150204e04e8a72f7b59

git

2020-11-30 11:49

administrator   ~0097157

Branch CR28414 has been updated forcibly by skl.

SHA-1: 2f271272bc9a0b891641f40e065b5033f6809609

git

2020-12-01 11:21

administrator   ~0097188

Branch CR28414 has been updated forcibly by skl.

SHA-1: 1845b616e017458971d19fba0a48b344231bacd2

skl

2020-12-01 11:24

developer   ~0097189

For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

Result of tests:
http://vm-jenkins-test-12.nnov.opencascade.com:8080/view/CR28414-master-skl/view/COMPARE/

gka

2020-12-02 18:26

developer   ~0097252

Dear Sergey.

Could you please return previous formatting and add detail comments for new flag added for healing of toroidal faces and modified behavior.

git

2020-12-03 10:05

administrator   ~0097257

Branch CR28414 has been updated forcibly by skl.

SHA-1: 88f4030f0529b339d964d492b4fc69e14f6486c7

skl

2020-12-03 12:10

developer   ~0097263

Result of tests:
http://vm-jenkins-test-12.nnov.opencascade.com:8080/view/CR28414-master-skl/view/COMPARE/

gka

2020-12-04 12:47

developer   ~0097316

Dear Andrey.

Could you please review this fix.

msv

2022-01-18 17:56

developer   ~0106451

Last edited: 2022-03-24 14:27

Dear Andrey, please rebase the patch, review the source code and re-test it.

git

2022-04-06 19:08

administrator   ~0107668

Branch CR28414 has been updated by atereshi.

SHA-1: 5df2ff62a692fdee684db97f3c2e901732315c4e


Detailed log of new commits:

Author: atereshi
Date: Wed Apr 6 19:06:55 2022 +0300

    Merge remote-tracking branch 'origin/CR28414' into CR28414

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Fix + test.
    For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

git

2022-04-11 16:55

administrator   ~0107850

Branch CR28414_1 has been created by atereshi.

SHA-1: 5c8108bf05f31d2c34c7a4a8f84e1d1fea939593


Detailed log of new commits:

Author: atereshi
Date: Mon Apr 11 16:54:45 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Mon Apr 11 15:26:42 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Tue Apr 5 16:25:36 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Tue Apr 5 11:58:50 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Mon Apr 4 20:50:08 2022 +0300

    0028414: swap FixAddNaturalBound and FixOrientation

Author: atereshi
Date: Fri Apr 1 14:28:55 2022 +0300

    0028414: Code refactoring. Patch rollback.

git

2022-04-25 16:29

administrator   ~0108160

Branch CR28414_1 has been deleted by atereshi.

SHA-1: 5c8108bf05f31d2c34c7a4a8f84e1d1fea939593

git

2022-04-26 10:45

administrator   ~0108182

Branch CR28414_plus_32922 has been created by atereshi.

SHA-1: 95a26d73124d1bde9ffdbef7885dd93b8e8689ab


Detailed log of new commits:

Author: atereshi
Date: Tue Apr 26 10:45:37 2022 +0300

    fixed theMapWires.UnBind

Author: atereshi
Date: Tue Apr 26 10:07:02 2022 +0300

    code formating

Author: atereshi
Date: Tue Apr 26 09:20:45 2022 +0300

    code formating

Author: atereshi
Date: Tue Apr 5 11:58:50 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Tue Apr 5 16:25:36 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Mon Apr 11 15:26:42 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Mon Apr 11 16:54:45 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Fix + test.
    For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

Author: atereshi
Date: Fri Apr 1 14:28:55 2022 +0300

    0028414: Code refactoring. Patch rollback.

Author: atereshi
Date: Mon Apr 4 20:50:08 2022 +0300

    0028414: swap FixAddNaturalBound and FixOrientation

git

2022-04-27 11:55

administrator   ~0108218

Branch CR28414_plus_32922 has been updated by atereshi.

SHA-1: 7e9c06281d2e1b96ce927dc191f4ffe93707f60f


Detailed log of new commits:

Author: atereshi
Date: Wed Apr 27 11:54:45 2022 +0300

    if the face has seam edge then we ignore FixAddNaturalBound

git

2022-04-27 14:03

administrator   ~0108223

Branch CR28414_plus_32922 has been updated by atereshi.

SHA-1: 815a6671ab49b9362e4614223217532fa8beea53


Detailed log of new commits:

Author: atereshi
Date: Wed Apr 27 14:03:37 2022 +0300

    if the face has degenerated edge then we ignore FixAddNaturalBound

git

2022-06-28 12:07

administrator   ~0109330

Branch CR28414_plus_32922 has been deleted by atereshi.

SHA-1: 815a6671ab49b9362e4614223217532fa8beea53

git

2022-06-28 12:22

administrator   ~0109332

Branch CR28414 has been deleted by atereshi.

SHA-1: 5df2ff62a692fdee684db97f3c2e901732315c4e

git

2022-06-28 12:22

administrator   ~0109333

Branch CR28414 has been created by atereshi.

SHA-1: 3b22e93b786aebc7109d5e79d5570bb6fc6c08ee


Detailed log of new commits:

Author: atereshi
Date: Mon Apr 11 16:54:45 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Tue Apr 5 16:25:36 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Mon Apr 11 15:26:42 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Mon Apr 4 20:50:08 2022 +0300

    0028414: swap FixAddNaturalBound and FixOrientation

Author: atereshi
Date: Tue Apr 5 11:58:50 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Fri Apr 1 14:28:55 2022 +0300

    0028414: Code refactoring. Patch rollback.

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Fix + test.
    For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

git

2022-06-29 14:12

administrator   ~0109375

Branch CR28414_plus_32922 has been created by atereshi.

SHA-1: 815a6671ab49b9362e4614223217532fa8beea53


Detailed log of new commits:

Author: atereshi
Date: Wed Apr 27 14:03:37 2022 +0300

    if the face has degenerated edge then we ignore FixAddNaturalBound

Author: atereshi
Date: Wed Apr 27 11:54:45 2022 +0300

    if the face has seam edge then we ignore FixAddNaturalBound

Author: atereshi
Date: Tue Apr 26 10:45:37 2022 +0300

    fixed theMapWires.UnBind

Author: atereshi
Date: Tue Apr 26 10:07:02 2022 +0300

    code formating

Author: atereshi
Date: Tue Apr 26 09:20:45 2022 +0300

    code formating

Author: atereshi
Date: Tue Apr 5 11:58:50 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Tue Apr 5 16:25:36 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Mon Apr 11 15:26:42 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Mon Apr 11 16:54:45 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Fix + test.
    For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

Author: atereshi
Date: Fri Apr 1 14:28:55 2022 +0300

    0028414: Code refactoring. Patch rollback.

Author: atereshi
Date: Mon Apr 4 20:50:08 2022 +0300

    0028414: swap FixAddNaturalBound and FixOrientation

Author: atereshi
Date: Fri Apr 8 14:16:01 2022 +0300

    0032922:
    Problem: the complete surface of the torus is not stored correctly in STEP format due to the fact that the edges are not properly ordered.
    Change: added a mode for reordering edges in the wire with simultaneous use of 2d and 3d information (ShapeAnalysis_WireOrder). The new mode is used for torus-like surfaces before saving to STEP format.
     Result: Torus correctly stored.

git

2022-06-29 14:14

administrator   ~0109377

Branch CR28414_plus_32922 has been deleted by atereshi.

SHA-1: 815a6671ab49b9362e4614223217532fa8beea53

git

2022-06-29 14:17

administrator   ~0109378

Branch CR28414 has been deleted by atereshi.

SHA-1: 3b22e93b786aebc7109d5e79d5570bb6fc6c08ee

git

2022-06-29 14:38

administrator   ~0109380

Branch CR28414_1 has been created by atereshi.

SHA-1: 5c8108bf05f31d2c34c7a4a8f84e1d1fea939593


Detailed log of new commits:

Author: atereshi
Date: Mon Apr 11 16:54:45 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Mon Apr 11 15:26:42 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Tue Apr 5 16:25:36 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Tue Apr 5 11:58:50 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Mon Apr 4 20:50:08 2022 +0300

    0028414: swap FixAddNaturalBound and FixOrientation

Author: atereshi
Date: Fri Apr 1 14:28:55 2022 +0300

    0028414: Code refactoring. Patch rollback.

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Fix + test.
    For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

git

2022-06-29 14:39

administrator   ~0109381

Branch CR28414_plus_32922 has been created by atereshi.

SHA-1: 815a6671ab49b9362e4614223217532fa8beea53


Detailed log of new commits:

Author: atereshi
Date: Wed Apr 27 14:03:37 2022 +0300

    if the face has degenerated edge then we ignore FixAddNaturalBound

Author: atereshi
Date: Wed Apr 27 11:54:45 2022 +0300

    if the face has seam edge then we ignore FixAddNaturalBound

Author: atereshi
Date: Tue Apr 26 10:45:37 2022 +0300

    fixed theMapWires.UnBind

Author: atereshi
Date: Tue Apr 26 10:07:02 2022 +0300

    code formating

Author: atereshi
Date: Tue Apr 26 09:20:45 2022 +0300

    code formating

Author: atereshi
Date: Tue Apr 5 11:58:50 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Tue Apr 5 16:25:36 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Mon Apr 11 15:26:42 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Mon Apr 11 16:54:45 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Fix + test.
    For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

Author: atereshi
Date: Fri Apr 1 14:28:55 2022 +0300

    0028414: Code refactoring. Patch rollback.

Author: atereshi
Date: Mon Apr 4 20:50:08 2022 +0300

    0028414: swap FixAddNaturalBound and FixOrientation

Author: atereshi
Date: Fri Apr 8 14:16:01 2022 +0300

    0032922:
    Problem: the complete surface of the torus is not stored correctly in STEP format due to the fact that the edges are not properly ordered.
    Change: added a mode for reordering edges in the wire with simultaneous use of 2d and 3d information (ShapeAnalysis_WireOrder). The new mode is used for torus-like surfaces before saving to STEP format.
     Result: Torus correctly stored.

git

2022-06-29 14:43

administrator   ~0109382

Branch CR28414_1 has been deleted by atereshi.

SHA-1: 5c8108bf05f31d2c34c7a4a8f84e1d1fea939593

git

2022-06-29 14:46

administrator   ~0109383

Branch CR28414_plus_32922 has been deleted by atereshi.

SHA-1: 815a6671ab49b9362e4614223217532fa8beea53

git

2022-06-29 15:10

administrator   ~0109384

Branch CR28414 has been created by atereshi.

SHA-1: 0b656ac97b77440e26e2ef66f00daa946bb20be0


Detailed log of new commits:

Author: atereshi
Date: Wed Apr 27 14:03:37 2022 +0300

    if the face has degenerated edge then we ignore FixAddNaturalBound

Author: atereshi
Date: Wed Apr 27 11:54:45 2022 +0300

    if the face has seam edge then we ignore FixAddNaturalBound

Author: atereshi
Date: Tue Apr 26 10:45:37 2022 +0300

    fixed theMapWires.UnBind

Author: atereshi
Date: Tue Apr 26 10:07:02 2022 +0300

    code formating

Author: atereshi
Date: Tue Apr 26 09:20:45 2022 +0300

    code formating

Author: atereshi
Date: Mon Apr 11 15:26:42 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Mon Apr 11 16:54:45 2022 +0300

    0032922: Some refactoring. Added extra analysis in UV-space for toroidal surface.

Author: atereshi
Date: Tue Apr 5 16:25:36 2022 +0300

    0028414: some refactoring

Author: atereshi
Date: Mon Apr 4 20:50:08 2022 +0300

    0028414: swap FixAddNaturalBound and FixOrientation

Author: atereshi
Date: Tue Apr 5 11:58:50 2022 +0300

    0028414: some refactoring

Author: skl
Date: Wed Nov 18 11:25:19 2020 +0300

    0028414: Data Exchange - Step entity not correctly read
    
    Fix + test.
    For entity FACE_BOUND if surface is torus and orientation is True temporary natural bound is created. Later in the ShapeFix_Face this bound is removed but special flag myTorusReverseFlag is activated. Value of this flag is used for decision what part of torus must be used.

Author: atereshi
Date: Fri Apr 1 14:28:55 2022 +0300

    0028414: Code refactoring. Patch rollback.

git

2022-07-01 09:28

administrator   ~0109434

Branch CR28414 has been updated by atereshi.

SHA-1: 35af3fe38fb85d12cd0a89bd983433a351129223


Detailed log of new commits:

Author: atereshi
Date: Fri Jul 1 09:28:16 2022 +0300

    // changed the classification method of the wire from PerformInfinitePoint() to IsOuterBound()

git

2022-07-05 12:30

administrator   ~0109562

Branch CR28414 has been updated by atereshi.

SHA-1: 063450c1ec9fffed836f73f75a170678c24ba622


Detailed log of new commits:

Author: atereshi
Date: Tue Jul 5 12:30:20 2022 +0300

    // changed the classification method of the wire to mix

git

2022-07-07 11:14

administrator   ~0109661

Branch CR28414 has been updated by atereshi.

SHA-1: 080331d74ef254b15fe16b5943ac363b2e033bf9


Detailed log of new commits:

Author: atereshi
Date: Thu Jul 7 11:12:29 2022 +0300

    // turned off FixAddNaturalBoundMode for some tests

git

2022-07-11 12:54

administrator   ~0109753

Branch CR28414 has been updated forcibly by atereshi.

SHA-1: 03a6e0faac7d0039df331a81866ce7c0a727f1c3

git

2022-07-12 11:05

administrator   ~0109771

Branch CR28414 has been updated by atereshi.

SHA-1: 379d5d48ac4a0bca567115f3266bf08ee7f931d8


Detailed log of new commits:

Author: atereshi
Date: Tue Jul 12 11:03:30 2022 +0300

    // turned off FixAddNaturalBoundMode for some tests

git

2022-07-12 14:12

administrator   ~0109779

Branch CR28414_0 has been created by atereshi.

SHA-1: 4595dcc98eabe285e7721fd957ef4a68a413a922


Detailed log of new commits:

Author: atereshi
Date: Tue Jul 12 13:46:54 2022 +0300

    0028414: Data Exchange, STEP - Face on a closed surface with single inner wire and without natural bound not correctly read
    
    Problem: From the point of view of the STEP format (and others), it is allowed to describe a face on a surface with natural boundaries (torus, sphere) without specifying these boundaries. Thus, a face on a closed surface and containing an inner wire (or several) is correctly defined and describes a face with a cutout defined by this wire. At the same time, there is a function (ShapeFix_Face::FixOrientation) in the ShapeHealing procedure that corrects the orientation of the wires and it starts before the function of adding natural boundaries (ShapeFix_Face::FixAddNaturalBound). There are many shapes that have incorrectly oriented wires and this procedure successfully heals them, but on a correctly specified face with single inner wire on closed surface, we do not get the entire surface with a cutout, but a part of the surface defined by the wire. This fix is intended to resolve this ambiguity.
    Change: 1. The FixOrientation function has been completely redesigned in order to simplify and unify the analysis algorithm. New conditions have been added to the FixAddNaturalBound function when it is not necessary to add boundaries. 2. The function calls were swapped. Because this order is natural and removes mutual dependence. 3. A new AddNaturalBoundIgnoreSingleInnerWire flag has been added to the ShapeFix procedure option, which means "do not add natural boundaries to the face with single inner wire". This flag is disabled by default. 4. For tests in which one wire was incorrectly oriented on a closed surface, this flag was enabled. 5. Test with cutout from torus was created: bugs step bug28414.
    Result: The ambiguity in the interpretation of the inner wire has been corrected. By default, it is correct to add natural boundaries, because this case is correct from the point of view of the STEP format and others.

atereshi

2022-07-13 11:58

developer   ~0109795

Dear @msv,
The branch CR28414_0 is ready for review.

msv

2022-08-02 16:11

developer   ~0110113

occt-products:
tests/cr/standard/E2
20: it is not good idea to write temporary files to the directory of source file. First, you should declare imagedir as global variable. And if it does not exist set it to ".".

occt:
tests/bugs/step/bug28414
empty file

In some tests the following comment is incorrect, because shape healing is not turned off.
# Generating resource file where all shape healing is off

Why did you change the usage of the array "env" to "::env" in tests/bugs/step/bug32922 and tests/bugs/step/bug5708?
I do not like the copy-paste of the same quite large Tcl code in many tests. It is better to localize it in a 'begin' file.
Also, it is not good to copy the contents of the whole resource file in the Tcl script and make only several modifications in it. It is better to organize file parsing and copying with modification filter. In such way it will be evident which parameters are changed.

src/ShapeProcess/ShapeProcess_OperLibrary.cxx
738: It is more natural using ctx->BooleanVal without any casting.

src/ShapeFix/ShapeFix_Face.hxx
106: "faces that has" => "faces that have"

src/ShapeFix/ShapeFix_Face.lxx
47: incorrect name

src/ShapeFix/ShapeFix_Face.cxx
819: here and in other places where you cast a shape use const& for the result variable to avoid copying.
1337,1564: calling Append destroys aNonOrientedWires, so you lose them in the result.
1342: no need to clear, it's been just created.
1358: I think checking of the condition "anIntMapWires.Size() == 1" is not needed here. For single inner wire It is enough to check "nbOriented == 1".
1571: transformation => modification
1585: for such large cycle please rename the iteration variable to something meaningful.
1678: nbNotSmall => nbOriented

Please make wrapping of lines in proper places of the commit message to make it structured.

git

2022-08-10 10:23

administrator   ~0110160

Branch CR28414_0 has been updated forcibly by atereshi.

SHA-1: 0489726a5a72aeb6f9bbeb6291a2aba5a16ded4b

git

2022-09-06 18:46

administrator   ~0110768

Branch CR28414_0 has been updated forcibly by atereshi.

SHA-1: 972390494a4ccbf4cc4a3bd37b5c18000e84c7c3

git

2022-09-07 18:43

administrator   ~0110834

Branch CR28414_0 has been updated by atereshi.

SHA-1: 3d1dd1c20351f2044a42c9610e8f55e3b009ab87


Detailed log of new commits:

Author: atereshi
Date: Wed Sep 7 18:43:06 2022 +0300

    // fix error

Author: atereshi
Date: Tue Sep 6 19:03:52 2022 +0300

    // AddNaturalBoundIgnoreSingleInnerWire = 1 -> FixAddNaturalBoundMode = 0

git

2022-09-08 13:03

administrator   ~0110859

Branch CR28414_0 has been updated by atereshi.

SHA-1: bbe280de0389d9d4e333a760d67607a2835b0084


Detailed log of new commits:

Author: atereshi
Date: Thu Sep 8 13:03:23 2022 +0300

    // the bug 24055 does not need any intervention

git

2022-09-08 16:56

administrator   ~0110880

Branch CR28414_0 has been updated forcibly by atereshi.

SHA-1: 718b64a06a8e3831c6b847241ab9088f94d99f2d

atereshi

2022-09-09 11:42

developer   ~0110897

Galina,

I've finish with this issue. There is no need to include a new flag (as we agreed earlier). And regulation of tests that have degraded is carried out using FixAddNaturalBoundMode flag.
Such tests are:
bugs modalg_7 bug30273
bugs xde bug6283
de iges_1 G8
de iges_1 J9
de step_1 E1
de step_1 E2
de step_1 G9
de step_2 B3
de step_2 Q5
de step_2 Q6
de step_3 B9
de step_3 C8
de step_3 E4

Some tests have image difference:
de step_1 J6 - The problem is that the wire was initially set incorrectly (see Fig.) and because of the change in the order of FixOrientation and FixAddNaturalBound call, the wire has changed.
bugs step bug24055 - There is no problem. The new image is correct - I have checked it with SolidWorks. On all closed surfaces (with one hole, with two holes, without holes) we need to add natural bound. The clockwise orientation of the wires is correct. On master branch we reverse wires on faces with one hole.
de_step_1_J6_1.png (24,569 bytes)

gka

2022-09-19 15:03

developer   ~0111149

Andrey.

Could you please provide results of analysis for each case of regression

git

2022-09-20 11:48

administrator   ~0111154

Branch CR28414_1 has been created by atereshi.

SHA-1: 291d13113306987e0f74390bc97838cae86b806b


Detailed log of new commits:

Author: atereshi
Date: Tue Sep 20 11:48:14 2022 +0300

    // Change the ignoring wire reversing if-condition in FixOrientation. The torus test was added.

atereshi

2022-09-20 15:04

developer   ~0111158

test de iges_1 G8
OCCT model has inverted torus at the interface of the disc and flange
SW model looks correct

atereshi

2022-09-20 15:05

developer   ~0111159

test de iges_1 J9
Both models have inverted torus

atereshi

2022-09-21 11:18

developer   ~0111167

Summary comparison table for problem tests
torus_problem.docx (1,694,818 bytes)

git

2022-09-22 16:31

administrator   ~0111190

Branch CR28414_1 has been updated by atereshi.

SHA-1: 1b731c018b30733ae3d425bdd4ab32cba36808dd


Detailed log of new commits:

Author: atereshi
Date: Thu Sep 22 16:25:55 2022 +0300

    // Added the exclusions for spherical surfaces

git

2022-09-23 18:02

administrator   ~0111233

Branch CR28414_1 has been updated by atereshi.

SHA-1: 5e3c51bbfe26e03360d09b7432cb435972f11bcc


Detailed log of new commits:

Author: atereshi
Date: Fri Sep 23 17:09:25 2022 +0300

    // corrected the test with bad model

git

2022-09-26 13:09

administrator   ~0111268

Branch CR28414_1 has been updated forcibly by atereshi.

SHA-1: 6d722aabb130591c1df51d550edbca22a1e2906c

git

2022-09-27 11:57

administrator   ~0111275

Branch CR28414_1 has been updated forcibly by atereshi.

SHA-1: 83fad7ca0ddbddb40185fddbfa19c46f9b2badaf

atereshi

2022-09-29 12:40

developer   ~0111308

torus_problem-2.docx (2,064,659 bytes)

atereshi

2022-10-05 12:25

developer   ~0111398

Galina,
Actual branch to review is CR28414_1.

git

2022-10-07 11:11

administrator   ~0111426

Branch CR28414_1 has been updated forcibly by atereshi.

SHA-1: 918f1a26eba782f47da3ab5a6190cef7917a9727

gka

2022-10-07 11:55

developer   ~0111430

Branch CR28414_1 has been reviewed

smoskvin

2022-11-01 15:10

administrator   ~0111814

IMPROVEMENT in test sat write bug28868_3
http://occt-tests/CR28414-master-atereshi-Products/Windows-64-VC14/sat/write/bug28868_3.html

atereshi

2022-11-01 15:34

developer   ~0111816

One of issure described in TODO didn't occur anymore. I removed it.

gka

2022-11-01 17:33

developer   ~0111824

Branch CR28414_1 has been reviewed

git

2022-11-02 13:52

administrator   ~0111848

Branch CR28414 has been deleted by mnt.

SHA-1: 379d5d48ac4a0bca567115f3266bf08ee7f931d8

git

2022-11-02 13:52

administrator   ~0111849

Branch CR28414_0 has been deleted by mnt.

SHA-1: 718b64a06a8e3831c6b847241ab9088f94d99f2d

git

2022-11-02 13:52

administrator   ~0111850

Branch CR28414_1 has been deleted by mnt.

SHA-1: 918f1a26eba782f47da3ab5a6190cef7917a9727

Related Changesets

occt-products: master 69c19f64

2022-07-07 11:13:51

atereshi


Committer: smoskvin Details Diff
0028414: Data Exchange, STEP - Face on a closed surface with single inner wire and without natural bound not correctly read Affected Issues
0028414
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - tests/parasolid/read/C8 Diff File
mod - tests/sat/doc_1/H7 Diff File
mod - tests/sat/doc_6/D6 Diff File
mod - tests/sat/write/bug28868_3 Diff File

occt: master a453f9d1

2022-09-20 11:48:14

atereshi


Committer: smoskvin Details Diff
0028414: Data Exchange, STEP - Face on a closed surface with single inner wire and without natural bound not correctly read

Problem: From the point of view of the STEP format (and others), it is allowed
to describe a face on a surface with natural boundaries (torus, sphere) without
specifying these boundaries. Thus, a face on a closed surface and containing
an inner wire (or several) is correctly defined and describes a face with a
cutout defined by this wire. At the same time, there is a function
(ShapeFix_Face::FixOrientation) in the ShapeHealing procedure that corrects the
orientation of the wires, and it starts before the function of adding natural
boundaries (ShapeFix_Face::FixAddNaturalBound). There are many shapes that have
incorrectly oriented wires and this procedure successfully heals them, but on a
correctly specified face with single inner wire on closed surface, we do not get
the entire surface with a cutout, but a part of the surface defined by the wire.
This fix is intended to resolve this ambiguity.

Change:
1. Added function isNeedAddNaturalBound that returns TRUE if face needs to add
natural bounds.
2. Corrected condition in FixOrientation to ignoring faces that needs to add
natural bounds.
3. For tests in which one wire was incorrectly oriented on a closed surface,
flag AddNaturalBound was disabled.
5. Test with cutout from torus was created: bugs step bug28414.

Result: By default, it is correct to add natural boundaries, because this case
is correct from the point of view of the STEP format and others.
Affected Issues
0028414
mod - src/ShapeFix/ShapeFix_Face.cxx Diff File
mod - src/ShapeFix/ShapeFix_Face.hxx Diff File
mod - tests/bugs/begin Diff File
mod - tests/bugs/modalg_7/bug30273 Diff File
add - tests/bugs/step/bug28414 Diff File
mod - tests/bugs/step/bug32922 Diff File
mod - tests/bugs/xde/bug6283 Diff File
mod - tests/de/begin Diff File
mod - tests/de/end Diff File
mod - tests/de/iges_1/G8 Diff File
mod - tests/de/iges_1/J9 Diff File
mod - tests/de/step_1/E1 Diff File
mod - tests/de/step_1/E2 Diff File
mod - tests/de/step_1/G9 Diff File
mod - tests/de/step_1/J6 Diff File
mod - tests/de/step_2/B3 Diff File
mod - tests/de/step_2/Q5 Diff File
mod - tests/de/step_2/Q6 Diff File
mod - tests/de/step_3/B9 Diff File
mod - tests/de/step_3/C8 Diff File
mod - tests/de/step_3/E4 Diff File

Issue History

Date Modified Username Field Change
2017-01-30 19:28 gdw New Issue
2017-01-30 19:28 gdw Assigned To => san
2017-01-30 19:28 gdw File Added: StepBug.zip
2017-01-30 19:36 san Assigned To san => gka
2017-01-30 19:36 san Category PRODUCTS:Volume Rendering => OCCT:Data Exchange
2017-01-31 09:47 abv Note Added: 0063235
2017-08-30 14:57 mkv Test case number => bugs step bug28414
2017-10-02 15:45 apv Test case number bugs step bug28414 => Not required
2018-01-02 12:25 gdw Note Added: 0073218
2018-01-04 04:34 eryar Note Added: 0073228
2018-04-28 12:56 gdw File Added: bug_tore.stp
2018-04-28 12:56 gdw Note Added: 0075740
2018-05-01 17:33 gdw File Added: Capture d’écran 2018-05-01 à 16.32.27.png
2018-05-01 17:34 gdw File Added: Capture d’écran 2018-05-01 à 16.32.54.png
2018-05-01 17:39 gdw Note Added: 0075755
2018-05-12 10:52 gdw Note Added: 0075949
2018-05-18 08:16 gdw Note Added: 0076020
2018-05-26 21:10 abv Target Version => 7.4.0
2018-05-26 21:10 abv Relationship added related to 0029564
2018-08-19 13:14 gdw Note Added: 0078684
2019-09-04 15:36 abv Target Version 7.4.0 => 7.5.0
2020-09-17 19:49 gka Target Version 7.5.0 => 7.6.0
2020-11-12 13:54 szy Assigned To gka => skl
2020-11-12 13:54 szy Status new => assigned
2020-11-18 11:25 git Note Added: 0096872
2020-11-18 11:40 kgv Summary Step entity not correctly read. => Data Exchange - Step entity not correctly read
2020-11-18 17:20 git Note Added: 0096888
2020-11-21 06:56 git Note Added: 0096926
2020-11-22 08:49 git Note Added: 0096991
2020-11-23 17:46 git Note Added: 0097012
2020-11-24 07:52 git Note Added: 0097019
2020-11-24 15:14 git Note Added: 0097031
2020-11-27 11:23 skl File Added: bug28414.stp
2020-11-27 11:25 skl Note Added: 0097105
2020-11-27 11:32 git Note Added: 0097106
2020-11-30 09:41 git Note Added: 0097147
2020-11-30 09:51 git Note Added: 0097148
2020-11-30 11:28 git Note Added: 0097152
2020-11-30 11:49 git Note Added: 0097157
2020-12-01 11:21 git Note Added: 0097188
2020-12-01 11:24 skl Note Added: 0097189
2020-12-01 11:24 skl Assigned To skl => gka
2020-12-01 11:24 skl Status assigned => resolved
2020-12-01 11:24 skl Steps to Reproduce Updated
2020-12-02 18:26 gka Note Added: 0097252
2020-12-02 18:26 gka Assigned To gka => skl
2020-12-02 18:26 gka Status resolved => assigned
2020-12-03 10:05 git Note Added: 0097257
2020-12-03 12:10 skl Note Added: 0097263
2020-12-03 12:10 skl Assigned To skl => gka
2020-12-03 12:10 skl Status assigned => resolved
2020-12-04 12:47 gka Note Added: 0097316
2020-12-04 12:47 gka Assigned To gka => abv
2020-12-04 12:47 gka Status resolved => assigned
2020-12-04 12:48 gka Assigned To abv => gka
2020-12-04 12:48 gka Status assigned => resolved
2020-12-09 13:49 abv Assigned To gka => abv
2020-12-12 07:45 abv Relationship added related to 0027722
2021-11-01 18:16 szy Target Version 7.6.0 => 7.7.0
2022-01-18 17:54 msv Assigned To abv => ssafarov
2022-01-18 17:54 msv Status resolved => assigned
2022-01-18 17:56 msv Note Added: 0106451
2022-03-24 14:26 msv Assigned To ssafarov => atereshi
2022-03-24 14:27 msv Note Edited: 0106451
2022-04-06 19:08 git Note Added: 0107668
2022-04-11 16:55 git Note Added: 0107850
2022-04-25 16:29 git Note Added: 0108160
2022-04-26 10:45 git Note Added: 0108182
2022-04-27 11:55 git Note Added: 0108218
2022-04-27 14:03 git Note Added: 0108223
2022-06-28 12:07 git Note Added: 0109330
2022-06-28 12:22 git Note Added: 0109332
2022-06-28 12:22 git Note Added: 0109333
2022-06-29 14:12 git Note Added: 0109375
2022-06-29 14:14 git Note Added: 0109377
2022-06-29 14:17 git Note Added: 0109378
2022-06-29 14:38 git Note Added: 0109380
2022-06-29 14:39 git Note Added: 0109381
2022-06-29 14:43 git Note Added: 0109382
2022-06-29 14:46 git Note Added: 0109383
2022-06-29 15:10 git Note Added: 0109384
2022-07-01 09:28 git Note Added: 0109434
2022-07-05 12:30 git Note Added: 0109562
2022-07-07 11:14 git Note Added: 0109661
2022-07-11 12:54 git Note Added: 0109753
2022-07-12 11:05 git Note Added: 0109771
2022-07-12 14:12 git Note Added: 0109779
2022-07-13 11:58 atereshi Note Added: 0109795
2022-07-13 11:59 atereshi Assigned To atereshi => msv
2022-07-13 11:59 atereshi Status assigned => resolved
2022-08-02 16:11 msv Note Added: 0110113
2022-08-02 16:11 msv Assigned To msv => atereshi
2022-08-02 16:11 msv Status resolved => assigned
2022-08-10 10:23 git Note Added: 0110160
2022-09-06 18:46 git Note Added: 0110768
2022-09-07 18:43 git Note Added: 0110834
2022-09-08 13:03 git Note Added: 0110859
2022-09-08 16:56 git Note Added: 0110880
2022-09-09 11:42 atereshi Note Added: 0110897
2022-09-09 11:42 atereshi File Added: de_step_1_J6_1.png
2022-09-09 11:42 atereshi Assigned To atereshi => gka
2022-09-09 11:42 atereshi Status assigned => resolved
2022-09-19 15:03 gka Assigned To gka => atereshi
2022-09-19 15:03 gka Status resolved => assigned
2022-09-19 15:03 gka Note Added: 0111149
2022-09-20 11:48 git Note Added: 0111154
2022-09-20 15:04 atereshi Note Added: 0111158
2022-09-20 15:04 atereshi File Added: 3D_OCCT_de_iges_1_G8.png
2022-09-20 15:04 atereshi File Added: 3D_SW_de_iges_1_G8.png
2022-09-20 15:05 atereshi Note Added: 0111159
2022-09-20 15:05 atereshi File Added: 3D_OCCT_de_iges_1_J9.png
2022-09-20 15:05 atereshi File Added: 3D_SW_de_iges_1_J9.png
2022-09-21 11:14 atereshi File Deleted: 3D_SW_de_iges_1_J9.png
2022-09-21 11:14 atereshi File Deleted: 3D_OCCT_de_iges_1_J9.png
2022-09-21 11:14 atereshi File Deleted: 3D_SW_de_iges_1_G8.png
2022-09-21 11:15 atereshi File Deleted: 3D_OCCT_de_iges_1_G8.png
2022-09-21 11:18 atereshi Note Added: 0111167
2022-09-21 11:18 atereshi File Added: torus_problem.docx
2022-09-22 16:31 git Note Added: 0111190
2022-09-23 18:02 git Note Added: 0111233
2022-09-26 13:09 git Note Added: 0111268
2022-09-27 11:57 git Note Added: 0111275
2022-09-29 12:40 atereshi Note Added: 0111308
2022-09-29 12:40 atereshi File Added: torus_problem-2.docx
2022-10-05 12:25 atereshi Assigned To atereshi => gka
2022-10-05 12:25 atereshi Status assigned => resolved
2022-10-05 12:25 atereshi Note Added: 0111398
2022-10-07 11:11 git Note Added: 0111426
2022-10-07 11:55 gka Assigned To gka => bugmaster
2022-10-07 11:55 gka Status resolved => reviewed
2022-10-07 11:55 gka Note Added: 0111430
2022-11-01 15:10 smoskvin Assigned To bugmaster => atereshi
2022-11-01 15:10 smoskvin Status reviewed => assigned
2022-11-01 15:10 smoskvin Note Added: 0111814
2022-11-01 15:34 atereshi Note Added: 0111816
2022-11-01 15:34 atereshi Assigned To atereshi => gka
2022-11-01 15:34 atereshi Status assigned => resolved
2022-11-01 17:33 gka Assigned To gka => bugmaster
2022-11-01 17:33 gka Status resolved => reviewed
2022-11-01 17:33 gka Note Added: 0111824
2022-11-02 13:39 smoskvin Status reviewed => tested
2022-11-02 13:46 smoskvin Changeset attached => occt master a453f9d1
2022-11-02 13:46 atereshi Assigned To bugmaster => atereshi
2022-11-02 13:46 atereshi Status tested => verified
2022-11-02 13:46 atereshi Resolution open => fixed
2022-11-02 13:52 git Note Added: 0111848
2022-11-02 13:52 git Note Added: 0111849
2022-11-02 13:52 git Note Added: 0111850
2022-11-20 22:08 smoskvin Changeset attached => occt-products master 69c19f64
2022-11-30 17:05 dpasukhi Relationship added related to 0033221
2022-11-30 17:10 dpasukhi Relationship added related to 0028024
2023-03-19 23:02 vglukhik Status verified => closed
2023-03-19 23:02 vglukhik Fixed in Version => 7.7.0
2023-05-17 19:21 dpasukhi Relationship added related to 0033386