1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-26 11:05:31 +03:00

0026251: Section curve cannot be found

Current algorithm ignores found triangles intersection (IntPolyh_PMaillageAffinage) and, consequently, cannot find start point for intersection line. Branch fixes this problem.

Test case for issue CR26251
This commit is contained in:
nbv 2015-09-01 10:39:43 +03:00 committed by abv
parent af6b493fc9
commit 32b95ded37
3 changed files with 47 additions and 4 deletions

View File

@ -88,7 +88,7 @@ void IntPolyh_Intersection::Perform() {
isAdvDone = PerformAdv(aPMaillageFF,aPMaillageFR,aPMaillageRF,aPMaillageRR,nbCouplesAdv);
// advanced interference found
if(isAdvDone && nbCouplesAdv > 10) {
if(isAdvDone && nbCouplesAdv > 0) {
aPMaillageFF->StartPointsChain(TSectionLines,TTangentZones);
aPMaillageFR->StartPointsChain(TSectionLines,TTangentZones);
aPMaillageRF->StartPointsChain(TSectionLines,TTangentZones);

View File

@ -85,7 +85,7 @@ void IntPolyh_Intersection::Perform(const TColStd_Array1OfReal& Upars1,
aPMaillageRR,nbCouplesAdv);
// advanced interference found
if(isAdvDone && nbCouplesAdv > 10) {
if(isAdvDone && nbCouplesAdv > 0) {
aPMaillageFF->StartPointsChain(TSectionLines,TTangentZones);
aPMaillageFR->StartPointsChain(TSectionLines,TTangentZones);
aPMaillageRF->StartPointsChain(TSectionLines,TTangentZones);
@ -169,7 +169,7 @@ Standard_Boolean IntPolyh_Intersection::PerformMaillage(const Standard_Boolean i
(FinTTC >= theMaillageS->GetArrayOfTriangles(1).NbTriangles() ||
FinTTC >= theMaillageS->GetArrayOfTriangles(2).NbTriangles()) ) {
return Standard_False;
}
}
*/
//IFV test for parallel surf
if(FinTTC > 200) {
@ -248,7 +248,7 @@ Standard_Boolean IntPolyh_Intersection::PerformMaillage(const TColStd_Array1OfRe
(FinTTC >= theMaillageS->GetArrayOfTriangles(1).NbTriangles() ||
FinTTC >= theMaillageS->GetArrayOfTriangles(2).NbTriangles()) ) {
return Standard_False;
}
}
*/
//IFV test for parallel surf
if(FinTTC > 200) {

43
tests/bugs/modalg_6/bug26251 Executable file
View File

@ -0,0 +1,43 @@
puts "============"
puts "OCC26251"
puts "============"
puts ""
###############################
## Section curve cannot be found
###############################
restore [locate_data_file bug26251_b31_3.brep] b1
restore [locate_data_file bug26251_tank31.brep] b2
bsection result b1 b2
set length 2.49934
set nbshapes_expected "
Number of shapes in shape
VERTEX : 3
EDGE : 2
WIRE : 0
FACE : 0
SHELL : 0
SOLID : 0
COMPSOLID : 0
COMPOUND : 1
SHAPE : 6
"
checknbshapes result -ref ${nbshapes_expected} -t -m "Section curve"
explode b2 f
copy b2_5 b2
set NbCurves 0
set log [bopcurves b1 b2 -2d]
regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurves
if {$NbCurves == 0} {
puts "Error: Intersection curve is not found"
}
set 3dviewer 1