realthunder / FreeCAD

Link branch FreeCAD
Other
744 stars 47 forks source link

BIM Door creation issue #468

Open QuakeString opened 3 years ago

QuakeString commented 3 years ago

Unable to subtract door from a wall https://youtu.be/zF187cZFP7E above link to demonstrate the issue. AppImage version 2021.311

The same process I try with FreeCAD 0.19, and there it works as it should.

my system Manjaro (21.0) KDE Plasma 5.21.3

realthunder commented 3 years ago

Can you please post a sample file showing the problem?

QuakeString commented 3 years ago

Can you please post a sample file showing the problem?

here is the FCStd file

realthunder commented 3 years ago

There is some deeper problem in the Arch Window and Wall object here. The object dependency is inverted for some reason (i.e. the Window object depends on the Wall, but by right it should the parent object depends on the child). This cause the objects to be recomputed in wrong orders. If you open your attached file in the upstream FreeCAD, and mark the whole document for recompute, you'll also get some incorrect behavior. The door will jump around each time you mark the recompute.

With my branch the first time recompute has no effect, because of the wrong dependency order, i.e. the Wall is recomputed before the door. Should be the other way round. You'll have to manually mark the Wall for recompute to get the result. I'll raise this issue in the forum later.

QuakeString commented 3 years ago

Thanks for explaining.

luzpaz commented 3 years ago

CC @yorikvanhavre

luzpaz commented 2 years ago

@QuakeString can you identify an open upstream Arch ticket that reflects this ?

yorikvanhavre commented 2 years ago

Just to clarify, in Arch, windows depend on their "host" wall, not the contrary (Windows have a "Hosts" property that points to their hosts objects. This was made because almost everyone wanted windows position to be dependent on the underlying wall face. A wall dependency on a window should in principle not exist (the wall "soft-scans" for windows attached to it, without creating an explicit dependency).

One should test if the same problem occurs on vanilla FreeCAD...