1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0024595: STEP import missing surfaces

Modification to create natural bounds for face based on the spherical and Bspline surface and having only one bound represented by Vertex loop was made.
 According to the specification of ISO-10303 part 42:
    "If the face has only one bound and this is of type vertex_loop, then the interior of the face is the domain of the face_surface.face_geometry. In such a case the underlying surface shall be closed (e.g. a spherical_surface.)"
    - natural bounds are applied only in case if VertexLoop is only the one
      defined face bound.
This commit is contained in:
gka
2015-12-11 11:01:27 +03:00
parent 92efcf78a6
commit 84e82ff782
3 changed files with 11 additions and 18 deletions

View File

@@ -236,12 +236,7 @@ void StepToTopoDS_TranslateFace::Init
// Standard_Boolean fautcoudre =
// ( (NbBnd == 2) && (GeomSurf->IsUClosed() || GeomSurf->IsVClosed()) );
Standard_Boolean isExistOuter = Standard_False;
for (Standard_Integer i = 1; i <= NbBnd; i++) {
FaceBound = FS->BoundsValue(i);
if (FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound)))
isExistOuter = Standard_True;
}
for (Standard_Integer i = 1; i <= NbBnd; i ++) {
#ifdef OCCT_DEBUG
@@ -265,13 +260,14 @@ void StepToTopoDS_TranslateFace::Init
if (GeomSurf->IsKind (STANDARD_TYPE(Geom_SphericalSurface)) ||
GeomSurf->IsKind (STANDARD_TYPE(Geom_BSplineSurface)) )
{
if (!isExistOuter || FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound))) {
if (NbBnd ==1 || FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound))) {
BRepBuilderAPI_MakeFace mf (GeomSurf, Precision());
for (TopoDS_Iterator it(mf); it.More(); it.Next())
B.Add (F, it.Value());
}
continue;
}
}
if (//GeomSurf->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) ||

View File

@@ -1,14 +1,13 @@
# !!!! This file is generated automatically, do not edit manually! See end script
set filename trj9_b2-ai-214.stp
set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 8 ( 38 ) Summary = 8 ( 38 )
CHECKSHAPE : Wires = 1 ( 1 ) Faces = 1 ( 1 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 221 ( 221 ) Summary = 1465 ( 1463 )
STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 221 ( 221 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 610 ( 610 )
TOLERANCE : MaxTol = 0.004950186716 ( 0.004950186717 ) AvgTol = 0.0003553188051 ( 0.0003621212346 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 7 ( 38 ) Summary = 7 ( 38 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 221 ( 221 ) Summary = 1460 ( 1459 )
STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 221 ( 221 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 608 ( 608 )
TOLERANCE : MaxTol = 0.004950137219 ( 0.004950137216 ) AvgTol = 0.0003566630364 ( 0.0003615446964 )
LABELS : N0Labels = 1 ( 1 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 1 ( 1 ) NameLabels = 1 ( 1 ) ColorLabels = 1 ( 1 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 1 ( 1 ) Volume = 1 ( 1 ) Area = 1 ( 1 )
NCOLORS : NColors = 1 ( 1 )

View File

@@ -1,15 +1,13 @@
# !!!! This file is generated automatically, do not edit manually! See end script
puts "TODO CR25013 Linux: Error : 1 differences with reference data found"
set filename trj6_pm4-hc-214.stp
set ref_data {
DATA : Faulties = 0 ( 20 ) Warnings = 0 ( 60 ) Summary = 0 ( 80 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 21 ( 557 ) Summary = 21 ( 557 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1506 ( 1506 ) Summary = 9262 ( 9257 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1506 ( 1506 ) Summary = 9261 ( 9257 )
STATSHAPE : Solid = 272 ( 272 ) Shell = 272 ( 272 ) Face = 3216 ( 3216 ) FreeWire = 0 ( 0 ) FreeEdge = 0 ( 0 ) SharedEdge = 3315 ( 3311 )
TOLERANCE : MaxTol = 0.9562231856 ( 3.3196868 ) AvgTol = 0.0007127405962 ( 0.003722159881 )
TOLERANCE : MaxTol = 0.9562231856 ( 3.3196868 ) AvgTol = 0.0007127401639 ( 0.003722159846 )
LABELS : N0Labels = 230 ( 230 ) N1Labels = 1909 ( 1909 ) N2Labels = 0 ( 0 ) TotalLabels = 2139 ( 2139 ) NameLabels = 633 ( 633 ) ColorLabels = 1506 ( 1506 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 98 ( 98 ) Volume = 98 ( 98 ) Area = 98 ( 98 )
NCOLORS : NColors = 6 ( 6 )