feat: Kettenfoerderer (Schraegfoerderer Stahl) als parametrische 3D-Baugruppe

Neues Modul KettenFoerderer.lsp: baut aus KF_UM_<winkel>, KF_LAENGE und
KF_AN_<winkel> (je KS_AUS auf KS_EIN) plus der Draufsicht KF_2D einen Block
KF_<n>. Die Bausteine werden aufgerichtet eingebaut (Rz*Rx(90)*Rz), die Hoehe
laeuft in Z; KF_2D liegt deckungsgleich mit der Kette. Der Einbauwinkel jedes
Folgebausteins wird aus der Richtung des KS_AUS seines Vorgaengers gemessen,
KF_LAENGE ueber die Einbauhoehe skaliert.

- Dialog (DCL-Vorlage, Typ als Radiobuttons), Hoehe per Zahl oder aus zwei
  Punkten, Doppelklick auf KF_n oeffnet KF_EDIT mit Neuaufbau
- eigenstaendiges Attribut-Schema, Auswahllisten mit Sivas-Optionstexten in
  data/json/kettenfoerderer.json
- Sivas-Export: Merkmale 350, 353-357, 359-361, 391, baugleiche Foerderer
  werden zu einer Zeile zusammengefasst (Artikelnummer 6120)
- ssg_ks_insert.lsp: neue Primitiven ks-xy-winkel, ks-block-messen,
  insert-block-ks-skaliert und insert-block-ks-matrix (freie 3x3-Rotation);
  ensure-block-loaded nimmt Bloecke ohne Dimensionssuffix unveraendert
- Menueeintrag KettenFoerderer aktiviert, toter Dummy OMNI_KettenFoerderer
  entfernt; KF_* im Export-Pattern, in der ID-Vergabe und im Dispatcher
  SSG_BLOCKEDIT (vor dem Omniflo-Zweig)
- Unit-Tests tu-tests-kf fuer die reinen Rechenkerne; Modul wird in der MNL
  vorgeladen, dbg-Schalter kf-zeit zur Laufzeitmessung

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 15:34:27 +02:00
parent fb567949be
commit b8e8d0b0a0
28 changed files with 2207 additions and 21 deletions
+10
View File
@@ -76,6 +76,15 @@
# erkennt sie wie alle Omniflo-Teile ueber TEILEART "Omniflo ..." und schreibt
# je Nummer aus ARTINR eine Omniflo-Zeile.
#
# pattern_kettenfoerderer: Kettenfoerderer/Schraegfoerderer Stahl
# (KettenFoerderer.lsp, KF_<n>). Eine selbst zusammengebaute Baugruppe wie
# GR_*, mit eigenen Attributen TEILEART ("Omniflo Kettenfoerderer ...") und
# ARTINR - erkannt wird sie darum im allgemeinen Omniflo-Zweig von
# export_sivas.py. Die drei Bausteine darin (Umlenkstation, skaliertes
# Zwischenstueck, Antriebsstation) werden NICHT einzeln gezaehlt. Die im
# Dialog gewaehlten Verbindungselemente stehen als Attribut
# VERBINDUNGSELEMENTE am Block und landen im Merkmale-/details-JSON.
#
# pattern_nested_bogen/_streckenelement/_umlenkstation/_motorstation: die
# uebrigen Bausteine einer VF_n/GF_n-Kette (Boegen, gerade Foerderer-/
# Gefaellestrecken-Segmente, Umlenk-/Motorstation). Wie pattern_schleuselement
@@ -136,6 +145,7 @@ pattern_gerade= AP110*, AP_110*, AP60*
# Gerüst
pattern_geruest= GR_*
pattern_verbinder= VB_*, TV_*
pattern_kettenfoerderer= KF_*
[python]
# Interpreter fuer die Export-Skripte (lib/export_csv.py, lib/export_sivas.py).