Remove all first-draft rotational-related code from Path workbench to make way for more stable, long-term integration of a rotational indexing capability.
The code that was intended to handle this preference looked inside
Mod/BIM instad of Mod/Draft for the preference. This seems to have been
broken since the preference was first introduced in commit 9976a5ece0
(Draft: Turned autogroup button into layers selector (added pref option
to restore old groups-based system)).
This also removes a stray "-" that was probably a leftover from a merge
conflict, introduced in commit 0547d23660 (Draft: move Draft_AutoGroup to
gui_groups module). Since -True is still true and -False is still false,
this did not actually break the code, though.
See https://forum.freecadweb.org/viewtopic.php?t=42018 for related
discussion.
This uses the default value that can be passed to getattr to simplify
code that uses it. By choosing an appropriate default value, a separate
call to hasattr can be avoided and in some cases duplicate code can be
avoided.
This applies this trick where possible in wire.py and circle.py.
This commit does not change behavior.
This caused the original object to be moved when using the Draft move
tool to move a link object, when the original object has MoveWithHost
set (e.g. a Window). There was already a similar exception for clones,
so it makes sense to extend this for links too.
Note that there seem to be more problems with the "MoveWithHost"
mechanism and fixing them might completely refactor this code, but until
then, this is a simple and targeted fix that at least makes moving
links to windows work as expected.
See https://forum.freecadweb.org/viewtopic.php?f=23&t=57223 for
discussion of this bug, its fix and the additional problems mentioned.
I did my best (I'm a programming novice) to understand the code and to improve the IFC export for slabs.
ATM for every slab all contour edges are exported as IFCSTRUCTURALCURVEMEMBER except the last closing one (see forum thread https://forum.freecadweb.org/viewtopic.php?f=39&t=54286).
This changes aim to also add the last closing edge for slabs.
In a few locations, python objects are used without checking if they
exist and are non-null, which throws missing attribute exceptions. The
fix is to simply check first.
the PR fixes the following things:
- change the way centerlines between 2 lines are calculated. The current implementation leads to many bugs and even crashes (e.g. when the 2 selected lines are parallel ones of a square). There are different forum threads from the last 1.5 years.
The new endpoint line sorting is the one described here: https://forum.freecadweb.org/viewtopic.php?f=35&start=20&t=44255&sid=989a668890f954c13ef81e4a04ee6912#p501179
- as consequence the erroneous and misleading line end flipping can go and is removed (only used internally)
- when creating a new centerline, you see it immediately
- when creating a new or editing an existing centerline and press Cancel, the creation/editing is aborted
- fix crash when the 2 selected lines are bot horizontal and one tries to create a vertical centerline
- fix crash when changing the orientation of an existing centerline and the result would be invalid
- cleanup the code a bit