[Bug 4480] Cross-document linking does not update on Recompute

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
mapeze
Posts: 12
Joined: Tue Oct 27, 2020 8:23 pm

[Bug 4480] Cross-document linking does not update on Recompute

Post by mapeze »

Hello,

In the past I successfully used the Cross-document linking feature as described here: https://wiki.freecadweb.org/Expressions

But now, after I edit the master cell value I can only update the slave cell value if I enter the cell to edit + press Enter or closing and opening the slave document.

Am I missing something?

Regards and lot of congratulations for this incredible work.

I attach the master and slave files I use for testing.

OS: Debian GNU/Linux 10 (buster) (XFCE/lightdm-xsession)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22846 (Git) AppImage
Build type: Release
Branch: master
Hash: 1f46b72491a0008384a6db4f2615a656249f6f08
Python version: 3.8.6
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: English/United States (en_US)
Attachments
Master.FCStd
(1.74 KiB) Downloaded 33 times
Slave.FCStd
(1.82 KiB) Downloaded 37 times
Last edited by mapeze on Fri Oct 30, 2020 7:56 am, edited 2 times in total.
mapeze
Posts: 12
Joined: Tue Oct 27, 2020 8:23 pm

Re: Cross-document linking does not update on refresh

Post by mapeze »

I tested with another two systems:

1) The update works as expected:

OS: Debian GNU/Linux 10 (buster)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.
Build type: Release
Python version: 2.7.16rc1
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)

2) The update does not work until I enter the slave cell and press Enter or I reopen the slave document

OS: Debian GNU/Linux 10 (buster) (XFCE/xfce)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21280 (Git) AppImage
Build type: Release
Branch: master
Hash: 6f3160db3e88733536c7eaf97ad7d6ebd21baccd
Python version: 3.8.2
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: Basque/Spain (eu_ES)

Anyone willing to test in another system?
mapeze
Posts: 12
Joined: Tue Oct 27, 2020 8:23 pm

Re: Cross-document linking does not update on refresh

Post by mapeze »

Another test with no slave update on refresh:

OS: Debian GNU/Linux 10 (buster) (XFCE/lightdm-xsession)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.22846 (Git) AppImage
Build type: Release
Branch: master
Hash: 1f46b72491a0008384a6db4f2615a656249f6f08
Python version: 3.8.6
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: English/United States (en_US)
mapeze
Posts: 12
Joined: Tue Oct 27, 2020 8:23 pm

Re: [Bug 4480] Cross-document linking does not update on Recompute

Post by mapeze »

The next versions works as expected:

OS: Debian GNU/Linux 10 (buster) (XFCE/lightdm-xsession)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.16822 (Git) AppImage
Build type: Release
Branch: master
Hash: 243aebf2dfbfe192b5bbd067020a5318a0fa8d0d
Python version: 3.7.1
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Basque/Spain (eu_ES)
rhprice2
Posts: 2
Joined: Wed Sep 22, 2021 3:38 pm

Re: [Bug 4480] Cross-document linking does not update on Recompute

Post by rhprice2 »

I am experiencing the same problem. Do you think there is a macro workaround? Would a forced recalculate solve the problem?
mapeze
Posts: 12
Joined: Tue Oct 27, 2020 8:23 pm

Re: [Bug 4480] Cross-document linking does not update on Recompute

Post by mapeze »

No idea about the macro workaround, but I found an ugly one:

- In the slave document, mark "skip recomputes" (not necessary, just safer if your slave is driving constraints of a model).
- Copy/cut/paste all cells of the slave's spreadsheet. All cells at once works well.
- Unmark "skip recomputes" if desired.

Once done, the update seems to work again until you reopen the slave. So the hack needs to be done once every time you work with the slave.
Post Reply