mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
0032264: Data Exchange - STEP exporter generates bad geometry [REGRESSION since 7.4.0]
Location of edge is applied to geom curve before analysis of vertices projections
This commit is contained in:
parent
ae64fe0119
commit
5e4f263d1c
@ -186,9 +186,11 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
|
||||
|
||||
Handle(StepGeom_Curve) Gpms;
|
||||
Handle(Geom_Curve) C = CA.Curve().Curve();
|
||||
|
||||
if (!C.IsNull()) {
|
||||
C = Handle(Geom_Curve)::DownCast(C->Copy());
|
||||
|
||||
gp_Trsf Tr1 = CA.Trsf();
|
||||
C->Transform(Tr1);
|
||||
// Special treatment is needed for very short edges based on periodic curves.
|
||||
// Since edge in STEP does not store its parametric range, parameters are computed
|
||||
// on import by projecting vertices on a curve, and for periodic curve this may
|
||||
@ -246,8 +248,7 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
|
||||
}
|
||||
}
|
||||
|
||||
gp_Trsf Tr1 = CA.Trsf();
|
||||
C->Transform(Tr1);
|
||||
|
||||
GeomToStep_MakeCurve MkCurve(C);
|
||||
Gpms = MkCurve.Value();
|
||||
}
|
||||
|
8
tests/bugs/step/bug32264
Normal file
8
tests/bugs/step/bug32264
Normal file
@ -0,0 +1,8 @@
|
||||
restore [locate_data_file bug32264.brep] s
|
||||
set aTmpFile "$imagedir/${casename}.brep"
|
||||
testwritestep "$aTmpFile" s
|
||||
testreadstep "$aTmpFile" s1
|
||||
file delete "$aTmpFile"
|
||||
checkshape s1 f
|
||||
checkmaxtol s1 -ref 1.e-7
|
||||
checkprops s1 -v 16.1759 -deps 0.01
|
Loading…
x
Reference in New Issue
Block a user