View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0023011 | Community | OCCT:Shape Healing | public | 2012-03-05 15:04 | 2017-07-13 17:04 |
Reporter | kapilbhudhia | Assigned To | |||
Priority | high | Severity | major | ||
Status | assigned | Resolution | open | ||
Platform | Visual Studio 9, Win32 | OS | WIndows | ||
Product Version | 6.5.2 | ||||
Summary | 0023011: ShapeAnalysis_Wire returns an incorrect CheckOrder | ||||
Description | Create a Solid Cube and do some Analysis on it. So, I go through its faces and foreach face through all its wires (it is 1 in this case) and foreach wire I check the order. To my utter shock the method ShapeAnalysis_Wire::CheckOrder() returns true -- which basically means that the wire is not ordered correctly. Either the solid cube is created wrong or the CheckOrder API is returing a wrong result or I am doing something utterly silly. ----------- THE CODE --------- // create a solid bounding box BRepPrimAPI_MakeBox outerBox(gp_Pnt(-10000, -10000, -10000), gp_Pnt(10000, 10000, 10000)); for (TopExp_Explorer faceIter(outerBox.Solid(), TopAbs_FACE); faceIter.More(); faceIter.Next()) { const TopoDS_Face& aFace = TopoDS::Face(faceIter.Current()); for (TopExp_Explorer wireIter(aFace, TopAbs_WIRE); wireIter.More(); wireIter.Next()) { const TopoDS_Wire& aWire = TopoDS::Wire(wireIter.Current()); double precision = 1e-04; ShapeAnalysis_Wire saw(aWire, aFace, precision); if (saw.CheckOrder()) { throw gcnew Exception("Wire not ordered properly"); } } } | ||||
Steps To Reproduce | Create a small console app with the following code // create a solid bounding box BRepPrimAPI_MakeBox outerBox(gp_Pnt(-10000, -10000, -10000), gp_Pnt(10000, 10000, 10000)); for (TopExp_Explorer faceIter(outerBox.Solid(), TopAbs_FACE); faceIter.More(); faceIter.Next()) { const TopoDS_Face& aFace = TopoDS::Face(faceIter.Current()); for (TopExp_Explorer wireIter(aFace, TopAbs_WIRE); wireIter.More(); wireIter.Next()) { const TopoDS_Wire& aWire = TopoDS::Wire(wireIter.Current()); double precision = 1e-04; ShapeAnalysis_Wire saw(aWire, aFace, precision); if (saw.CheckOrder()) { throw gcnew Exception("Wire not ordered properly"); } } } | ||||
Tags | No tags attached. | ||||
Test case number | |||||
Date Modified | Username | Field | Change |
---|---|---|---|
2012-03-05 15:04 | kapilbhudhia | New Issue | |
2012-03-05 15:04 | kapilbhudhia | Assigned To | => gka |
2017-07-13 17:04 |
|
Note Added: 0068270 | |
2017-07-13 17:04 |
|
Status | new => assigned |