mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-04 18:06:22 +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 Modified test case Small correction of test case for issue CR26251
This commit is contained in:
parent
27f850863b
commit
4b0cab06c1
@ -89,7 +89,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);
|
||||
|
@ -87,7 +87,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);
|
||||
@ -171,7 +171,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) {
|
||||
@ -250,7 +250,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
43
tests/bugs/modalg_6/bug26251
Executable 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
|
Loading…
x
Reference in New Issue
Block a user