Archived issue #0029351
Boolean Operations create invalid pcurves
Description
This problem is reproduced only for branch CR26570_1, which has new checking for edge: checking the correspondence between the edge range and actual curve first/last parameters.
Tests bugs modalg_4 bug697_1 and bug697_5 failed because of new diagnostic:
checkshape result
On Shape faulty_1 :
BRepCheck_UnorientableShape
Shape faulty_2 on shape faulty_1 :
BRepCheck_InvalidRange
Faulty shapes in variables faulty_1 to faulty_2
Tests bugs modalg_4 bug697_1 and bug697_5 failed because of new diagnostic:
checkshape result
On Shape faulty_1 :
BRepCheck_UnorientableShape
Shape faulty_2 on shape faulty_1 :
BRepCheck_InvalidRange
Faulty shapes in variables faulty_1 to faulty_2
Steps to reproduce
Run tests
bugs modalg_4 bug697_1
bugs modalg_4 bug697_5
Result:
CASE bugs modalg_4 bug697_1: FAILED (bad shape)
CASE bugs modalg_4 bug697_5: FAILED (bad shape)
bugs modalg_4 bug697_1
bugs modalg_4 bug697_5
Result:
CASE bugs modalg_4 bug697_1: FAILED (bad shape)
CASE bugs modalg_4 bug697_5: FAILED (bad shape)
Public activity
11 archived notes
Participants are labeled by their role within this record.
In both reported cases the same shapes are used, so the failing pair of edge/face is also the same. After short analysis I have found that the invalid pcurve has been produced by the projection algorithm:
The possible reason of this is that the part of the curve in the range 0, 3.79967069842725e-007 is out of the surface and cannot be projected.
So, the possible solution should be in applying the GeomLib::SameRange function to the produced 2d curve.
test bugs modalg_4 bug697_1 don faulty_1 faulty_2 fit mksurface surf faulty_1 mkcurve c3d faulty_2 project c2d c3d surf dump c3d # Parameters : 0 83.6892332611767 dump c2d # Knots : # 1 : 3.79967069842725e-007 14 # 2 : 11.2766829186747 12 # 3 : 32.7138459456005 12 # 4 : 46.0729431055823 12 # 5 : 83.6892332611767 14
The possible reason of this is that the part of the curve in the range 0, 3.79967069842725e-007 is out of the surface and cannot be projected.
So, the possible solution should be in applying the GeomLib::SameRange function to the produced 2d curve.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Tue Dec 5 14:22:22 2017 +0300
0029351: Boolean Operations create invalid pcurves
When making pcurve for edge on face make sure that the produced 2D curve will have the same range with 3D curve of the edge.
Author: Author
Date: Mon Nov 27 16:56:52 2017 +0300
0026570: Crash on attempt to rotate a shape
New check of edge range is added in BRepCheck/BRepCheck_Edge.cxx
The same checking is added in ShapeAnalysis_Edge.cxx
Fixing this problem is added in ShapeFix_Wire.cxx
GeomLib::SameRange(...) and BRepTools_TrsfModification::NewCurve2d(...) are modified to avoid exception in TrimmedCurve
Test case added
Author: vro
Date: Wed Aug 19 10:25:11 2015 +0300
0026570: Crash on attempt to rotate a shape.
An extended draw-command trotate (ttranslate, tmirror, ...) by an additional parameter "-copy".
[revision removed]
Detailed log of new commits:
Author: emv
Date: Tue Dec 5 14:22:22 2017 +0300
0029351: Boolean Operations create invalid pcurves
When making pcurve for edge on face make sure that the produced 2D curve will have the same range with 3D curve of the edge.
Author: Author
Date: Mon Nov 27 16:56:52 2017 +0300
0026570: Crash on attempt to rotate a shape
New check of edge range is added in BRepCheck/BRepCheck_Edge.cxx
The same checking is added in ShapeAnalysis_Edge.cxx
Fixing this problem is added in ShapeFix_Wire.cxx
GeomLib::SameRange(...) and BRepTools_TrsfModification::NewCurve2d(...) are modified to avoid exception in TrimmedCurve
Test case added
Author: vro
Date: Wed Aug 19 10:25:11 2015 +0300
0026570: Crash on attempt to rotate a shape.
An extended draw-command trotate (ttranslate, tmirror, ...) by an additional parameter "-copy".
The branch should be tested on the base of #0026570.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Dear Mikhail, could you please review the git branch CR29351?
Please note, that it is based on the CR26570_1, thus Jenkins results at http://jenkins-test-10.nnov.opencascade.com:8080/view/CR29351-master-emv/view/COMPARE/ can be used for both #0029351 and #26570 patches.
Please note, that it is based on the CR26570_1, thus Jenkins results at http://jenkins-test-10.nnov.opencascade.com:8080/view/CR29351-master-emv/view/COMPARE/ can be used for both #0029351 and #26570 patches.
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Thu Dec 7 15:50:17 2017 +0300
# Small correction of comment.
[revision removed]
Detailed log of new commits:
Author: emv
Date: Thu Dec 7 15:50:17 2017 +0300
# Small correction of comment.
Reviewed.
Combination -
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested on optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18509.279999999697 / 18469.379999999688 [+0.22%]
Products
Total CPU difference: 7454.58000000001 / 7457.620000000003 [-0.04%]
Windows-64-VC10:
OCCT
Total CPU difference: 17847.2476046987 / 17828.96428749855 [+0.10%]
Products
Total CPU difference: 8020.183011099955 / 8009.6685436999705 [+0.13%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
OCCT branch : [archived branch] SHA - [revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested on optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18509.279999999697 / 18469.379999999688 [+0.22%]
Products
Total CPU difference: 7454.58000000001 / 7457.620000000003 [-0.04%]
Windows-64-VC10:
OCCT
Total CPU difference: 17847.2476046987 / 17828.96428749855 [+0.10%]
Products
Total CPU difference: 8020.183011099955 / 8009.6685436999705 [+0.13%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]