View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0028055 | Open CASCADE | OCCT:Data Exchange | public | 2016-11-07 12:44 | 2019-09-14 08:02 |
Reporter | Assigned To | apn | |||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Target Version | 7.2.0 | Fixed in Version | 7.2.0 | ||
Summary | 0028055: Add UpdateAssemblies() method for top-down update of assembly compounds | ||||
Description | The proposed method is a part of XCAFDoc_ShapeTool. The idea is to traverse all assemblies recursively and to rebuild compounds for those (sub-)assemblies which happen to have the modified instances. This method is global. It is designed for synchronization of the nested TopoDS_Compounds with the actual geometry stored in an assembly. | ||||
Tags | No tags attached. | ||||
Test case number | bugs xde bug28055_1, bug28055_2 | ||||
parent of | 0030738 | closed | bugmaster | Open CASCADE | Data Exchange - XCAFDoc_ShapeTool::updateComponent() is too long |
related to | 0028082 | closed | Open CASCADE | UpdateAssembly() method in shape tool is not recursive | |
related to | 0028402 | new | Open CASCADE | Modeling - calculation of properties of complex compounds is slow | |
related to | 0026314 | closed | Open CASCADE | Method XCAFDoc_ShapeTool::SetShape() works not correctly. |
|
Branch CR28055 has been created by ssv. SHA-1: 26a909c1f8887b54606baa9aca5bc357dcd53b45 Detailed log of new commits: Author: ssv Date: Mon Nov 7 13:09:37 2016 +0300 28055: Add UpdateAssemblies() method for top-down update of assembly compounds Add new methods to XCAFDoc_ShapeTool for global assembly update. |
|
Dear abv, please, review. |
|
The following remarks are to be taken into account: - The method does not work on removal of instances. - It is necessary to implement the corresponding Draw command. - It is necessary to prepare a test case (take the Draw-embedded XDE demo as a basis). |
|
Branch CR28055 has been updated by ssv. SHA-1: 74352b38fce05e488a90a57c3787cc7bacb2e240 Detailed log of new commits: Author: ssv Date: Wed Nov 9 19:14:07 2016 +0300 Fix UpdateAssemblies() to work for component removal; add Draw command XUpdateAssemblies Author: ssv Date: Wed Nov 9 18:07:44 2016 +0300 Merge branch 'CR28055' of git.dev.opencascade.org:occt into CR28055 |
|
Branch CR28055_1 has been created by ssv. SHA-1: 133131f7f09823102dcde64e7332a1bf34ad4ce9 Detailed log of new commits: Author: ssv Date: Fri Nov 11 15:59:05 2016 +0300 0028055: Add UpdateAssemblies() method for top-down update of assembly compounds - Implement top-down update for assemblies in XCAFDoc_ShapeTool - Get rid of UpdateAssembly() method used for partial (parent-only) update - Adjust STEP and IGES translators to use the top-down update after filling OCAF - Implement XUpdateAssemblies Draw command - Add test cases bug28055_1 and bug28055_2 for component removal and part update - Update XDE documentation to mention the new UpdateAssemblies() method |
|
Dear abv, please, review CR28055_1. |
|
I tried to figure out whether it is possible to get rid of UpdateAssemblies() invocation at the end of STEP/IGES translation. However, I see that STEPCAFControl_Reader::AddShape() method works as follows: 1. It first creates an empty compound by XCAFDoc_ShapeTool::NewShape() method. 2. It then populates the assembly by XCAFDoc_ShapeTool::AddComponent() method which rebuilds the owner compound. Therefore, I failed to figure out how to avoid UpdateAssemblies() invocation without changing the translation logic. Any ideas? |
|
Sergey, I shall review the changes in the coming days, sorry for delay! |
|
No remarks, please test. I had a doubt whether some means should be added to avoid repetitive analysis of the same assembly label, in case of multiple use of it in higher-level assemblies. However, tests showed that even for assemblies with very high repetition it works very fast. I made 4-level assembly with repetition of the same sub-item 12-36 times at each level, total 93 K instances of simple part, and UpdateAssemblies takes just 0.2 sec in this test. |
|
Branch CR28055_1 has been updated forcibly by mkv. SHA-1: a200606b1b9255761ca3cb96f7adf5a625edf3c3 |
|
Dear BugMaster, Branch CR28055_1 was rebased on current master of occt git-repository. SHA-1: a200606b1b9255761ca3cb96f7adf5a625edf3c3 |
|
Dear BugMaster, Branch CR28055_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode. SHA-1: a200606b1b9255761ca3cb96f7adf5a625edf3c3 There are following compilation errors: Linux: http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28055_1-master/job/CR28055_1-master-Products-Debian70-64-qt-samples-linux/1/parsed_console/ src/OMFSampleDoc.cpp:1050:10: error: 'class XCAFDoc_ShapeTool' has no member named 'UpdateAssembly' Windows: http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28055_1-master/job/CR28055_1-master-Products-Windows-64-VC10-mfc-samples/1/parsed_console/ 1>src\XDESampleDoc.cpp(891): error C2039: 'UpdateAssembly' : is not a member of 'XCAFDoc_ShapeTool' http://jenkins-test-07.nnov.opencascade.com:8080/view/CR28055_1-master/job/CR28055_1-master-Products-Windows-64-VC10-qt-samples-windows/1/parsed_console/ 1>src\OMFSampleDoc.cpp(1050): error C2039: 'UpdateAssembly' : is not a member of 'XCAFDoc_ShapeTool' 1>src\CADAssistantDoc.cpp(891): error C2039: 'UpdateAssembly' : is not a member of 'XCAFDoc_ShapeTool' Number of compiler warnings: occt component : Linux: 0 (0 on master) Windows: 0 (0 on master) MacOS : 0 (0 on master) products component : Linux: 63 (63 on master) Windows: 0 (0 on master) MacOS : 1148 Regressions/Differences/Improvements: http://occt-tests/CR28055_1-master-OCCT/Windows-64-VC10/bugs/fclasses/bug28217.html bugs fclasses bug28217: IMPROVEMENT Testing cases: http://occt-tests/CR28055_1-master-OCCT/Debian70-64/bugs/xde/bug28055_1.html http://occt-tests/CR28055_1-master-OCCT/Windows-64-VC10/bugs/xde/bug28055_1.html bugs xde bug28055_1: OK http://occt-tests/CR28055_1-master-OCCT/Debian70-64/bugs/xde/bug28055_2.html http://occt-tests/CR28055_1-master-OCCT/Windows-64-VC10/bugs/xde/bug28055_2.html bugs xde bug28055_2: OK Testing on Linux: occt component : Total MEMORY difference: 93502589 / 92897412 [+0.65%] Total CPU difference: 21411.930000000164 / 21506.1200000003 [-0.44%] products component : Total MEMORY difference: 30340236 / 30395462 [-0.18%] Total CPU difference: 5354.829999999978 / 5312.789999999971 [+0.79%] Testing on Windows: occt component : Total MEMORY difference: 58645700 / 58649007 [-0.01%] Total CPU difference: 18851.129639798637 / 19749.742200098677 [-4.55%] products component : Total MEMORY difference: 21152254 / 21118126 [+0.16%] Total CPU difference: 5185.192438199971 / 5256.094892699988 [-1.35%] There are no differences in images found by testdiff. |
|
Branch CR28055_1 has been updated by mkv. SHA-1: 539fc2a39c24c1858c79abff27e3300cd66660f3 Detailed log of new commits: Author: mkv Date: Tue Jan 10 15:23:50 2017 +0300 Correction for issue CR28055 |
|
Dear ssv, Branch CR28055_1 has been rejected due to: - compilation errors |
|
Dear Mikhail, please, retest. Branch for products is CR28055. |
|
Note that only products samples have changes, thus there is no need to re-test OCCT and Products, just check compilation of samples. |
|
Branch CR28055_1 has been updated by apv. SHA-1: 38ad51415ffef624e534389e6470620cacfb060c Detailed log of new commits: Author: apv Date: Tue Jan 17 15:34:58 2017 +0300 Adjusting of test case bugs/fclasses/bug28217 |
|
Dear BugMaster, Branch CR28055_1 from occt git-repository (and CR28055 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested. SHA-1: a200606b1b9255761ca3cb96f7adf5a625edf3c3 SHA-1: 6504c9a9260114ca4a44b519b325944e46490f25 Number of compiler warnings: occt component: Linux: 0 (0 on master) Windows: 0 (0 on master) MasOS: 0 (0 on master) products component: Linux: 63 Windows: 0 MacOS: 1158 Regressions/Differences: Not detected Testing cases: bugs xde bug28055_1 - OK http://occt-tests/CR28055_1-CR28055-OCCT/Debian70-64/bugs/xde/bug28055_1.html http://occt-tests/CR28055_1-CR28055-OCCT/Windows-64-VC10/bugs/xde/bug28055_1.html bugs xde bug28055_2 - OK http://occt-tests/CR28055_1-CR28055-OCCT/Debian70-64/bugs/xde/bug28055_2.html http://occt-tests/CR28055_1-CR28055-OCCT/Windows-64-VC10/bugs/xde/bug28055_2.html Testing on Linux: occt component: Total MEMORY difference: 93163769 / 92845130 [+0.34%] Total CPU difference: 21047.99000000019 / 21506.1200000003 [-2.13%] products component: Total MEMORY difference: 30290214 / 30395462 [-0.35%] Total CPU difference: 5298.619999999974 / 5312.789999999971 [-0.27%] Testing on Windows: occt component: Total MEMORY difference: 58636711 / 58649007 [-0.02%] Total CPU difference: 19378.50662039858 / 19749.742200098677 [-1.88%] products component: Total MEMORY difference: 21150066 / 21118126 [+0.15%] Total CPU difference: 5207.812583199963 / 5256.094892699988 [-0.92%] |
2017-01-29 18:45 manager |
hugeassembly.tcl (914 bytes) |
|
Script used for testing of UpdateAssemblies command on large assembly mentioned in 0028055:0062404 is attached, see hugeassembly.tcl; note that it takes ~ 18 min to complete shape construction part. |
|
Branch CR28055 has been deleted by kgv. SHA-1: 74352b38fce05e488a90a57c3787cc7bacb2e240 |
|
Branch CR28055_1 has been deleted by kgv. SHA-1: 38ad51415ffef624e534389e6470620cacfb060c |
occt: master acc909a8 2017-01-19 13:22:32
Committer: apn Details Diff |
0028055: Add UpdateAssemblies() method for top-down update of assembly compounds - Implement top-down update for assemblies in XCAFDoc_ShapeTool - Get rid of UpdateAssembly() method used for partial (parent-only) update - Adjust STEP and IGES translators to use the top-down update after filling OCAF - Implement XUpdateAssemblies Draw command - Add test cases bug28055_1 and bug28055_2 for component removal and part update - Update XDE documentation to mention the new UpdateAssemblies() method Correction for issue CR28055 Adjusting of test case bugs/fclasses/bug28217 |
Affected Issues 0028055 |
|
mod - dox/user_guides/draw_test_harness/draw_test_harness.md | Diff File | ||
mod - dox/user_guides/xde/xde.md | Diff File | ||
mod - src/IGESCAFControl/IGESCAFControl_Reader.cxx | Diff File | ||
mod - src/QABugs/QABugs_19.cxx | Diff File | ||
mod - src/STEPCAFControl/STEPCAFControl_Reader.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ShapeTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ShapeTool.hxx | Diff File | ||
mod - src/XDEDRAW/XDEDRAW_Shapes.cxx | Diff File | ||
mod - tests/bugs/fclasses/bug28217 | Diff File | ||
add - tests/bugs/xde/bug28055_1 | Diff File | ||
add - tests/bugs/xde/bug28055_2 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-11-07 12:44 |
|
New Issue | |
2016-11-07 12:44 |
|
Assigned To | => ssv |
2016-11-07 13:10 | git | Note Added: 0059920 | |
2016-11-07 13:10 |
|
Note Added: 0059921 | |
2016-11-07 13:10 |
|
Assigned To | ssv => abv |
2016-11-07 13:10 |
|
Status | new => resolved |
2016-11-09 12:20 |
|
Note Added: 0060099 | |
2016-11-09 12:20 |
|
Assigned To | abv => ssv |
2016-11-09 12:20 |
|
Status | resolved => assigned |
2016-11-09 19:14 | git | Note Added: 0060145 | |
2016-11-09 20:25 |
|
Relationship added | related to 0028082 |
2016-11-11 16:00 | git | Note Added: 0060244 | |
2016-11-11 16:01 |
|
Note Added: 0060245 | |
2016-11-11 16:01 |
|
Assigned To | ssv => abv |
2016-11-11 16:01 |
|
Status | assigned => resolved |
2016-12-19 15:17 |
|
Note Added: 0061860 | |
2016-12-19 15:19 |
|
Note Added: 0061861 | |
2017-01-05 13:31 |
|
Note Added: 0062404 | |
2017-01-05 13:31 |
|
Assigned To | abv => bugmaster |
2017-01-05 13:31 |
|
Status | resolved => reviewed |
2017-01-09 13:00 |
|
Assigned To | bugmaster => mkv |
2017-01-09 13:27 | git | Note Added: 0062412 | |
2017-01-10 15:24 |
|
Note Added: 0062450 | |
2017-01-10 15:24 |
|
Note Added: 0062451 | |
2017-01-10 15:24 | git | Note Added: 0062452 | |
2017-01-10 15:25 |
|
Note Added: 0062453 | |
2017-01-10 15:25 |
|
Assigned To | mkv => ssv |
2017-01-10 15:25 |
|
Status | reviewed => assigned |
2017-01-10 15:25 |
|
Test case number | => bugs xde bug28055_1, bug28055_2 |
2017-01-16 17:25 |
|
Note Added: 0062639 | |
2017-01-16 17:25 |
|
Assigned To | ssv => mkv |
2017-01-16 17:25 |
|
Status | assigned => resolved |
2017-01-16 17:25 |
|
Assigned To | mkv => bugmaster |
2017-01-16 17:25 |
|
Status | resolved => reviewed |
2017-01-16 18:00 |
|
Assigned To | bugmaster => apv |
2017-01-17 09:41 |
|
Note Added: 0062676 | |
2017-01-17 15:35 | git | Note Added: 0062703 | |
2017-01-17 16:05 |
|
Note Added: 0062704 | |
2017-01-17 16:05 |
|
Assigned To | apv => bugmaster |
2017-01-17 16:05 |
|
Status | reviewed => tested |
2017-01-20 16:12 | apn | Changeset attached | => occt master acc909a8 |
2017-01-20 16:12 | apn | Assigned To | bugmaster => apn |
2017-01-20 16:12 | apn | Status | tested => verified |
2017-01-20 16:12 | apn | Resolution | open => fixed |
2017-01-29 18:45 |
|
File Added: hugeassembly.tcl | |
2017-01-29 18:51 |
|
Note Added: 0063165 | |
2017-01-29 18:53 |
|
Note Edited: 0063165 | |
2017-01-29 18:53 |
|
Note Edited: 0063165 | |
2017-02-08 11:31 | git | Note Added: 0063534 | |
2017-02-08 11:35 | git | Note Added: 0063591 | |
2017-03-30 18:44 |
|
Relationship added | related to 0028402 |
2017-09-29 16:20 |
|
Fixed in Version | => 7.2.0 |
2017-09-29 16:24 |
|
Status | verified => closed |
2019-05-23 22:59 | kgv | Relationship added | parent of 0030738 |
2019-09-14 08:02 |
|
Relationship added | related to 0026314 |