mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-05-06 10:36:12 +03:00
0025657: Bad result of Fillet operation
Comments have been precised. Test case for issue CR25657 Fix of regression Additional test case.
This commit is contained in:
parent
97c44f4156
commit
6504f8cd28
@ -371,14 +371,15 @@ static Standard_Boolean Update(Handle(Adaptor3d_HSurface)& face,
|
|||||||
pared = ponc1.Parameter();
|
pared = ponc1.Parameter();
|
||||||
parltg = ponc2.Parameter();
|
parltg = ponc2.Parameter();
|
||||||
if ((parltg > f) && (parltg < l)) {
|
if ((parltg > f) && (parltg < l)) {
|
||||||
#ifdef OCC23139
|
////modified by jgv, 10.05.2012 for the bug 23139, 25657////
|
||||||
////modified by jgv, 10.05.2012 for the bug 23139////
|
|
||||||
Handle(Geom2d_Curve) PConF = fi.PCurveOnFace();
|
Handle(Geom2d_Curve) PConF = fi.PCurveOnFace();
|
||||||
if (!PConF.IsNull())
|
if (!PConF.IsNull())
|
||||||
{
|
{
|
||||||
Handle(Geom2d_TrimmedCurve) aTrCurve = Handle(Geom2d_TrimmedCurve)::DownCast(PConF);
|
Handle(Geom2d_TrimmedCurve) aTrCurve = Handle(Geom2d_TrimmedCurve)::DownCast(PConF);
|
||||||
if (!aTrCurve.IsNull())
|
if (!aTrCurve.IsNull())
|
||||||
PConF = aTrCurve->BasisCurve();
|
PConF = aTrCurve->BasisCurve();
|
||||||
|
if (!PConF->IsPeriodic())
|
||||||
|
{
|
||||||
if (isfirst)
|
if (isfirst)
|
||||||
{
|
{
|
||||||
Standard_Real fpar = PConF->FirstParameter();
|
Standard_Real fpar = PConF->FirstParameter();
|
||||||
@ -392,8 +393,8 @@ static Standard_Boolean Update(Handle(Adaptor3d_HSurface)& face,
|
|||||||
parltg = lpar;
|
parltg = lpar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
#endif
|
|
||||||
fi.SetParameter(parltg,isfirst);
|
fi.SetParameter(parltg,isfirst);
|
||||||
cp.SetArc(cp.Tolerance(),cp.Arc(),pared,cp.TransitionOnArc());
|
cp.SetArc(cp.Tolerance(),cp.Arc(),pared,cp.TransitionOnArc());
|
||||||
return Standard_True;
|
return Standard_True;
|
||||||
|
25
tests/bugs/modalg_5/bug25657
Normal file
25
tests/bugs/modalg_5/bug25657
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
puts "========"
|
||||||
|
puts "OCC25657"
|
||||||
|
puts "========"
|
||||||
|
puts ""
|
||||||
|
###########################################################################################
|
||||||
|
# Bad result of Fillet operation
|
||||||
|
###########################################################################################
|
||||||
|
|
||||||
|
restore [locate_data_file bug25657_r4.brep] r4
|
||||||
|
explode r4 e
|
||||||
|
shape c c
|
||||||
|
add r4_15 c
|
||||||
|
fillet res r4 20 c
|
||||||
|
|
||||||
|
explode res f
|
||||||
|
|
||||||
|
pcurve res_2
|
||||||
|
# exception
|
||||||
|
|
||||||
|
pcurve res_5
|
||||||
|
# exception
|
||||||
|
|
||||||
|
smallview
|
||||||
|
fit
|
||||||
|
set only_screen_axo 1
|
16
tests/bugs/modalg_5/bug25657_1
Normal file
16
tests/bugs/modalg_5/bug25657_1
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
puts "========"
|
||||||
|
puts "OCC25657"
|
||||||
|
puts "========"
|
||||||
|
puts ""
|
||||||
|
###########################################################################################
|
||||||
|
# Bad result of Fillet operation
|
||||||
|
###########################################################################################
|
||||||
|
|
||||||
|
pcylinder a1 140 220
|
||||||
|
pcylinder a2 206 120
|
||||||
|
ttranslate a2 100 100 120
|
||||||
|
bcut a a1 a2
|
||||||
|
explode a e
|
||||||
|
donly a a_9
|
||||||
|
|
||||||
|
blend result a 20 a_9
|
Loading…
x
Reference in New Issue
Block a user