[FIX] Kreisel-Weichen: Ende-an-Ende-Raeder und Zeichentoleranz
- Rad/Rad an beiden Flanken gilt nur bei gleich ausgerichteten Raedern als "Seite an Seite"; in Gegenrichtung (Kreisel seitlich versetzt Ende an Ende) ist es eine Weiche - toleranz_beruehrung von 1 auf 10 mm (Zeichenungenauigkeiten, Spalt und Ueberlappung) - Unit-Tests fuer Ende-an-Ende, Seite-an-Seite und den Fall aus test.dxf (E3/C7) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -935,6 +935,35 @@
|
||||
(tu-bp-el "ECKRAD" 400.0 800.0 0.0 0.0 0.0 "B"))
|
||||
1.0 1.0)))
|
||||
(tu-eq "kreisel-bp/flanke-eckrad" 1 (length _ber))
|
||||
;; Kreisel seitlich versetzt Ende an Ende (Raeder Flanke an Flanke, aber in
|
||||
;; Gegenrichtung) -> Weiche, keine Seite-an-Seite-Kollision
|
||||
(setq _erg (kreisel-bp-berechnen (list (tu-bp-el "KREISEL" 0.0 0.0 0.0 0.0 2000.0 "A")
|
||||
(tu-bp-el "KREISEL" 2000.0 800.0 0.0 0.0 2000.0 "B"))
|
||||
1.0 1.0))
|
||||
(tu-eq "kreisel-bp/ende-an-ende-art" '("Kreis/Kreis") (tu-bp-arten (car _erg)))
|
||||
(tu-eqf "kreisel-bp/ende-an-ende-punkt" '(2400.0 400.0) (cdr (assoc "p" (car (car _erg)))))
|
||||
(tu-nil "kreisel-bp/ende-an-ende-keine-kollision" (cadr _erg))
|
||||
;; Gleich ausgerichtete Raeder Flanke an Flanke (echtes Seite an Seite) -> keine Weiche
|
||||
(setq _erg (kreisel-bp-berechnen (list (tu-bp-el "KREISEL" 0.0 0.0 0.0 0.0 2000.0 "A")
|
||||
(tu-bp-el "KREISEL" 0.0 800.0 0.0 0.0 2000.0 "B"))
|
||||
1.0 1.0))
|
||||
(tu-nil "kreisel-bp/seite-an-seite-keine-weiche" (car _erg))
|
||||
;; results/test.dxf (E3/C7): Kreisel 2/3/4 Ende an Ende (0.9 mm Ueberlappung bzw.
|
||||
;; 5.5 mm), Kreisel 8 vor dem Profil von Kreisel 9 (2.6 mm Spalt) - mit 10 mm
|
||||
;; Toleranz drei Weichen
|
||||
(setq _erg (kreisel-bp-berechnen
|
||||
(list (tu-bp-el "KREISEL" 4940.03 -7603.25 2000.0 90.0 4500.0 "2")
|
||||
(tu-bp-el "KREISEL" 5739.13 -12898.65 2000.0 90.0 5296.0 "3")
|
||||
(tu-bp-el "KREISEL" 6533.6 -7603.44 2000.0 90.0 7889.0 "4")
|
||||
(tu-bp-el "KREISEL" -61.76 -974.08 2000.0 90.0 4000.0 "9")
|
||||
(tu-bp-el "KREISEL" 340.85 505.79 2000.0 0.0 3400.0 "8"))
|
||||
10.0 1.0))
|
||||
(tu-eq "kreisel-bp/test-dxf-paare"
|
||||
'(("2" "3") ("3" "4") ("9" "8"))
|
||||
(mapcar '(lambda (tr) (list (cdr (assoc "id" (cdr (assoc "a" tr))))
|
||||
(cdr (assoc "id" (cdr (assoc "b" tr))))))
|
||||
(car _erg)))
|
||||
(tu-nil "kreisel-bp/test-dxf-keine-kollision" (cadr _erg))
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user