fix: Etage-Solver bilanziert Ein-/Auslauf auf der Hauptachse statt im Blocksystem
Die gebaute Etage-Kette endete 987.63 mm zu weit (X) und 3.46 mm zu hoch (Z).
Der Fehlbetrag lag vollstaendig im Ein-/Auslauf: der Solver reservierte dort
1177.87 mm, real verbraucht die Kette 2165.09 mm.
Zwei Ursachen:
(a) vf-element-masse liefert KS_EIN->KS_AUS im BLOCK-Koordinatensystem. AS
und ES werden aber um (hz - ein-ang) gedreht eingebaut - beim
AS_Element_30 ist ein-ang = 90 Grad, dadurch landet die Block-Y-
Komponente auf der Hauptachse. Bilanziert wurde die Block-X-Komponente:
AS 209.7 statt real 486.10, ES -242.6 statt real 525.29.
(b) Die Auslauf-Staustrecke wurde fix mit 400 mm budgetiert, ist seit dem
Umbau "Auslauf RUECKWAERTS vom ES gerechnet" aber variabel (im Testfall
334 mm). Daraus die 3.46 mm Resthoehe.
Fix: neue Funktion etage-rand-budget (seite) rechnet Einlauf (Schritte 1-4)
und Auslauf (12-15) exakt so, wie etage-foerderanlage-einfuegen sie baut,
inklusive analytisch vorab bestimmtem L-exit. Kern sind die reinen,
hz-unabhaengigen Projektionen etage-laengs/etage-quer. Die alte Naeherung
bleibt als Fallback, falls ein Block fehlt.
Damit faellt auch die bisherige Annahme, Laengentreue und seitliche
Fluchtung des ES-KS_AUS seien nicht gleichzeitig loesbar: die Bauschritte
5-11 laufen auf der Hauptachse und tragen nichts zur Quer-Bilanz bei,
L-exit ist deshalb von L_GF/L_VF unabhaengig und vor dem Solve bestimmbar.
Weiter: Konstante *vfk-etage-stau-ein* (400 mm) ersetzt die nackte Zahl an
beiden Stellen; zwei neue lang-Keys (de+en, Paritaet 1095/1095); neuer
Regressionsblock tu-tests-etage in tests/test_unit.lsp mit dem AS/ES-Fall
(Suite 520/520 gruen).
In BricsCAD verifiziert: Soll-Endpunkt (11804.31, 3039.64, 4256.5) exakt
getroffen, Abweichung 0.00 mm in allen drei Achsen.
Offen: bei korrekter Bilanz bleiben im Testfall bei 33 Grad nur 16.13 mm
fuer beide GF-Strecken. Eine Mindest-GF-Laenge als Gueltigkeitskriterium
der Winkelwahl ist noch nicht eingebaut.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -193,6 +193,14 @@
|
||||
;; etage-foerderanlage-einfuegen (vf_etage.lsp).
|
||||
(if (null *vfk-etage-auslauf-min-clamp*) (setq *vfk-etage-auslauf-min-clamp* 50.0))
|
||||
|
||||
;; Feste Einlauf-Staustrecke (mm) des Etage-Typs: Schritt 2 in
|
||||
;; etage-foerderanlage-einfuegen, direkt hinter dem AS-Element. Das
|
||||
;; Gegenstueck am Auslauf (Schritt 13) ist NICHT fest, sondern wird aus der
|
||||
;; Quer-Bilanz bestimmt (etage-rand-budget), damit das ES-KS_AUS
|
||||
;; querversatzfrei auf der Hauptachse landet. Dient zugleich als Rueckfallwert
|
||||
;; fuer diese Auslaufstrecke, wenn der Auslauf nicht schwenkt (Quer-Rate 0).
|
||||
(if (null *vfk-etage-stau-ein*) (setq *vfk-etage-stau-ein* 400.0))
|
||||
|
||||
;; Mindest-2D-Laenge (mm) eines Pfad-Segments (LINE-Laenge bzw. ARC-Sehne),
|
||||
;; das der Linienzug-Modus 2/3 aus einer Objektauswahl akzeptiert. Kuerzere
|
||||
;; Objekte sind Geister-/Artefakt-Elemente (z.B. ein von einer Rechteck-Auswahl
|
||||
|
||||
Reference in New Issue
Block a user