mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-16 10:08:36 +03:00
0032557: Modeling Data - Use of BRepBuilderAPI_NurbsConvert create 2d p-curves with errors
BRepTools/BRepTools_NurbsConvertModification.cxx - Checking domain of 2dCurves if surfaces are periodic is improved tests/bugs/moddata_3/bug32557 - test case added
This commit is contained in:
parent
f72c595119
commit
342ed98c32
@ -493,11 +493,23 @@ Standard_Boolean BRepTools_NurbsConvertModification::NewCurve2d
|
|||||||
{
|
{
|
||||||
//Surface is periodic, checking curve2d domain
|
//Surface is periodic, checking curve2d domain
|
||||||
//Old domain
|
//Old domain
|
||||||
gp_Pnt2d aPf = C2d->Value(f2d);
|
Standard_Real aMinDist = Precision::Infinite();
|
||||||
|
if (S->IsUPeriodic())
|
||||||
|
{
|
||||||
|
aMinDist = Min(0.5 * S->UPeriod(), aMinDist);
|
||||||
|
}
|
||||||
|
if (S->IsVPeriodic())
|
||||||
|
{
|
||||||
|
aMinDist = Min(0.5 * S->VPeriod(), aMinDist);
|
||||||
|
}
|
||||||
|
aMinDist *= aMinDist;
|
||||||
|
//Old domain
|
||||||
|
Standard_Real t = 0.5 * (f2d + l2d);
|
||||||
|
gp_Pnt2d aPf = C2d->Value(t);
|
||||||
//New domain
|
//New domain
|
||||||
gp_Pnt2d aNewPf = Curve2d->Value(f2d);
|
gp_Pnt2d aNewPf = Curve2d->Value(t);
|
||||||
gp_Vec2d aT(aNewPf, aPf);
|
gp_Vec2d aT(aNewPf, aPf);
|
||||||
if (aT.SquareMagnitude() > Precision::SquarePConfusion())
|
if (aT.SquareMagnitude() > aMinDist)
|
||||||
{
|
{
|
||||||
Curve2d = Handle(Geom2d_Curve)::DownCast(Curve2d->Translated(aT));
|
Curve2d = Handle(Geom2d_Curve)::DownCast(Curve2d->Translated(aT));
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ nurbsconvert result result
|
|||||||
incmesh result 0.15 -a 20
|
incmesh result 0.15 -a 20
|
||||||
|
|
||||||
tricheck result
|
tricheck result
|
||||||
checktrinfo result -tri 191 -nod 146 -defl 0.052300780129031083 -tol_abs_defl 1.0e-6
|
checktrinfo result -tri 193 -nod 147 -defl 0.052300780129031083 -tol_abs_defl 1.0e-6
|
||||||
|
|
||||||
vinit
|
vinit
|
||||||
|
|
||||||
|
10
tests/bugs/moddata_3/bug32557
Normal file
10
tests/bugs/moddata_3/bug32557
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
puts "==========================================================="
|
||||||
|
puts "0032557: Modeling Data - Use of BRepBuilderAPI_NurbsConvert create 2d p-curves with gaps"
|
||||||
|
puts "==========================================================="
|
||||||
|
puts ""
|
||||||
|
|
||||||
|
restore [locate_data_file bug32557.brep] f
|
||||||
|
|
||||||
|
nurbsconvert bf f
|
||||||
|
checkmaxtol bf -ref 1.1e-7
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user