View Issue Details

IDProjectCategoryView StatusLast Update
0032859CommunityOCCT:Modeling Algorithmspublic2022-03-03 17:33
ReporterManycore Assigned Toifv  
PrioritynormalSeverityminor 
Status resolvedResolutionopen 
PlatformWindowsOSVC++ 2015 
Product Version7.7.0 
Target Version7.7.0 
Summary0032859: BRepLib_FindSurface not return an expect plane
Descriptionthere are two bugs :

> bug1: we expect plane's dx is [1, 0, 0], but return [0, 1, 0], After analyse I find that the return normal is [0, 2.4790833534415498e-33,1], it should be [0, 0, 1]
   we can use newell's method to calc the normal

> bug2: The wire is made by Steps to reproduce the problem, then invoke the BRepLib_FindSurface function, it returns plan1. After serialize and deserialize the wire, the BRepLib_FindSurface function return plane2. plane1 and plane2 are different.
After anylise I find deserialize has changed the first Edge's data, I think deserialize should not change the input data[wire.brep]

> this isuee fix the first bug
 
Steps To Reproduce        gp_Pnt pt0(-500, 25, -6);
    gp_Pnt pt1(-450, -25, -6);
    gp_Pnt pt2(450, -25, -6);
    gp_Pnt pt3(500, 25, -6);
    BRepBuilderAPI_MakeVertex v0(pt0);
    TopoDS_Vertex vertex0 = v0.Vertex();

    BRepBuilderAPI_MakeVertex v1(pt1);
    TopoDS_Vertex vertex1 = v1.Vertex();

    BRepBuilderAPI_MakeVertex v2(pt2);
    TopoDS_Vertex vertex2 = v2.Vertex();

    BRepBuilderAPI_MakeVertex v3(pt3);
    TopoDS_Vertex vertex3 = v3.Vertex();

    BRepBuilderAPI_MakeEdge e0(vertex0, vertex1);
    TopoDS_Edge edge0 = e0.Edge();

    BRepBuilderAPI_MakeEdge e1(vertex1, vertex2);
    TopoDS_Edge edge1 = e1.Edge();

    BRepBuilderAPI_MakeEdge e2(vertex2, vertex3);
    TopoDS_Edge edge2 = e2.Edge();

    BRepBuilderAPI_MakeEdge e3(vertex3, vertex0);
    TopoDS_Edge edge3 = e3.Edge();

    BRepBuilderAPI_MakeWire w0(edge0, edge1, edge2, edge3);
    TopoDS_Wire wire = w0.Wire();

    BRepLib_FindSurface findPlane(wire);
    Handle(Geom_Surface) plane = findPlane.Surface();
TagsNo tags attached.
Test case number

Attached Files

  • wire.brep (818 bytes)
  • calc_wire_plane.png (21,384 bytes)

Activities

Manycore

2022-03-02 05:49

developer  

wire.brep (818 bytes)
calc_wire_plane.png (21,384 bytes)

git

2022-03-02 06:18

administrator   ~0107128

Branch CR32859 has been created by Manycore.

SHA-1: 71711b0649bfb600afd113c8a28c301b18e4a52c


Detailed log of new commits:

Author: gelin
Date: Wed Mar 2 11:17:31 2022 +0800

        0032859: BRepLib_FindSurface not return an excepted plane

msv

2022-03-02 18:05

developer   ~0107141

@Manycore, you everywhere in this bug use the word "excepted" (synonym "excluded"). Did you mean "expected" ("anticipated")?

Manycore

2022-03-03 04:43

developer   ~0107155

@msv , sorry, it is a spelling error. I means "expected"

Issue History

Date Modified Username Field Change
2022-03-02 05:49 Manycore New Issue
2022-03-02 05:49 Manycore Assigned To => Manycore
2022-03-02 05:49 Manycore File Added: wire.brep
2022-03-02 05:49 Manycore File Added: calc_wire_plane.png
2022-03-02 05:51 Manycore Description Updated
2022-03-02 06:18 git Note Added: 0107128
2022-03-02 06:20 Manycore Assigned To Manycore => msv
2022-03-02 06:20 Manycore Status new => resolved
2022-03-02 18:05 msv Note Added: 0107141
2022-03-03 04:43 Manycore Note Added: 0107155
2022-03-03 04:43 Manycore Summary BRepLib_FindSurface not return an excepted plane => BRepLib_FindSurface not return an expect plane
2022-03-03 04:43 Manycore Description Updated
2022-03-03 11:49 oan Category OCCT:Mesh => OCCT:Modeling Algorithms
2022-03-03 17:33 msv Assigned To msv => ifv