Archived issue #0029976
Regession from 7.2.0 on osx Faces created from gp_Cir have incorrect location
Description
With the included code (case 0), face position is incorrect as shown on picture.
The issue can't be reproduced on windows os.
The issue can't be reproduced on osx with occt 7.2
BRepPrimAPI_MakeCylinder reproduce the same issue.
The use of gp_Elips gives correct position.
Thje error seems to be only on X coordinate
The issue can't be reproduced on windows os.
The issue can't be reproduced on osx with occt 7.2
BRepPrimAPI_MakeCylinder reproduce the same issue.
The use of gp_Elips gives correct position.
Thje error seems to be only on X coordinate
Steps to reproduce
TopoDS_Solid aSolid;
TopoDS_Face circleF;
int solidBuild = 0;
switch (solidBuild) {
case 0:{
gp_Ax2 anAx2(gp_Pnt(0.5,-0.5,0.5),gp_Dir(0.,1.,0.));
gp_Circ aCirc(anAx2,0.25);
TopoDS_Edge EdCircle = BRepBuilderAPI_MakeEdge(aCirc);
TopoDS_Wire circleW = BRepBuilderAPI_MakeWire(EdCircle);
circleF = BRepBuilderAPI_MakeFace(circleW,true);
aSolid = TopoDS::Solid(BRepPrimAPI_MakePrism(circleF,gp_Vec(0.,2.,0.)));
break;
}
case 1:{
gp_Ax2 anAx2(gp_Pnt(0.5,-0.5,0.5),gp_Dir(0.,1.,0.));
aSolid = BRepPrimAPI_MakeCylinder(anAx2,0.25,2.).Solid();
break;
}
case 2:{
gp_Ax2 anAx2(gp_Pnt(0.5,-0.5,0.5),gp_Dir(0.,1.,0.));
gp_Elips aCirc(anAx2,0.25,0.1);
TopoDS_Edge EdCircle = BRepBuilderAPI_MakeEdge(aCirc);
TopoDS_Wire circleW = BRepBuilderAPI_MakeWire(EdCircle);
circleF = BRepBuilderAPI_MakeFace(circleW,true);
aSolid = TopoDS::Solid(BRepPrimAPI_MakePrism(circleF,gp_Vec(0.,2.,0.)));
break;
}
default:
break;
}
TopoDS_Face circleF;
int solidBuild = 0;
switch (solidBuild) {
case 0:{
gp_Ax2 anAx2(gp_Pnt(0.5,-0.5,0.5),gp_Dir(0.,1.,0.));
gp_Circ aCirc(anAx2,0.25);
TopoDS_Edge EdCircle = BRepBuilderAPI_MakeEdge(aCirc);
TopoDS_Wire circleW = BRepBuilderAPI_MakeWire(EdCircle);
circleF = BRepBuilderAPI_MakeFace(circleW,true);
aSolid = TopoDS::Solid(BRepPrimAPI_MakePrism(circleF,gp_Vec(0.,2.,0.)));
break;
}
case 1:{
gp_Ax2 anAx2(gp_Pnt(0.5,-0.5,0.5),gp_Dir(0.,1.,0.));
aSolid = BRepPrimAPI_MakeCylinder(anAx2,0.25,2.).Solid();
break;
}
case 2:{
gp_Ax2 anAx2(gp_Pnt(0.5,-0.5,0.5),gp_Dir(0.,1.,0.));
gp_Elips aCirc(anAx2,0.25,0.1);
TopoDS_Edge EdCircle = BRepBuilderAPI_MakeEdge(aCirc);
TopoDS_Wire circleW = BRepBuilderAPI_MakeWire(EdCircle);
circleF = BRepBuilderAPI_MakeFace(circleW,true);
aSolid = TopoDS::Solid(BRepPrimAPI_MakePrism(circleF,gp_Vec(0.,2.,0.)));
break;
}
default:
break;
}
Public activity
4 archived notes
Participants are labeled by their role within this record.
Commenter 2
The problem seems to be the same as in #0029978, can you please try to apply the fix made for that issue and see whether it helps?
The problem seems to be the same as in #0029978, can you please try to apply the fix made for that issue and see whether it helps?
I tried to run the code with a freshly compiled version of oc, using master branch.
The problem is fixed.
Thanks
I tried to run the code with a freshly compiled version of oc, using master branch.
The problem is fixed.
Thanks
Dear Commenter 1, please close this bug.
Related records