MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0028055Open CASCADE[OCCT] OCCT:Data Exchangepublic2016-11-07 12:442017-09-29 16:24
Reporterssv 
Assigned Toapn 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.2.0Fixed in Version[OCCT] 7.2.0 
Summary0028055: Add UpdateAssemblies() method for top-down update of assembly compounds
DescriptionThe 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.
TagsNo tags attached.
Test case numberbugs xde bug28055_1, bug28055_2
Attached Files? file icon hugeassembly.tcl (914 bytes) 2017-01-29 18:45

- Relationships
related to 0028082closedabv Open CASCADE UpdateAssembly() method in shape tool is not recursive 
related to 0028402newmsv Open CASCADE Modeling - calculation of properties of complex compounds is slow 

-  Notes
(0059920)
git (administrator)
2016-11-07 13:10

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.
(0059921)
ssv (developer)
2016-11-07 13:10

Dear abv, please, review.
(0060099)
ssv (developer)
2016-11-09 12:20

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).
(0060145)
git (administrator)
2016-11-09 19:14

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

(0060244)
git (administrator)
2016-11-11 16:00

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
(0060245)
ssv (developer)
2016-11-11 16:01

Dear abv, please, review CR28055_1.
(0061860)
ssv (developer)
2016-12-19 15:17

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?
(0061861)
abv (manager)
2016-12-19 15:19

Sergey, I shall review the changes in the coming days, sorry for delay!
(0062404)
abv (manager)
2017-01-05 13:31

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.
(0062412)
git (administrator)
2017-01-09 13:27

Branch CR28055_1 has been updated forcibly by mkv.

SHA-1: a200606b1b9255761ca3cb96f7adf5a625edf3c3
(0062450)
mkv (tester)
2017-01-10 15:24

Dear BugMaster,
Branch CR28055_1 was rebased on current master of occt git-repository.
SHA-1: a200606b1b9255761ca3cb96f7adf5a625edf3c3
(0062451)
mkv (tester)
2017-01-10 15:24

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.
(0062452)
git (administrator)
2017-01-10 15:24

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

(0062453)
mkv (tester)
2017-01-10 15:25

Dear ssv,
Branch CR28055_1 has been rejected due to:
- compilation errors
(0062639)
ssv (developer)
2017-01-16 17:25

Dear Mikhail, please, retest. Branch for products is CR28055.
(0062676)
abv (manager)
2017-01-17 09:41

Note that only products samples have changes, thus there is no need to re-test OCCT and Products, just check compilation of samples.
(0062703)
git (administrator)
2017-01-17 15:35

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

(0062704)
apv (tester)
2017-01-17 16:05

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%]
(0063165)
abv (manager)
2017-01-29 18:51
edited on: 2017-01-29 18:53

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.

(0063534)
git (administrator)
2017-02-08 11:31

Branch CR28055 has been deleted by kgv.

SHA-1: 74352b38fce05e488a90a57c3787cc7bacb2e240
(0063591)
git (administrator)
2017-02-08 11:35

Branch CR28055_1 has been deleted by kgv.

SHA-1: 38ad51415ffef624e534389e6470620cacfb060c

- Related Changesets
occt: master acc909a8
Timestamp: 2017-01-19 13:22:32
Author: ssv
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
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 ]

- Issue History
Date Modified Username Field Change
2016-11-07 12:44 ssv New Issue
2016-11-07 12:44 ssv Assigned To => ssv
2016-11-07 13:10 git Note Added: 0059920
2016-11-07 13:10 ssv Note Added: 0059921
2016-11-07 13:10 ssv Assigned To ssv => abv
2016-11-07 13:10 ssv Status new => resolved
2016-11-09 12:20 ssv Note Added: 0060099
2016-11-09 12:20 ssv Assigned To abv => ssv
2016-11-09 12:20 ssv Status resolved => assigned
2016-11-09 19:14 git Note Added: 0060145
2016-11-09 20:25 ssv Relationship added related to 0028082
2016-11-11 16:00 git Note Added: 0060244
2016-11-11 16:01 ssv Note Added: 0060245
2016-11-11 16:01 ssv Assigned To ssv => abv
2016-11-11 16:01 ssv Status assigned => resolved
2016-12-19 15:17 ssv Note Added: 0061860
2016-12-19 15:19 abv Note Added: 0061861
2017-01-05 13:31 abv Note Added: 0062404
2017-01-05 13:31 abv Assigned To abv => bugmaster
2017-01-05 13:31 abv Status resolved => reviewed
2017-01-09 13:00 mkv Assigned To bugmaster => mkv
2017-01-09 13:27 git Note Added: 0062412
2017-01-10 15:24 mkv Note Added: 0062450
2017-01-10 15:24 mkv Note Added: 0062451
2017-01-10 15:24 git Note Added: 0062452
2017-01-10 15:25 mkv Note Added: 0062453
2017-01-10 15:25 mkv Assigned To mkv => ssv
2017-01-10 15:25 mkv Status reviewed => assigned
2017-01-10 15:25 mkv Test case number => bugs xde bug28055_1, bug28055_2
2017-01-16 17:25 ssv Note Added: 0062639
2017-01-16 17:25 ssv Assigned To ssv => mkv
2017-01-16 17:25 ssv Status assigned => resolved
2017-01-16 17:25 ssv Assigned To mkv => bugmaster
2017-01-16 17:25 ssv Status resolved => reviewed
2017-01-16 18:00 apv Assigned To bugmaster => apv
2017-01-17 09:41 abv Note Added: 0062676
2017-01-17 15:35 git Note Added: 0062703
2017-01-17 16:05 apv Note Added: 0062704
2017-01-17 16:05 apv Assigned To apv => bugmaster
2017-01-17 16:05 apv Status reviewed => tested
2017-01-19 19:07 kgv Relationship added related to 0028234
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 abv File Added: hugeassembly.tcl
2017-01-29 18:51 abv Note Added: 0063165
2017-01-29 18:53 abv Note Edited: 0063165 View Revisions
2017-01-29 18:53 abv Note Edited: 0063165 View Revisions
2017-02-08 11:31 git Note Added: 0063534
2017-02-08 11:35 git Note Added: 0063591
2017-03-30 18:44 abv Relationship added related to 0028402
2017-09-29 16:20 user533 Fixed in Version => 7.2.0
2017-09-29 16:24 user533 Status verified => closed


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker