View Issue Details

IDProjectCategoryView StatusLast Update
0004592ArchBugpublic2021-08-06 16:20
Reporterbitacovir Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
Product Version0.20 
Summary0004592: [Arch] "Move With Host" property of Arch windows does not work in FC 0.19 /0.20
DescriptionIn FC 0.19 when I move a Arch Wall with a nested Arch Door or Window, these elements do not move with the arch wall.
As default, "Move With Host" property of windows is setup to "True", but it does not work.
This bug is a regression, because the feature "Move with Host" works normally in FC 0.18.4 for arch windows nested in arch walls.

This bug/regression has been mentioned several times in the forum:
https://forum.freecadweb.org/viewtopic.php?f=23&t=53427
https://forum.freecadweb.org/viewtopic.php?f=23&t=53491
https://forum.freecadweb.org/viewtopic.php?f=23&t=53445

Edit: This bug is also present in FC 0.20.

Steps To ReproduceIn FC0.19 / 0.20
-Open Arch Module
-Create an Arch Wall
-Select the wall and place an Arch window in it. (The property "Move With Host" of the window should be True).
-Select the wall and change or move its position. The wall moves, but the window doesn't.

Same steps in FC 0.18.4 make the wall and windows move simultaneously, as expected.
Tags0.19, Arch
FreeCAD InformationOS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24267 (Git)
Build type: Release
Branch: master
Hash: b2ca86d8d72b636011a73394bf9bcdedb3b109b7
Python version: 3.8.8
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: English/United States (en_US)

OS: Windows 10 (10.0)
Word size of FreeCAD: 64-bit
Version: 0.20.25131 (Git)
Build type: Release
Branch: master
Hash: 7c519689f0d5ea78fb3292be36a857d283c05507
Python version: 3.8.10
Qt version: 5.12.9
Coin version: 4.0.0
OCC version: 7.5.2
Locale: English/United States (en_US)

Activities

matthijskooijman

2021-03-31 19:23

reporter   ~0015589

Last edited: 2021-04-01 16:58

I suspect that the relevant bit of code is `get_movable_children()`. Looking there, it seems to iterate over the OutList of the wall looking for children with "MoveWithHost" set, but that seems wrong to me. Any objects that have the wall set in their "Hosts" property, will (AFAIU) appear in the InList of the wall, not the OutList?

I quickly tried this patch:


--- a/src/Mod/Draft/draftutils/groups.py
+++ b/src/Mod/Draft/draftutils/groups.py
@@ -297,8 +297,8 @@ def get_movable_children(objectslist, recursive=True):
     for obj in objectslist:
         # Skips some objects that should never move their children
         if utils.get_type(obj) not in ("Clone", "SectionPlane",
                                        "Facebinder", "BuildingPart"):
-            children = obj.OutList
+            children = obj.InList
             if (hasattr(obj, "Proxy") and obj.Proxy
                     and hasattr(obj.Proxy, "getSiblings")
                     and utils.get_type(obj) != "Window"):

Which seems to work to fix this problem. However, it also breaks the copy tool (gives src/App/Expression.cpp:3109: App::ExpressionParser::ExpressionImporter::ExpressionImporter(Base::XMLReader&): Assertion `!_Reader' failed.)

Also, looking at the git history, it seems that this has been OutList since it was first introduced in 2014 ( FreeCAD master cb5a8079 ), so this is probably not the right fix.

So I guess the window is supposed to be in the wall's outlist? Should it be in the Additions property? That is what commit FreeCAD master cb5a8079 suggests. But if it is in the wall's outlist and the wall is in the window's outlist, then there would be a cycle?

Hm, I guess I do not quite understand yet how all this is supposed to work...

matthijskooijman

2021-05-22 14:58

reporter   ~0015673

See https://forum.freecadweb.org/viewtopic.php?f=23&t=57223 for a lot more detailed investigation about MoveWithHost and its current problems. The above suggested fix certainly is not the right approach :-)

bitacovir

2021-08-06 16:17

reporter   ~0015775

Last edited: 2021-08-06 16:20

I changed the Severity to mayor as requested here: https://forum.freecadweb.org/viewtopic.php?f=23&t=60679
Also this bugs is present in FC 0.20 so I edit FC version references in the original report.

yorik

2022-03-03 13:55

administrator   ~0017007

This ticket has been migrated to GitHub as issue 6175.

Issue History

Date Modified Username Field Change
2021-03-09 19:10 bitacovir New Issue
2021-03-09 19:10 bitacovir Tag Attached: 0.19
2021-03-09 19:10 bitacovir Tag Attached: Arch
2021-03-09 19:12 bitacovir Steps to Reproduce Updated
2021-03-31 19:23 matthijskooijman Note Added: 0015589
2021-04-01 16:56 Kunda1 Note Edited: 0015589
2021-04-01 16:57 Kunda1 Note Edited: 0015589
2021-04-01 16:58 Kunda1 Note Edited: 0015589
2021-05-22 14:58 matthijskooijman Note Added: 0015673
2021-08-06 16:15 bitacovir Severity minor => major
2021-08-06 16:15 bitacovir Product Version 0.19 => 0.20
2021-08-06 16:15 bitacovir Summary [Arch] "Move With Host" property of Arch windows does not work in FC 0.19 => [Arch] "Move With Host" property of Arch windows does not work in FC 0.19 /0.20
2021-08-06 16:15 bitacovir Description Updated
2021-08-06 16:15 bitacovir Steps to Reproduce Updated
2021-08-06 16:15 bitacovir FreeCAD Information OS: Windows 10 (10.0) Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.19.24267 (Git) Build type: Release Branch: master Hash: b2ca86d8d72b636011a73394bf9bcdedb3b109b7 Python version: 3.8.8 Qt version: 5.12.5 Coin version: 4.0.0... => OS: Windows 10 (10.0) Word size of OS: 64-bit Word size of FreeCAD: 64-bit Version: 0.19.24267 (Git) Build type: Release Branch: master Hash: b2ca86d8d72b636011a73394bf9bcdedb3b109b7 Python version: 3.8.8 Qt version: 5.12.5 Coin version: 4.0.0...
2021-08-06 16:17 bitacovir Note Added: 0015775
2021-08-06 16:20 bitacovir Note Edited: 0015775