[ADD] Kreisel-Split (links/rechts) bei Kollisionspruefung + Separator/Scanner-Zuordnung
- export_neighbors.py: kreisel_half_bboxes() teilt die Kreisel-BBox entlang der Achse durch Antriebs-/Spannstation (AN8/SP8) in eine linke und eine rechte Haelfte (je ca. 400mm breit, siehe [Kreisel] durchmesser_mm in cfg/export.cfg, gespiegelt von component_defaults.json). compute_neighbor_ids ersetzt jeden Kreisel-Eintrag in der Kollisionsgruppe durch dieses Paar (TeileId-L/-R) statt einer einzelnen BBox - Nachbarn einer Gefaellestrecke/ eines Foerderers zeigen jetzt, welche Haelfte tatsaechlich beruehrt. - compute_sensor_zuordnung(): ordnet jeden Separator/Scanner per BBox- Ueberschneidung seiner Gefaellestrecke, seinem Foerderer oder einer Kreiselhaelfte zu (Prioritaet in dieser Reihenfolge), ersetzt die ZUORDNUNG-Attribut-Merkmale im CSV-Export bei Treffer. - compute_scanner_nearest_separator(): sucht zusaetzlich, unabhaengig von der Zuordnung, zu jedem Scanner den raeumlich naechstgelegenen Separator. - ssg_id.lsp: ssg-id-collect-blocks erfasst jetzt auch Separator_SP/S-LP/ Scanner-Bloecke, damit ssg-id-check-all ihr (neues) ID-Attribut vor jedem Export befuellt; export_csv.py bevorzugt dieses echte ID-Attribut als TeileId und faellt nur bei leerem Attribut auf eine laufende SEP-/SCN- Ersatznummer zurueck. - data/ils/Scanner_2D.dwg, Scanner_3D.dwg, Separator_SP_2D.dwg: ID-ATTDEF ergaenzt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -115,3 +115,18 @@ debug_log=1
|
||||
# nicht gesetzt.
|
||||
bb_minimum_height_mm=1
|
||||
|
||||
[Kreisel]
|
||||
# Kreisel-Durchmesser (Antriebs-/Spannstation AN8/SP8) in mm. Quelle der
|
||||
# Wahrheit ist data/json/component_defaults.json ("kreisel"."durchmesser",
|
||||
# Default 800.0) - hier fuer Python gespiegelt (Aenderungen bitte an beiden
|
||||
# Stellen nachziehen, siehe Hinweis oben bei [blockpattern]).
|
||||
#
|
||||
# Wird von lib/export_neighbors.py (kreisel_half_bboxes) benutzt, um die
|
||||
# Bounding-Box jedes Kreisels bei der Kollisionspruefung in eine linke und
|
||||
# eine rechte Haelfte zu teilen: AN8 (Antriebsstation) liegt lokal bei
|
||||
# (radius, 0), SP8 (Spannstation) bei (radius+abstand, 0) - siehe
|
||||
# KreiselInsert.lsp::draw-module - radius = durchmesser_mm/2 (Default 400mm).
|
||||
# Die gesamte Geometrie ist symmetrisch um die lokale X-Achse (Y=0, die
|
||||
# Linie durch beide Stationsmitten) - genau diese Linie trennt links/rechts.
|
||||
durchmesser_mm=800
|
||||
|
||||
|
||||
Reference in New Issue
Block a user