View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0031479 | Community | OCCT:Modeling Algorithms | public | 2020-04-01 18:40 | 2022-07-07 07:11 |
Reporter | Vico Liang | Assigned To | azv | ||
Priority | normal | Severity | minor | ||
Status | assigned | Resolution | open | ||
Product Version | 6.3.1 | ||||
Target Version | 7.7.0 | ||||
Summary | 0031479: Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) | ||||
Description | The uploaded file just with shape with triangles, without geometry surface. It works when apply move and rotate operation. it's break with scale or mirror. Neither BRepBuilderAPI_Transform or BRepBuilderAPI_GTransform works with scale or mirror transform. | ||||
Steps To Reproduce | test de_mesh obj_read prism 1 XGetOneShape s D tscale s 0 0 0 10 Result: An exception was caught 000001F39E054090 : OSD_Exception_ACCESS_VIOLATION: ACCESS VIOLATION at address 0x0000000000000000 during 'READ' operation ** Exception ** 000001F39E054090 : OSD_Exception_ACCESS_VIOLATION: ACCESS VIOLATION at address 0x0000000000000000 during 'READ' operation | ||||
Tags | No tags attached. | ||||
Test case number | |||||
related to | 0032716 | assigned | azv | Open CASCADE | Modeling Algorithms - BRepBuilderAPI_Transform discards triangulation |
related to | 0032717 | verified | smoskvin | Open CASCADE | Modeling Algorithms - BRepBuilderAPI_Copy should not remove triangulation from surface-less faces |
child of | 0028125 | new | msv | Open CASCADE | Modeling Algorithms - support of BRep shapes based on tessellated geometry |
|
P-51 Mustang 2.brep (611,453 bytes) |
|
Branch CR31479 has been created by abulychev-ext. SHA-1: c2491d80fcd9e53fdd512427e2051264ad711276 Detailed log of new commits: Author: abulyche Date: Wed Apr 20 17:14:07 2022 +0300 0031479: Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) Added the test to reproduce this problem. The methods for BRepTools_TrsfModification are defined and modified to keep the triangulation during 'tscale' operation (without geometry). |
|
Branch CR31479 has been updated forcibly by abulychev-ext. SHA-1: 4efe578d4e0bddbfe35bada66ee20c92d5a628c9 |
|
Branch CR31479 has been updated forcibly by abulychev-ext. SHA-1: e8adcb8b64adc916eec8ab61cc62da03f6626ba6 |
|
Please, review OCCT branch CR32716_2. Test results: http://jenkins-test-occt/view/CR32716_2-master-AZV/view/COMPARE/ |
|
src/BRepTools/BRepTools_GTrsfModification.hxx Please use coding rules for new code. It is needed to invalidate myCachedMinMax of the copy. theTriangulation = theTriangulation->Copy(); Use const& Poly_Triangle aTria = theTriangulation->Triangle(anInd); It is needed to check if the face contains a surface. Also, newUV returns bool that is not checked. if (theTri->HasUVNodes()) { Standard_Real aTol = BRep_Tool::Tolerance(theFace); for (Standard_Integer anInd = 1; anInd <= theTri->NbNodes(); ++anInd) { gp_Pnt2d aP2d = theTri->UVNode(anInd); newUV(aP2d, theFace, myMap, aTol); theTri->SetUVNode(anInd, aP2d); } } It is needed to check if the surface and curve 2d are not null. if (thePoly->HasParameters()) { Standard_Real aTol = Max(BRep_Tool::Tolerance(theEdge), thePoly->Deflection()); TopLoc_Location aLoc; Handle(Geom_Surface) aSurf = BRep_Tool::Surface(theFace, aLoc); Standard_Real aFirst, aLast; Handle(Geom2d_Curve) aC2d = BRep_Tool::CurveOnSurface(theEdge, theFace, aFirst, aLast); The edge can be not SameParameter. Therefore, it is incorrect to project 3D point on 3D curve. Instead, it is needed to project the 2D point on the new 2D curve. Or, may be project 3D point on new surface, and then the result new 2D point to the new 2D curve. Standard_Real aParam = thePoly->Parameter(anInd); gp_Pnt2d aUV = aC2d->Value(aParam); gp_Pnt aPoint = aSurf->Value(aUV.X(), aUV.Y()); newParameter(aPoint, theEdge, myMap, aParam, aTol); thePoly->SetParameter(anInd, aParam); |
|
Branch CR31479_2 has been created by azv. SHA-1: 7e67daf439289153bdb47927a345afedc0bdbd6d Detailed log of new commits: Author: azv Date: Wed Jul 6 17:25:10 2022 +0300 # remarks Author: azv Date: Fri Jul 1 16:46:55 2022 +0300 0031479: Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) * Avoid crash in BRepBuilderAPI_GTransform algorithm. The crash in BRepBuilder_Transform has been solved by 0032716. * Move copying modifier to BRepTools package. * Implement copying of triangulation in BRepTools_NurbsConvertModification. * Implement transformation of a triangulation in BRepTools_GTrsfModification. * Update test case bugs/mesh/bug22778 to clean the triangulation after conversion to NURBS (reproduce the same behavior as before). |
|
Branch CR31479_2 has been updated forcibly by azv. SHA-1: 8bc2a6d2cad07fba6fff16266e41c2362dd9d7f6 |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-04-01 18:40 | Vico Liang | New Issue | |
2020-04-01 18:40 | Vico Liang | Assigned To | => msv |
2020-04-01 18:40 | Vico Liang | File Added: P-51 Mustang 2.brep | |
2020-05-08 00:24 | kgv | Summary | Throw when scale or mirror shapes without geometry surface. => Modeling Algorithms - Throw when scale or mirror shapes without geometry surface. |
2020-05-08 00:28 | kgv | Relationship added | child of 0028125 |
2020-05-08 00:29 | kgv | Summary | Modeling Algorithms - Throw when scale or mirror shapes without geometry surface. => Modeling Algorithms - exception on geometry transformation of triangulation-only shapes (without geometry surface) |
2020-05-08 00:36 | kgv | Steps to Reproduce Updated | |
2020-05-08 00:36 | kgv | Product Version | => 6.3.1 |
2020-09-15 11:58 | msv | Target Version | 7.5.0 => 7.6.0 |
2021-08-29 18:53 | msv | Target Version | 7.6.0 => 7.7.0 |
2022-03-24 11:54 | azv | Relationship added | related to 0032716 |
2022-03-24 11:54 | azv | Relationship added | related to 0032717 |
2022-04-15 12:42 | azv | Assigned To | msv => abulychev-ext |
2022-06-29 15:39 | git | Note Added: 0109385 | |
2022-06-29 16:13 | git | Note Added: 0109391 | |
2022-06-30 11:47 | git | Note Added: 0109412 | |
2022-07-02 15:44 | azv | Assigned To | abulychev-ext => azv |
2022-07-02 15:44 | azv | Status | new => assigned |
2022-07-05 12:41 | azv | Assigned To | azv => msv |
2022-07-05 12:41 | azv | Status | assigned => resolved |
2022-07-05 12:41 | azv | Note Added: 0109566 | |
2022-07-06 17:50 | msv | Note Added: 0109624 | |
2022-07-06 17:50 | msv | Assigned To | msv => azv |
2022-07-06 17:50 | msv | Status | resolved => assigned |
2022-07-06 22:26 | git | Note Added: 0109632 | |
2022-07-07 07:11 | git | Note Added: 0109643 |