View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026410 | Community | OCCT:Shape Healing | public | 2015-07-09 09:55 | 2023-08-01 15:06 |
Reporter | Vico Liang | Assigned To | |||
Priority | normal | Severity | major | ||
Status | new | Resolution | open | ||
Platform | Windows | OS | VC++ 2013 | ||
Product Version | 6.9.0 | ||||
Target Version | Unscheduled | ||||
Summary | 0026410: ShapeUpgrade_UnifySameDomain::Generated method returns mismatched shape. | ||||
Description | TopoDS_Shape ShapeUpgrade_UnifySameDomain::Generated (const TopoDS_Shape& aShape) const method has two issues: 1. The generated shape type is mismatched with the input shape type aShape. E.g. aShape with type FACE will generate a shape with type SHELL. 2. The generated shape type is matched but the shape doen't exist in final shape. E.g. aShape with type Wire will generate a Wire shape but the wire shape can't be found in result shape. Code snipped as below: TopoDS_Shape a2RectangleFuse = // load from uploaded brep file. ShapeUpgrade_UnifySameDomain aUSD(a2RectangleFuse); aUSD.Build(); TopoDS_Shape aShapeMerged = aUSD.Shape(); TopTools_IndexedMapOfShape aShapeMap; TopExp::MapShapes(aShapeMerged, aShapeMap); TopTools_IndexedMapOfShape aOriginalMap; TopExp::MapShapes(a2RectangleFuse, aOriginalMap); for (Standard_Integer aIndex = 1; aIndex <= aOriginalMap.Extent(); ++aIndex) { TopoDS_Shape aShape0 = aOriginalMap.FindKey(aIndex); TopoDS_Shape aShape1 = aUSD.Generated(aShape0); if (aShape1.IsNull()) continue; if (aShape0.ShapeType() != aShape1.ShapeType()) { std::cout << "ShapeType is diff."; } if (!aShapeMap.Contains(aShape1)) { std::cout << "Shape is out of scope."; TopTools_IndexedMapOfShape aSubShapes; TopExp::MapShapes(aShape1, aShape0.ShapeType(), aSubShapes); aShape1 = aSubShapes.FindKey(1); if (!aShapeMap.Contains(aShape1)) { std::cout << "Sub Shape is out of scope."; } } } | ||||
Tags | No tags attached. | ||||
Test case number | |||||
|
2RectangleFuse.brep (4,574 bytes) |
|
ShapeUpgrade_UnifySameDomain::Generated should return the compatible shape otherwise it's impossible to track the modification history for topology naming in parametric modeling. |
|
Another issue is that all the faces are modified after unifing even if the faces are not merged at all. This causes no necessary memory data copy. Why not share the faces which not need to be touched? |
|
Upgrade the severity to Major. |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-07-09 09:55 | Vico Liang | New Issue | |
2015-07-09 09:55 | Vico Liang | Assigned To | => gka |
2015-07-09 09:56 | Vico Liang | File Added: 2RectangleFuse.brep | |
2015-07-09 15:40 | Vico Liang | Note Added: 0042870 | |
2015-07-12 05:49 | Vico Liang | Note Added: 0042944 | |
2015-07-12 05:51 | Vico Liang | Note Added: 0042945 | |
2015-07-12 05:51 | Vico Liang | Severity | minor => major |
2015-12-18 11:50 |
|
Target Version | 7.0.0 => 7.1.0 |
2016-10-26 11:57 |
|
Target Version | 7.1.0 => 7.2.0 |
2017-07-27 09:33 |
|
Target Version | 7.2.0 => 7.4.0 |
2019-09-04 12:58 |
|
Target Version | 7.4.0 => 7.5.0 |
2020-09-11 16:48 |
|
Target Version | 7.5.0 => 7.6.0 |
2021-11-01 18:13 |
|
Target Version | 7.6.0 => 7.7.0 |
2022-10-24 10:43 |
|
Target Version | 7.7.0 => 7.8.0 |
2023-08-01 15:06 | dpasukhi | Target Version | 7.8.0 => Unscheduled |