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:
@@ -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).
|
||||
|
||||
@@ -168,6 +168,13 @@ gf_beschriftung = GF_Beschriftung, 7
|
||||
# Lisp/DrawPlanquadrate.lsp (DRAW_PLANQUADRATE).
|
||||
planquadrate = ZZ_Planquadrate, 8
|
||||
|
||||
# Kettenfoerderer (Schraegfoerderer Stahl), aus Umlenkstation + skaliertem
|
||||
# Zwischenstueck + Antriebsstation zusammengebauter Block KF_n - siehe
|
||||
# Lisp/KettenFoerderer.lsp (KETTENFOERDERER). Wie VF_n/GF_n eine
|
||||
# ZUSAMMENGEBAUTE Baugruppe ohne eigene Blockdatei, der Layer muss darum hier
|
||||
# stehen. Die drei Bausteine darin behalten ihre eigenen Layer.
|
||||
kettenfoerderer = Omni_Kettenfoerderer, 4
|
||||
|
||||
|
||||
# ============================================================
|
||||
# Farben fuer Layer OHNE Baugruppen-Key
|
||||
|
||||
@@ -105,6 +105,41 @@
|
||||
[geruest]
|
||||
Farbe= FARBE
|
||||
|
||||
[kettenfoerderer]
|
||||
# Kettenfoerderer / Schraegfoerderer Stahl (KF_n, Lisp/KettenFoerderer.lsp).
|
||||
# Merkmalnummern laut Merkmalstamm des Schraegfoerderers.
|
||||
#
|
||||
# 350 kommt aus FOERDERERTYP (Bauart im Klartext). Der Default greift nur
|
||||
# bei Altbestands-Bloecken ohne das Attribut.
|
||||
# 359 kommt aus WINKEL, das den Neigungswinkel als nackte Zahl fuehrt
|
||||
# ("26"/"30"); die Anzeige-Tabelle [kf_typ_anzeige] weiter unten macht
|
||||
# daraus den Sivas-Optionstext mit Gradzeichen. Grund fuer die
|
||||
# Zweiteilung: Block-Attribute bleiben laut Projektkonvention ASCII.
|
||||
# 353 (Anzahl der gleichen KF) steht ABSICHTLICH NICHT hier: der Wert
|
||||
# entsteht erst aus der Gruppierung baugleicher Bloecke
|
||||
# (kettenfoerderer_signature in export_sivas.py) und ist damit kein
|
||||
# flaches Attribut-Mapping - gleiche Bauart wie 3510/3512 beim Kreisel.
|
||||
# 356 und 361 nutzen den vorhandenen Transform ja_nein, die Attribute
|
||||
# fuehren "1"/"0".
|
||||
# 357 "Antriebsart" ist beim Kettenfoerderer FEST (1.1 kW): im Dialog ein
|
||||
# Dropdown mit genau einer, zwingend gewaehlten Option - das Attribut gibt es trotzdem, damit der Wert am
|
||||
# Block steht und nicht nur im Export auftaucht.
|
||||
# 354 "Farbe Foerderer" und 355 "Antriebsmotor Foerderer" sind ZWEI getrennte
|
||||
# Merkmale (nicht ein kombinierter Text) - im Dialog darum auch zwei
|
||||
# Felder, Attribute FARBE und ANTRIEBSMOTOR.
|
||||
# 354/355/391 tragen bereits den vollen Sivas-Optionstext im Attribut (die
|
||||
# Auswahllisten in data/json/kettenfoerderer.json liefern ihn so) -
|
||||
# darum kein Transform.
|
||||
350= FOERDERERTYP : Schrägförderer Stahl
|
||||
359= WINKEL : 26 | kf_typ_anzeige
|
||||
361= STANDARD_STEUERUNG : 0 | ja_nein
|
||||
354= FARBE : RAL 7035
|
||||
355= ANTRIEBSMOTOR : Europa 50 Hz
|
||||
357= ANTRIEBSART : 1.1 kW
|
||||
356= MOVIMOT : 0 | ja_nein
|
||||
360= H_EINBAUHOEHE_mm : 0
|
||||
391= VERBINDUNGSELEMENTE : Nein
|
||||
|
||||
[variofoerderer]
|
||||
# Nur die von der Segmentanzahl UNABHAENGIGEN Top-Level-Felder einer VF_N-
|
||||
# Streckengruppe (siehe build_variofoerderer_details in export_sivas.py).
|
||||
@@ -155,6 +190,17 @@ Farbe= FARBE
|
||||
# zeichen (Attribute selbst bleiben ASCII, siehe CLAUDE.md-Konvention).
|
||||
Schoenenberger Geruest= Schönenberger-Gerüst
|
||||
|
||||
[kf_typ_anzeige]
|
||||
# Attributwert WINKEL (Neigungswinkel als nackte Zahl) -> Optionswert der
|
||||
# Sivas-Auswahlliste zu Merkmal 359. Gleiche Bauart wie
|
||||
# [geruest_typ_anzeige]/[as_es_winkel_anzeige]: steht ein Wert hier NICHT
|
||||
# drin, wird er unveraendert uebernommen.
|
||||
#
|
||||
# >>> Lehnt Sivas den Import ab, ist DIESE Tabelle die einzige Stelle zum
|
||||
# >>> Nachziehen (z.B. "26 °" mit Leerzeichen) - der Code bleibt unberuehrt.
|
||||
26= Schrägförderer Stahl 26°
|
||||
30= Schrägförderer Stahl 30°
|
||||
|
||||
[weichen]
|
||||
# ILS 2.0 Weiche (6216): eine Summenzeile, Werte aus den Kreisel-Beruehr-
|
||||
# punkten des LISP-Exports (kreisel_weichen.json). Ein Beruehrpunkt ist eine
|
||||
|
||||
Reference in New Issue
Block a user