1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-02 17:46:22 +03:00

0030174: ShapeUpgrade_UnifySameDomain does not unify cylindrical faces

Hotfix for issue 27271 (avoiding potential seam edges) is deleted.

Correction of test case
This commit is contained in:
jgv 2018-10-25 16:30:56 +03:00 committed by bugmaster
parent e28b8c6218
commit 9619ef4c94
26 changed files with 75 additions and 86 deletions

View File

@ -88,43 +88,6 @@ struct SubSequenceOfEdges
TopoDS_Edge UnionEdges;
};
static Standard_Boolean IsLikeSeam(const TopoDS_Edge& anEdge,
const TopoDS_Face& aFace,
const Handle(Geom_Surface)& aBaseSurface)
{
if (!aBaseSurface->IsUPeriodic() && !aBaseSurface->IsVPeriodic())
return Standard_False;
BRepAdaptor_Curve2d BAcurve2d(anEdge, aFace);
gp_Pnt2d FirstPoint, LastPoint;
gp_Vec2d FirstDir, LastDir;
BAcurve2d.D1(BAcurve2d.FirstParameter(), FirstPoint, FirstDir);
BAcurve2d.D1(BAcurve2d.LastParameter(), LastPoint, LastDir);
Standard_Real Length = FirstDir.Magnitude();
if (Length <= gp::Resolution())
return Standard_False;
else
FirstDir /= Length;
Length = LastDir.Magnitude();
if (Length <= gp::Resolution())
return Standard_False;
else
LastDir /= Length;
Standard_Real Tol = 1.e-7;
if (aBaseSurface->IsUPeriodic() &&
(Abs(FirstDir.X()) < Tol) &&
(Abs(LastDir.X()) < Tol))
return Standard_True;
if (aBaseSurface->IsVPeriodic() &&
(Abs(FirstDir.Y()) < Tol) &&
(Abs(LastDir.Y()) < Tol))
return Standard_True;
return Standard_False;
}
//=======================================================================
//function : AddOrdinaryEdges
//purpose : auxilary
@ -1395,10 +1358,6 @@ void ShapeUpgrade_UnifySameDomain::IntUnifyFaces(const TopoDS_Shape& theInpShape
//
if (IsSameDomain(aFace,anCheckedFace, myLinTol, myAngTol)) {
// hotfix for 27271: prevent merging along periodic direction.
if (IsLikeSeam(edge, anCheckedFace, aBaseSurface))
continue;
if (AddOrdinaryEdges(edges,anCheckedFace,dummy)) {
// sequence edges is modified
i = dummy;

View File

@ -14,7 +14,7 @@ compound feature1 feature2 feature3 feature4 gap
removefeatures res1 s feature1
checkshape res1
checkprops res1 -s 2387.42 -v 1060.96 -deps 1.e-7
checknbshapes res1 -vertex 68 -edge 102 -wire 36 -face 36 -shell 1 -solid 1 -t
checknbshapes res1 -vertex 66 -edge 99 -wire 35 -face 35 -shell 1 -solid 1 -t
CheckIsFeatureRemoved feature1 {v e f}
removefeatures res3 s feature1 feature2
@ -27,19 +27,19 @@ CheckIsFeatureRemoved feature2 {e f}
removefeatures res4 s feature3
checkshape res4
checkprops res4 -s 2387.67 -v 1060.68 -deps 1.e-7
checknbshapes res4 -vertex 70 -edge 105 -wire 37 -face 37 -shell 1 -solid 1 -t
checknbshapes res4 -vertex 67 -edge 100 -wire 35 -face 35 -shell 1 -solid 1 -t
CheckIsFeatureRemoved feature3 {v e f}
removefeatures res5 s feature4
checkshape res5
checkprops res5 -s 2387.67 -v 1060.68 -deps 1.e-7
checknbshapes res5 -vertex 70 -edge 105 -wire 37 -face 37 -shell 1 -solid 1 -t
checkprops res5 -s 2387.67 -v 1060.67 -deps 1.e-7
checknbshapes res5 -vertex 67 -edge 100 -wire 35 -face 35 -shell 1 -solid 1 -t
CheckIsFeatureRemoved feature4 {v e f}
removefeatures res6 s feature3 feature4
checkshape res6
checkprops res6 -s 2387.89 -v 1060.71 -deps 1.e-7
checknbshapes res6 -vertex 68 -edge 102 -wire 36 -face 36 -shell 1 -solid 1 -t
checknbshapes res6 -vertex 65 -edge 97 -wire 34 -face 34 -shell 1 -solid 1 -t
CheckIsFeatureRemoved feature3 {v e f}
CheckIsFeatureRemoved feature4 {v e f}

View File

@ -12,17 +12,17 @@ compound feature1 feature2 gap
removefeatures res1 s feature1
checkshape res1
checkprops res1 -s 2387.38 -v 1060.67 -deps 1.e-7
checknbshapes res1 -vertex 62 -edge 93 -wire 33 -face 33 -shell 1 -solid 1
checknbshapes res1 -vertex 60 -edge 89 -wire 31 -face 31 -shell 1 -solid 1
CheckIsFeatureRemoved feature1 {v e f}
removefeatures res2 s feature2
checkshape res2
checkprops res2 -s 2387.17 -v 1060.75 -deps 1.e-7
checknbshapes res2 -vertex 62 -edge 93 -wire 35 -face 34 -shell 1 -solid 1
checknbshapes res2 -vertex 60 -edge 89 -wire 33 -face 32 -shell 1 -solid 1
CheckIsFeatureRemoved feature2 {v e f}
removefeatures res3 s gap
checkshape res3
checkprops res3 -s 2386.99 -v 1060.79 -deps 1.e-7
checknbshapes res3 -vertex 54 -edge 81 -wire 29 -face 29 -shell 1 -solid 1
checknbshapes res3 -vertex 52 -edge 77 -wire 27 -face 27 -shell 1 -solid 1
CheckIsFeatureRemoved gap {v e f}

View File

@ -10,5 +10,5 @@ compound s_37 s_26 s_27 s_28 gap
removefeatures res s gap
checkshape res
checkprops res -s 2387.07 -v 1060.76 -deps 1.e-7
checknbshapes res -vertex 64 -edge 96 -wire 34 -face 34 -shell 1 -solid 1
checknbshapes res -vertex 62 -edge 92 -wire 32 -face 32 -shell 1 -solid 1
CheckIsFeatureRemoved gap {v e f}

View File

@ -13,18 +13,18 @@ compound feature1 feature2 feature3 gap
removefeatures res1 s feature1 feature2
checkshape res1
checkprops res1 -s 2387.88 -v 1060.71 -deps 1.e-7
checknbshapes res1 -vertex 68 -edge 102 -wire 36 -face 36 -shell 1 -solid 1
checknbshapes res1 -vertex 65 -edge 97 -wire 34 -face 34 -shell 1 -solid 1
CheckIsFeatureRemoved feature1 {v e f}
CheckIsFeatureRemoved feature2 {v e f}
removefeatures res2 s feature3
checkshape res2
checkprops res2 -s 2391.13 -v 1064.08 -deps 1.e-7
checknbshapes res2 -vertex 66 -edge 99 -wire 35 -face 35 -shell 1 -solid 1
checknbshapes res2 -vertex 63 -edge 94 -wire 33 -face 33 -shell 1 -solid 1
CheckIsFeatureRemoved feature3 {v e f}
removefeatures res3 s gap
checkshape res3
checkprops res3 -s 2392.93 -v 1065.38 -deps 1.e-7
checknbshapes res3 -vertex 60 -edge 90 -wire 32 -face 32 -shell 1 -solid 1
checknbshapes res3 -vertex 57 -edge 85 -wire 30 -face 30 -shell 1 -solid 1
CheckIsFeatureRemoved gap {v e f}

View File

@ -10,5 +10,5 @@ compound s_11 s_13 s_12 spike
removefeatures res s spike
checkshape res
checkprops res -s 2323.49 -v 1037.57 -deps 1.e-7
checknbshapes res -vertex 64 -edge 96 -wire 34 -face 34 -shell 1 -solid 1
checknbshapes res -vertex 61 -edge 91 -wire 32 -face 32 -shell 1 -solid 1
CheckIsFeatureRemoved spike {v e f}

View File

@ -10,7 +10,7 @@ compound s_11 s_13 s_12 spike
removefeatures res s spike
checkshape res
checkprops res -s 2323.49 -v 1037.57 -deps 1.e-7
checknbshapes res -vertex 64 -edge 96 -wire 34 -face 34 -shell 1 -solid 1
checknbshapes res -vertex 61 -edge 91 -wire 32 -face 32 -shell 1 -solid 1
CheckIsFeatureRemoved spike {v e f}
# get history of the operation
@ -19,7 +19,7 @@ savehistory rf_hist
# check modification of the top face
modified m5 rf_hist s_5
checkprops m5 -s 1089.87
checknbshapes m5 -vertex 31 -edge 31 -wire 1 -face 1
checknbshapes m5 -vertex 29 -edge 29 -wire 1 -face 1
# check modification of the side faces where the spike was located
modified m10 rf_hist s_10

View File

@ -1,5 +1,3 @@
puts "TODO OCC29504 ALL: Faulty shapes in variables faulty_1 to"
pload XDE
stepread [locate_data_file bug29481_L3.step] s *
@ -12,6 +10,6 @@ compound s_2 s_25 s_1 s_4 feature
removefeatures result s feature
checkshape result
checkprops result -s 2386.95 -v 1064.36 -deps 1.e-7
checknbshapes result -vertex 62 -edge 93 -wire 35 -face 34 -shell 1 -solid 1
checkprops result -s 2392.41 -v 1063.75 -deps 1.e-7
checknbshapes result -vertex 61 -edge 91 -wire 34 -face 33 -shell 1 -solid 1
CheckIsFeatureRemoved feature {e f}

View File

@ -5,7 +5,7 @@ explode s f
removefeatures result s s_13
checkshape result
checkprops result -s 463.068 -v 194.214 -deps 1.e-7
checknbshapes result -vertex 32 -edge 53 -wire 24 -face 21 -shell 1 -solid 1
checknbshapes result -vertex 31 -edge 50 -wire 23 -face 20 -shell 1 -solid 1
CheckIsFeatureRemoved s_13 {v e f}
# get history of the operation

View File

@ -5,7 +5,7 @@ explode s f
removefeatures result s s_14
checkshape result
checkprops result -s 462.33 -v 194.594 -deps 1.e-7
checknbshapes result -vertex 34 -edge 54 -wire 24 -face 21 -shell 1 -solid 1 -t
checknbshapes result -vertex 33 -edge 51 -wire 23 -face 20 -shell 1 -solid 1 -t
CheckIsFeatureRemoved s_14 {e f}
# get history of the operation
@ -14,7 +14,7 @@ savehistory rf_hist
# check modification of the top face
modified m1 rf_hist s_1
checkprops m1 -s 171.478
checknbshapes m1 -vertex 14 -edge 14 -wire 3 -face 1
checknbshapes m1 -vertex 13 -edge 13 -wire 3 -face 1
generated g1 rf_hist s_1
checknbshapes g1 -vertex 1 -edge 1

View File

@ -5,7 +5,7 @@ explode s f
removefeatures result s s_15
checkshape result
checkprops result -s 462.273 -v 193.127 -deps 1.e-7
checknbshapes result -vertex 34 -edge 54 -wire 24 -face 21 -shell 1 -solid 1 -t
checknbshapes result -vertex 33 -edge 51 -wire 23 -face 20 -shell 1 -solid 1 -t
CheckIsFeatureRemoved s_15 {e f}
# get history of the operation
@ -14,7 +14,7 @@ savehistory rf_hist
# check modification of the top face
modified m1 rf_hist s_1
checkprops m1 -s 172.452
checknbshapes m1 -vertex 14 -edge 14 -wire 3 -face 1
checknbshapes m1 -vertex 13 -edge 13 -wire 3 -face 1
generated g1 rf_hist s_1
checknbshapes g1 -vertex 1 -edge 1

View File

@ -4,7 +4,7 @@ explode s f
removefeatures result s s_4
checkshape result
checkprops result -s 462.815 -v 195.248 -deps 1.e-7
checknbshapes result -vertex 31 -edge 50 -wire 23 -face 20 -shell 1 -solid 1
checknbshapes result -vertex 30 -edge 47 -wire 22 -face 19 -shell 1 -solid 1
CheckIsFeatureRemoved s_4 {v e f}
# get history of the operation
@ -13,7 +13,7 @@ savehistory rf_hist
# check modification of the top face
modified m1 rf_hist s_1
checkprops m1 -s 169.122
checknbshapes m1 -vertex 12 -edge 12 -wire 3 -face 1
checknbshapes m1 -vertex 11 -edge 11 -wire 3 -face 1
# check modification of the side faces
modified m3 rf_hist s_3

View File

@ -5,7 +5,7 @@ explode s f
removefeatures result s s_6 s_18
checkshape result
checkprops result -s 461.315 -v 196.178 -deps 1.e-7
checknbshapes result -vertex 30 -edge 50 -wire 23 -face 20 -shell 1 -solid 1
checknbshapes result -vertex 29 -edge 47 -wire 22 -face 19 -shell 1 -solid 1
CheckIsFeatureRemoved s_6 {v e f}
CheckIsFeatureRemoved s_18 {v e f}
@ -15,7 +15,7 @@ savehistory rf_hist
# check modification of the top face
modified m1 rf_hist s_1
checkprops m1 -s 172.551
checknbshapes m1 -vertex 14 -edge 14 -wire 3 -face 1
checknbshapes m1 -vertex 13 -edge 13 -wire 3 -face 1
# check modification of the side face
modified m19 rf_hist s_19

View File

@ -6,7 +6,7 @@ explode s f
removefeatures result s s_14 s_20
checkshape result
checkprops result -s 462.33 -v 197.735 -deps 1.e-7
checknbshapes result -vertex 32 -edge 51 -wire 21 -face 20 -shell 1 -solid 1
checknbshapes result -vertex 31 -edge 48 -wire 20 -face 19 -shell 1 -solid 1
CheckIsFeatureRemoved s_14 {v e f}
CheckIsFeatureRemoved s_20 {v e f}
@ -16,7 +16,7 @@ savehistory rf_hist
# check modification of the top and bottom faces
modified m1 rf_hist s_1
checkprops m1 -s 174.62
checknbshapes m1 -vertex 13 -edge 13 -wire 2 -face 1
checknbshapes m1 -vertex 12 -edge 12 -wire 2 -face 1
modified m16 rf_hist s_16
checkprops m16 -s 194.429

View File

@ -6,7 +6,7 @@ explode s f
removefeatures result s s_15 s_21 s_22
checkshape result
checkprops result -s 449.707 -v 186.844 -deps 1.e-7
checknbshapes result -vertex 31 -edge 51 -wire 21 -face 19 -shell 1 -solid 1
checknbshapes result -vertex 30 -edge 48 -wire 20 -face 18 -shell 1 -solid 1
CheckIsFeatureRemoved s_15 {v e f}
CheckIsFeatureRemoved s_21 {v e f}
CheckIsFeatureRemoved s_22 {v e f}
@ -17,7 +17,7 @@ savehistory rf_hist
# check modification of the top face
modified m1 rf_hist s_1
checkprops m1 -s 175.593
checknbshapes m1 -vertex 13 -edge 13 -wire 2 -face 1
checknbshapes m1 -vertex 12 -edge 12 -wire 2 -face 1
# check that no new intersections have been created
if {![regexp "No shapes were generated" [generated g1 rf_hist s_1]]} {

View File

@ -10,7 +10,7 @@ compound s_115 s_112 s_116 s_114 s_111 s_113 blend
removefeatures result s fillet blend
checkshape result
checkprops result -s 809750 -v 1.46451e+007 -deps 1.e-7
checknbshapes result -vertex 258 -edge 394 -wire 164 -face 139 -shell 1 -solid 1 -t
checknbshapes result -vertex 250 -edge 378 -wire 156 -face 131 -shell 1 -solid 1 -t
CheckIsFeatureRemoved fillet {e f}
CheckIsFeatureRemoved blend {e f}

View File

@ -9,7 +9,7 @@ compound s_34 s_12 s_32 s_40 s_37 s_16 s_18 s_17 s_39 s_41 s_31 s_14 s_35 s_13 s
removefeatures result s gaps
checkshape result
checkprops result -s 813251 -v 1.49885e+007 -deps 1.e-7
checknbshapes result -vertex 230 -edge 358 -wire 156 -face 131 -shell 1 -solid 1 -t
checknbshapes result -vertex 216 -edge 334 -wire 146 -face 121 -shell 1 -solid 1 -t
CheckIsFeatureRemoved gaps {v e f}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -9,7 +9,7 @@ compound s_86 s_83 s_81 s_82 s_84 s_85 s_80 s_78 s_79 s_88 s_77 s_87 holes
removefeatures result s holes
checkshape result
checkprops result -s 798285 -v 1.51114e+007 -deps 1.e-7
checknbshapes result -vertex 246 -edge 382 -wire 160 -face 139 -shell 1 -solid 1 -t
checknbshapes result -vertex 234 -edge 362 -wire 152 -face 131 -shell 1 -solid 1 -t
CheckIsFeatureRemoved holes {v e f}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -9,7 +9,7 @@ compound s_10 s_66 s_43 s_65 s_63 s_64 s_69 s_29 s_68 s_70 s_20 s_67 fillets
removefeatures result s fillets
checkshape result
checkprops result -s 811691 -v 1.46014e+007 -deps 1.e-7
checknbshapes result -vertex 246 -edge 382 -wire 164 -face 139 -shell 1 -solid 1 -t
checknbshapes result -vertex 234 -edge 362 -wire 156 -face 131 -shell 1 -solid 1 -t
CheckIsFeatureRemoved fillets {v e f}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -15,7 +15,7 @@ CheckIsFeatureRemoved a_6 {f}
foreach r {r1 r2} {
checkshape $r
checknbshapes $r -wire 19 -face 17 -shell 1 -solid 1
checknbshapes $r -wire 17 -face 15 -shell 1 -solid 1
checkprops $r -s 421523 -v 2.04083e+006 -deps 1.e-7
}
@ -24,7 +24,7 @@ removefeatures result a a_1 a_8
CheckIsFeatureRemoved a_1 {f}
CheckIsFeatureRemoved a_8 {f}
checkshape result
checknbshapes result -wire 22 -face 20 -shell 1 -solid 1
checknbshapes result -wire 15 -face 13 -shell 1 -solid 1
checkprops result -s 421862 -v 2.04152e+006 -deps 1.e-7
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,4 +1,3 @@
puts "TODO OCC30099 ALL: Faulty shapes in variables faulty_1 to faulty_"
puts "TODO OCC30099 ALL: Error : The area of result shape is"
puts "TODO OCC30099 ALL: Error : The volume of result shape is"
@ -15,7 +14,7 @@ explode a f
removefeatures r1 a a_8
CheckIsFeatureRemoved a_8 {f}
checkshape r1
checknbshapes r1 -wire 19 -face 17 -shell 1 -solid 1
checknbshapes r1 -wire 17 -face 15 -shell 1 -solid 1
checkprops r1 -s 421523 -v 2.04083e+006 -deps 1.e-7
removefeatures result a a_1 a_6 a_8
@ -24,7 +23,7 @@ CheckIsFeatureRemoved a_6 {f}
CheckIsFeatureRemoved a_8 {f}
checkshape result
checknbshapes result -wire 25 -face 23 -shell 1 -solid 1
checknbshapes result -wire 14 -face 12 -shell 1 -solid 1
checkprops result -s 422201 -v 2.042204e+006 -deps 1.e-7
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -37,7 +37,7 @@ for {set i 0} {$i < $nbp} {incr i} {
boptions -default
checkshape plate
checknbshapes plate -vertex 212 -edge 318 -wire 110 -face 109 -shell 1 -solid 1
checknbshapes plate -vertex 202 -edge 303 -wire 105 -face 104 -shell 1 -solid 1
checkprops plate -s 18541.7 -v 64444.2
checkview -display plate -2d -path ${imagedir}/${test_image}_2.png

View File

@ -1,4 +1,4 @@
restore [locate_data_file bug27000_1.brep] shape
unifysamedom result shape
checkshape result
checknbshapes result -vertex 62 -edge 90 -wire 36 -face 34 -shell 2 -solid 2 -compsolid 0 -compound 1 -shape 227
checknbshapes result -vertex 60 -edge 87 -wire 35 -face 33 -shell 2 -solid 2 -compsolid 0 -compound 1 -shape 220

View File

@ -1,3 +1,5 @@
puts "TODO OCC30320 ALL: Faulty shapes in variables faulty_"
puts "============"
puts "OCC27894"
puts "============"
@ -10,6 +12,8 @@ stepread [locate_data_file bug27894_usd_raises_Standard_NullObject.stp] a *
renamevar a_1 a
unifysamedom result a
checknbshapes result -m UnifySameDomain -face 18 -edge 45
checknbshapes result -m UnifySameDomain -face 9 -edge 21
checkshape result
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -8,4 +8,13 @@ puts ""
restore [locate_data_file bug27271_Shape.brep] a
unifysamedom result a
checkshape result
checkshape result
checknbshapes result -vertex 44 -edge 81 -wire 45 -face 35 -shell 3 -solid 3
set tolres [checkmaxtol result]
if { ${tolres} > 0.003} {
puts "Error: bad tolerance of result"
}

View File

@ -0,0 +1,20 @@
puts "============"
puts "OCC30174"
puts "============"
puts ""
###########################################################################################################
# ShapeUpgrade_UnifySameDomain does not unify cylindrical faces
###########################################################################################################
restore [locate_data_file bug30174_cylinder.brep] a
unifysamedom result a
checkshape result
checknbshapes result -vertex 2 -edge 3 -wire 3 -face 3 -shell 1 -solid 1
set tolres [checkmaxtol result]
if { ${tolres} > 2.e-5} {
puts "Error: bad tolerance of result"
}