Problems / Course of Developement:
1. Allow changing Sill feature was added in
- https://github.com/FreeCAD/FreeCAD/pull/21005
2. Bug fix was added in
- f6bba5d58e
3. Further Problems were identified as discused in
- https://github.com/FreeCAD/FreeCAD/pull/21005#issuecomment-3010959162
'New Observation-
1. Clone or Link to a Window does not work and return error
2. This PR/Commit (21005) translate the Base Sketch when Sill property is changed, to change the final disposition of a Window object; however, it will also shift the disposition of a Clone and Link as a result (with error message above fixed). This is apparently not an expected behaviour.
(Sidenote- When SketchArch Addon is installed and parametric placement is used, there would not no impact)
Current Commit:
1. Support Link and Clone of Arch Windows (bug fix)
2. Instead of changing base Sketch disposition, the Placement of Arch Window, Clone, or Link is adjusted.
* [ArchWindow] subVolume Support Multi-Material (bug fix)
Fix#21640
BIM: Automatic hole depth for windows issue (new window depth algorithm cannot determine the width of the wall when using multimaterial)
* [ArchWindow] subVolume Support Multi-Material (bug fix) / Further fix
(Fix problem found by Github CodeQL - Local variable 'totalThk' may be used before it is initialized)
Fix#21640
BIM: Automatic hole depth for windows issue (new window depth algorithm cannot determine the width of the wall when using multimaterial)
Fixes#21364.
`self.Type` should be set in `__init__` and `loads`, and not in `onDocumentRestored`.
Additionally:
fixed mistake in `loads` in ifc_objects.py.
* [ArchWindow] Bug-fix Changing Sill _&_ SketchArch Support Sill Property
1. Bug found in https://github.com/FreeCAD/FreeCAD/pull/21005 (Allow changing Sill parameter)
self.baseSill
self.basePos :
- need to be restored as 'initial' settings in onDocumentRestored() as corresponding codes in onChanged() does upon object creation
2. ArchWindow with SketchArch add-on to support above 'Allow changing Sill paramemeter' feature
- Update to ArchWindow following groundworks in https://github.com/FreeCAD/FreeCAD/pull/21568/
* [ArchWindow] Bug-fix Changing Sill _&_ SketchArch Support Sill Property (rev)
* BIM: improve tooltip for window Frame property
* BIM: rename window editor's Thickness label to Frame depth
In order to match the window's Frame property, to which
this value is added to.
- Improve tooltip
- Rename the 'default' label to be more specific
* BIM: improve window editor's Offset property tooltip
- Rename 'default' label for clarity
User has no possibility to change Sill parameter upon adding Window, it
is only possible while creating Window for the first time.
So this patch adds this parameter, and changing it moves the *BASE*
coordinate of the object in Z direction.
* [ArchWindow] Improve SubVolume() HoleDepth deduction algorithm
https://github.com/FreeCAD/FreeCAD/issues/19559https://forum.freecad.org/viewtopic.php?t=92360https://forum.freecad.org/viewtopic.php?p=812844#p812844
Current HoldeDepth deduction algorithm is too 'agressive' and may punch holes in adjacent wall segment.
With improved algorithm, ArchComponent pass the Window's host information to ArchWindow getSubVolume() to deduce HoleDepth taking into account of Wall's Width /getWidths for Wall Base is ArchSkech
TODO: For future development - More robust approach
With ArchSketch, on which wall segment an ArchObject is attached to is declared by user and saved.
The extrusion of each wall segment could be done per segment, and punch hole in the exact wall segment before fusing them all. No need to care about each wall segement thickness.
* [ArchWindow] Typo Lint reported
* [ArchWindow] Fix getSubFace(self) raise NotImplementedError
Github comment - https://github.com/FreeCAD/FreeCAD/pull/19774#discussion_r1972052310