[ADD] weitere Gerüstkomponenten hinzugefügt

This commit is contained in:
2026-10-09 14:38:11 +02:00
parent fe5cb9664c
commit d3ddcb9d59
9 changed files with 127 additions and 81 deletions
+47 -26
View File
@@ -1048,36 +1048,57 @@
(geruest-traeger-start '(100.0 200.0 0.0) (/ pi 2.0) 20.0))
(tu-eqf "geruest-traeger-start/2d-punkt" '(5.0 0.0 0.0)
(geruest-traeger-start '(5.0 0.0) 0.0 0.0))
;; Querstreben: Abstand max. 500, Rand 100..250 beidseitig gleich,
;; so wenige wie moeglich
;; Abstand genau 500, solange der Rand in 100..250 bleibt
(tu-eqf "geruest-traeger-streben/1200" '(100.0 600.0 1100.0)
(geruest-traeger-streben 1200.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-streben/1300" '(150.0 650.0 1150.0)
(geruest-traeger-streben 1300.0 500.0 100.0 250.0))
;; 1100 geht mit genau 500 nicht auf -> Rand 100, Abstand 450
(tu-eqf "geruest-traeger-streben/1100" '(100.0 550.0 1000.0)
(geruest-traeger-streben 1100.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-streben/1500" '(250.0 750.0 1250.0)
(geruest-traeger-streben 1500.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-streben/1000" '(250.0 750.0)
(geruest-traeger-streben 1000.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-streben/eine" '(200.0)
(geruest-traeger-streben 400.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-streben/grenze-500" '(250.0)
(geruest-traeger-streben 500.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-streben/501" '(100.0 401.0)
(geruest-traeger-streben 501.0 500.0 100.0 250.0))
(tu-nil "geruest-traeger-streben/zu-kurz"
(geruest-traeger-streben 150.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-streben/min-200" '(100.0)
(geruest-traeger-streben 200.0 500.0 100.0 250.0))
;; Querstreben: Abstand IMMER genau 500, beide Raender gleich; gewaehlt
;; wird die Strebenzahl mit dem Rand am naechsten an 100..250
;; (Gleichstand -> weniger Streben). Plan = (rand positionen).
;; Im Bereich:
(tu-eqf "geruest-traeger-plan/1000" '(250.0 (250.0 750.0))
(geruest-traeger-streben-plan 1000.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/1200" '(100.0 (100.0 600.0 1100.0))
(geruest-traeger-streben-plan 1200.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/1300" '(150.0 (150.0 650.0 1150.0))
(geruest-traeger-streben-plan 1300.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/1500" '(250.0 (250.0 750.0 1250.0))
(geruest-traeger-streben-plan 1500.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/400" '(200.0 (200.0))
(geruest-traeger-streben-plan 400.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/500" '(250.0 (250.0))
(geruest-traeger-streben-plan 500.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/200" '(100.0 (100.0))
(geruest-traeger-streben-plan 200.0 500.0 100.0 250.0))
;; Ausserhalb (netto mod 500 in (0, 200) oder netto < 200) - der Plan
;; kommt trotzdem, der Abstand bleibt 500:
;; 1100: Rand 300 (k=1) oder 50 (k=2), beide 50 daneben -> weniger Streben
(tu-eqf "geruest-traeger-plan/1100" '(300.0 (300.0 800.0))
(geruest-traeger-streben-plan 1100.0 500.0 100.0 250.0))
;; 1050: Rand 275 (25 daneben) schlaegt 25 (75 daneben)
(tu-eqf "geruest-traeger-plan/1050" '(275.0 (275.0 775.0))
(geruest-traeger-streben-plan 1050.0 500.0 100.0 250.0))
;; 1150: Rand 75 (25 daneben) schlaegt 325 (75 daneben)
(tu-eqf "geruest-traeger-plan/1150" '(75.0 (75.0 575.0 1075.0))
(geruest-traeger-streben-plan 1150.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/501" '(250.5 (250.5))
(geruest-traeger-streben-plan 501.0 500.0 100.0 250.0))
(tu-eqf "geruest-traeger-plan/kurz-150" '(75.0 (75.0))
(geruest-traeger-streben-plan 150.0 500.0 100.0 250.0))
(tu-nil "geruest-traeger-plan/null"
(geruest-traeger-streben-plan 0.0 500.0 100.0 250.0))
;; Abstand zwischen zwei Streben ist in jedem Fall exakt 500
(foreach _l '(700.0 1100.0 1150.0 2345.0 5999.0)
(setq _rec (geruest-traeger-streben _l 500.0 100.0 250.0))
(tu-true (strcat "geruest-traeger-streben/abstand-" (rtos _l 2 0))
(vl-every '(lambda (a b) (equal (- b a) 500.0 1e-6))
_rec (cdr _rec))))
;; Rand-Abweichung
(tu-eqf "geruest-rand-abweichung/innen" 0.0 (geruest-rand-abweichung 150.0 100.0 250.0))
(tu-eqf "geruest-rand-abweichung/unten" 25.0 (geruest-rand-abweichung 75.0 100.0 250.0))
(tu-eqf "geruest-rand-abweichung/oben" 50.0 (geruest-rand-abweichung 300.0 100.0 250.0))
;; 6000 mm: 11 Felder a 500 -> 12 Streben, letzte bei 5750
(setq _rec (geruest-traeger-streben 6000.0 500.0 100.0 250.0))
(tu-eq "geruest-traeger-streben/6000-anzahl" 12 (length _rec))
(tu-eqf "geruest-traeger-streben/6000-letzte" 5750.0 (last _rec))
;; Konfiguration: fehlende Felder -> Standard, ohne querstrebe -> nil
;; Ergebnis (dummy laenge querlinie abstand-max rand-min rand-max)
;; Ergebnis (dummy laenge querlinie abstand rand-min rand-max)
(tu-eqf "geruest-traeger-strebe-cfg/standard" '(nil 30.0 25.0 500.0 100.0 250.0)
(geruest-traeger-strebe-cfg nil
(ssg-json-parse "{\"querstrebe\": {\"rand_min\": 100}}")))
@@ -1086,7 +1107,7 @@
(ssg-json-parse "{\"querstrebe\": {\"dummy\": \"s.dwg\"}}")))
(tu-eqf "geruest-traeger-strebe-cfg/wert" '(nil 30.0 25.0 400.0 100.0 250.0)
(geruest-traeger-strebe-cfg nil
(ssg-json-parse "{\"querstrebe\": {\"abstand_max\": 400}}")))
(ssg-json-parse "{\"querstrebe\": {\"abstand\": 400}}")))
;; Querlinien an Anfang und Ende der 30 mm langen Strebe
(tu-eqf "geruest-traeger-strebe-enden" '(235.0 265.0)
(geruest-traeger-strebe-enden 250.0 30.0))