mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
0033028: Standard_ConstructionError while using ShapeUpgrade_UnifySameDomain
Additional check if the sequence of circular edges is a closed chain.
This commit is contained in:
parent
6bf38f219b
commit
581016faeb
@ -2058,8 +2058,22 @@ Standard_Boolean ShapeUpgrade_UnifySameDomain::MergeSubSeq(const TopTools_Sequen
|
||||
TopoDS_Vertex V[2];
|
||||
V[0] = sae.FirstVertex(FE);
|
||||
V[1] = sae.LastVertex(TopoDS::Edge(theChain.Last()));
|
||||
Standard_Boolean isClosed = V[0].IsSame(V[1]);
|
||||
if (!isClosed)
|
||||
{
|
||||
// additionally check the points for equality to make a final decision about closedness of the result curve
|
||||
gp_Pnt aP0 = BRep_Tool::Pnt(V[0]);
|
||||
gp_Pnt aP1 = BRep_Tool::Pnt(V[1]);
|
||||
Standard_Real aTol = Max(BRep_Tool::Tolerance(V[0]), BRep_Tool::Tolerance(V[1]));
|
||||
if (aP0.SquareDistance(aP1) < aTol * aTol)
|
||||
{
|
||||
isClosed = Standard_True;
|
||||
V[1] = V[0];
|
||||
V[1].Reverse();
|
||||
}
|
||||
}
|
||||
TopoDS_Edge E;
|
||||
if (V[0].IsSame(V[1])) {
|
||||
if (isClosed) {
|
||||
// closed chain
|
||||
BRepAdaptor_Curve adef(FE);
|
||||
Handle(Geom_Circle) Cir1;
|
||||
|
36
tests/bugs/heal/bug33028
Normal file
36
tests/bugs/heal/bug33028
Normal file
@ -0,0 +1,36 @@
|
||||
puts "========================"
|
||||
puts " OCC33028: Standard_ConstructionError while using ShapeUpgrade_UnifySameDomain"
|
||||
puts "========================"
|
||||
puts ""
|
||||
|
||||
stepread [locate_data_file bug33028_kalip.stp] s *
|
||||
|
||||
set nbsBefore "
|
||||
Number of shapes in shape
|
||||
VERTEX : 543
|
||||
EDGE : 819
|
||||
WIRE : 359
|
||||
FACE : 289
|
||||
SHELL : 2
|
||||
SOLID : 2
|
||||
COMPSOLID : 0
|
||||
COMPOUND : 1
|
||||
SHAPE : 2015
|
||||
"
|
||||
checknbshapes s_1 -ref ${nbsBefore} -t -m "result before attempt to simplify the model"
|
||||
|
||||
unifysamedom result s_1
|
||||
|
||||
set nbsAfter "
|
||||
Number of shapes in shape
|
||||
VERTEX : 515
|
||||
EDGE : 805
|
||||
WIRE : 359
|
||||
FACE : 289
|
||||
SHELL : 2
|
||||
SOLID : 2
|
||||
COMPSOLID : 0
|
||||
COMPOUND : 1
|
||||
SHAPE : 1973
|
||||
"
|
||||
checknbshapes result -ref ${nbsAfter} -t -m "result after attempt to simplify the model"
|
Loading…
x
Reference in New Issue
Block a user