mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-06 18:26:22 +03:00
0025523: Fail to read back solid written to STEP
Fixed a exception occurred during reading step file Test case for issue CR25523
This commit is contained in:
parent
c31e0defd7
commit
bcf045cfdc
@ -88,6 +88,7 @@
|
|||||||
#include <ShapeAlgo_ToolContainer.hxx>
|
#include <ShapeAlgo_ToolContainer.hxx>
|
||||||
#include <XSAlgo.hxx>
|
#include <XSAlgo.hxx>
|
||||||
#include <XSAlgo_AlgoContainer.hxx>
|
#include <XSAlgo_AlgoContainer.hxx>
|
||||||
|
#include <ElCLib.hxx>
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Method : RemoveSinglePCurve
|
// Method : RemoveSinglePCurve
|
||||||
@ -164,6 +165,17 @@ static void CheckPCurves (TopoDS_Wire& aWire, const TopoDS_Face& aFace,
|
|||||||
w2 = cf;
|
w2 = cf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (w1 > w2 && mySurf->IsUPeriodic())
|
||||||
|
{
|
||||||
|
Standard_Real u1,u2,v1,v2;
|
||||||
|
mySurf->Bounds(u1,u2,v1,v2);
|
||||||
|
ElCLib::AdjustPeriodic(u1, u2,
|
||||||
|
Min(Abs(w2-w1)/2,Precision::PConfusion()),
|
||||||
|
w1, w2);
|
||||||
|
B.Range(myEdge, aFace, w1, w2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// advanced check
|
// advanced check
|
||||||
XSAlgo::AlgoContainer()->CheckPCurve (myEdge, aFace, preci, sbwd->IsSeam(i) );
|
XSAlgo::AlgoContainer()->CheckPCurve (myEdge, aFace, preci, sbwd->IsSeam(i) );
|
||||||
}
|
}
|
||||||
|
46
tests/bugs/step/bug25523
Executable file
46
tests/bugs/step/bug25523
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
puts "============"
|
||||||
|
puts "OCC25523"
|
||||||
|
puts "============"
|
||||||
|
puts ""
|
||||||
|
#######################################################################
|
||||||
|
# Fail to read back solid written to STEP
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
restore [locate_data_file bug25523_bad_loopback_step.brep] a
|
||||||
|
nbshapes a
|
||||||
|
|
||||||
|
set nbshapes_expected "
|
||||||
|
Number of shapes in a
|
||||||
|
VERTEX : 30
|
||||||
|
EDGE : 54
|
||||||
|
WIRE : 32
|
||||||
|
FACE : 27
|
||||||
|
SHELL : 1
|
||||||
|
SOLID : 1
|
||||||
|
COMPSOLID : 0
|
||||||
|
COMPOUND : 0
|
||||||
|
SHAPE : 145
|
||||||
|
"
|
||||||
|
checknbshapes a ${nbshapes_expected} 0 "Stator model"
|
||||||
|
|
||||||
|
newmodel
|
||||||
|
set aFile ${imagedir}/bug25523.stp
|
||||||
|
catch { file delete ${aFile} }
|
||||||
|
|
||||||
|
stepwrite a a ${aFile}
|
||||||
|
|
||||||
|
stepread ${aFile} b *
|
||||||
|
nbshapes b_1 ;# empty compound
|
||||||
|
checknbshapes b_1 ${nbshapes_expected} 0 "Stator model"
|
||||||
|
|
||||||
|
tpstat c ;# reports exception
|
||||||
|
|
||||||
|
vinit View1
|
||||||
|
vdisplay a
|
||||||
|
vfit
|
||||||
|
vdump ${imagedir}/${casename}_1.png
|
||||||
|
|
||||||
|
vinit View2
|
||||||
|
vdisplay b_1
|
||||||
|
vfit
|
||||||
|
vdump ${imagedir}/${casename}_2.png
|
Loading…
x
Reference in New Issue
Block a user