realthunder / FreeCAD_assembly3

Experimental attempt for the next generation assembly workbench for FreeCAD
GNU General Public License v3.0
885 stars 74 forks source link

Time stamp problem (subshapebinder issues) - NOT assembly related #1297

Open bambukouk opened 1 year ago

bambukouk commented 1 year ago

13:45:20 0.105274 <App> Document.cpp(3224): Project_7mm_02__cylinder_assy_#Binder002.Context: Time stamp changed on link Project_7mm_01__assy_#Assembly001

I have managed to trace it down to some subshape binders and sorted out the problem by re-doing them, but would love to know what am I doing wrong to cause (not for the first time) this "time stamp" issues..., please?

Anybody has any ideas, please?

later edit 2 hrs later another body another subshape binder and the same problem again with Time stamp Deleting shapebinder and replacing it with other constraints resolved the issue.

today's edit the issue continues to persist... if I have two attached files in separate folder all is fine.

Project_7mm01(assy).zip

Project_7mm02(cylinder_assy).zip

and yet, as soon as I put them together in one folder they behave as if the link from to cylinder_assy to assy was still in existence despite it being deleted.

as a result if I try to open cylinder_assy it opens both files.... and dire warnings about time stamp appear

11:01:43 7.96e-07 <App> Document.cpp(3224): Project_7mm_02__cylinder_assy_#Import.Context: Time stamp changed on link Project_7mm_01__assy_#Assembly001

I have kind off solved the problem by renaming both files. Sounds like, deleting the link doesn't delete the references between the files?

OS: Debian GNU/Linux 11 (bullseye) (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 2023.131.26244 +5365 (Git) AppImage
Build type: Release
Branch: LinkDaily
Hash: 73c4ca254c5de8849d104973482e98399fb24863
Python version: 3.10.8
Qt version: 5.15.4
Coin version: 4.0.1
OCC version: 7.6.3
Locale: English/United Kingdom (en_GB)
bambukouk commented 1 year ago

I have managed (don't know how) to create this issue again... :-1:

I have an assembly file (Project_assembly.FCStd which at one time had a link from a sub-assembly Project_cylinder_subass.FCStd).

This link is no longer there (deleted) and yet for some reason I do not understand FreeCAD still seems to think that this link exists...

So, if you try opening sub-assembly file, it opens both sub-assembly and assembly files. Yet if you open assembly file - it is empty and it doesn't open sub-assembly at the same time...

01_simplified.zip

The only way to overcome so far is by changing the name of assembly file :+1: or by deleting subshapebinders in cover_front body :+1:

bambukouk commented 1 year ago

and today it has happened yet again... end result is that if I open affected/faulty subassembly file it opens all the other subassemblies as well as top level assembly file :-1: which it shouldn't do (and normally doesn't do)

I know it happens when I work with all the files (including top level assembly file as well as al the subassemblies), and I modify some subassembly. Something goes wrong and FreeCAD gets confused Even if I am a direct cause of what is happening, the design of software should prevent it... shouldn't it?

The only solution for now is keep renaming top level assembly file...

bambukouk commented 1 year ago

OK some progress... yet again it turns out to be some issue with subshapebinder dropping bound object again into subshapebinder solves time stamp issues and I am able to open subassembly file alone without it opening top assembly file

so... if we take the example here: https://github.com/realthunder/FreeCAD_assembly3/issues/1297#issuecomment-1463861330

01_simplified.zip

and open subassembly file Project_cylinder_subass.FCStd (it opens top/empty assembly file Project_assembly.FCStd as well) we will see the following:

Screenshot_20230313_094850

simply rebinding this shape binder solves all the time stamp issues.

I have now confirmed it (repeatedly) in all the various cases I had in the last few days

  1. renaming top level assembly file circumvents. but does not solve the issue
  2. in all cases it was always subshapebinder involved
  3. all were resolved by rebinding subshapebinder
  4. I can now (after rebinding subshapebinder) open subassembly file without also opening the assembly file :1st_place_medal:

    so, as a simple user, I know how to solve the problem and can carry on safely, but... @realthunder would appreciate your comment as to what is possibly happening? is it a bug or yet another case of user stupidity :+1:

bambukouk commented 1 year ago

after some more investigation it is clear to me that this is nothing to do with Assembly. https://forum.freecad.org/viewtopic.php?t=76747#p667649

bambukouk commented 1 year ago

image image

Suspect binder was created/added to the body after that body was linked to another file, but... linking should not matter? sub-shape is created in the original body binding another body in the same file, not in the linked file???