T-Junction-Toleranz auf 1cm gelockert + dJoin-Safety: keine _Join auf Achsen
T-Junction-Detection (_detect_t_junction): pos_tol von 1mm auf 1cm erhoeht. User-Feedback: bei manuellem Snap kann's leicht ein paar mm danebengehen, 1mm war zu eng. 1cm ist immer noch tight genug fuer Architektur-Workflow. smart_join (dJoin): Safety-Check vor _Join-Fallback. Wenn IRGENDEINE wand_axis in der Selection ist (auch zusaetzlich zu anderen Curves), wird NICHT auf Standard-_Join gefallen — sonst kleistert _Join mehrere Wand- Achsen zu einer Polyline zusammen, der Listener detektiert das als "Source-Duplikat" und vergibt neue Wall-IDs → alle Meta-Verknuepfungen brechen. Stattdessen: Print-Meldung dass T-Join/L-Join nicht gegriffen hat. User muss GENAU 2 Waende selektieren die verbunden werden sollen.
This commit is contained in:
@@ -258,6 +258,19 @@ def _run():
|
||||
except Exception as ex:
|
||||
print("[SMART-JOIN] L-Join error:", ex)
|
||||
|
||||
# Safety: wenn Wand-Achsen selektiert sind, NIE auf Standard-_Join fallen
|
||||
# — das wuerde mehrere Achsen zu einer Curve zusammenkleben und die Wand-
|
||||
# Verknuepfung zerstoeren (Source-Duplikat-Listener kapert die alte ID).
|
||||
has_wand_axis = any(
|
||||
obj.Attributes.GetUserString("dossier_type") == "wand_axis"
|
||||
for obj in sel)
|
||||
if has_wand_axis:
|
||||
print("[SMART-JOIN] Wand-Achsen selektiert: T-Join/L-Join hat nicht "
|
||||
"gegriffen (zu viele Selektionen oder zu weit weg). Bitte "
|
||||
"GENAU 2 Waende selektieren die sich verbinden sollen, dann "
|
||||
"erneut Cmd+J.")
|
||||
return
|
||||
|
||||
# Curves nach Closed/Open trennen
|
||||
closed_objs = []
|
||||
has_non_closed = False
|
||||
|
||||
Reference in New Issue
Block a user