Commit Graph
67 Commits
Author SHA1 Message Date
Simon Hensch dabf9e4f8a [CHANGE] Sivas Export schaut nun nur noch auf die kommaseparierte Liste im Attribut ARTINR und fügt die Artikelnummern in die Export-Liste ein; [ADD] Menü und dwg für Omniflo Ladeschleifen 2026-09-28 13:53:46 +02:00
Michael StanglandClaude Opus 5.5 5a13595289 export: ein Schalter fuer Hilfskopien, Test-Menue ueber Funktionsaufruf
- csv_leave_proxies ist der einzige Schalter, der Export-Hilfskopien
  (Separator-/Element-Kopien, Einheiten-Proxies) stehen laesst; Standard
  jetzt 0 = aufraeumen. Die zwei gleichwirkenden Dialog-Haken
  (*csv-export-pruef-zuordnung*/*csv-export-elemente-behalten*) entfallen,
  CSV_EXPORT_KONFIG schaltet mit einem Haken denselben Debug-Schalter.
- Unit-Test fuer csv:hilfskopien-behalten-p/-setzen
- Test-Menue: (load ...) (c:TEST_...) statt Befehlsname direkt nach dem
  load - BricsCAD registriert den per load definierten Befehl erst nach
  Rueckkehr zur Kommandozeile ("Befehl nicht erkannt" bei TEST_EXPORT_ALL)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:17:30 +02:00
Michael Stangl bc481de901 menu: ueberzaehligen Konfiguration-Schliessen-Eintrag entfernen
CSV-Export traegt jetzt selbst den schliessenden <- Marker (wie bei den
anderen Konfiguration-Eintraegen) - die alte Schliessen-Zeile erschien
sonst als eigener sichtbarer Menuepunkt zwischen Konfiguration und Tests.
2026-09-25 08:57:48 +02:00
Michael Stangl 69a192b83a export_csv: Konfigurationsdialog fuer Export-Modus + Proxy-Sichtbarkeit
Neuer Menuepunkt Konfiguration > CSV-Export (CSV_EXPORT_KONFIG) mit DCL-
Dialog: drei sich ausschliessende Export-Modi (group_vf_gf/all_elements/
separator_track, letzterer neu - nur AS/ES/Separator) ueber die zentrale
Variable *csv-export-modus*, sowie zwei unabhaengige Haken fuer sichtbare
Element-Proxy-Kopien (Zuordnung pruefen / Kopien behalten).
2026-09-25 08:45:03 +02:00
Simon Hensch 5193f4018c [ADD] Gerüstoptionen werden nun mit dem Befehl GERUEST in Bricscad aufgerufen; Über ein Dropdown in den Oberflächen kann zwischen verschiedenen Arten (Säulen, Abhänger,...) umgeschaltet werden, dann erscheint ein neues Menü; Zusammenstellung der Anbauteile über die Oberfläche mit Anzahl und Checkbox; Speichern von konfigurierten Zusammenstellungen noch fehlerhaft 2026-09-16 09:54:13 +02:00
Simon Hensch d19bac7a1f [ADD] Erste Einbindung eines Menüs zum Konfigurieren und Einfügen von Gerüstkomponenten; TODOs: Anzahl der Gerüstkompnenten Variabel machen und für den Benutzer die Anzahl der Baugruppe sichtbar machen; Vorkonfigurierte Baugruppen anbieten; Einfachere Auswahl mit Checkbox oder Input (Anzahl) 2026-09-14 12:43:17 +02:00
Yuelin WangandClaude Sonnet 5 4418840d5e fix: berechne-alle-winkel Signatur-Nachzug (schon-flach) + HundM05-Menu-Fix nachgezogen
Lisp/vf_standard.lsp: berechne-alle-winkel um Parameter schon-flach
erweitert (Fussabdruck-Korrektur, wenn ein Frame flach statt bei 3 Grad
ankommt) - vf_linienzug.lsp rief die Funktion bereits mit diesem 5.
Argument auf, dieser Commit fehlte im letzten Commit und liess den
Zwischenstand mit Argumentzahl-Mismatch zurueck. tests/test_foerderer.lsp
und tests/test_mubea.lsp ziehen dieselbe Signatur nach (inkl.
berechne-horizontale-mitte, das schon-flach bereits erwartete).
tests/testdata/linienzug_tests*.json aktualisiert passend zum echten
Bau-Ablauf. menu/SSG_LIB.mnu/.cui: TEST_LINIENZUG_STUFE2 im Testmenue
ergaenzt.

Lisp/vf_spec.lsp + lib/vf_spec_export.py: *vsp-menu-start* auf die aktuelle
6-Optionen-Kettenanfang-Zuordnung umgestellt (vorher noch 4 Optionen) -
vsp-journal replayt gegen den LEBENDEN vf-linienzug-modus. Python-Tabelle
bewusst NICHT umgestellt (dekodiert eine eingefrorene Alt-Aufzeichnung).
TEST_HUNDM05 schlaegt trotzdem weiterhin fehl (separates, ungeloestes
Problem - siehe naechster Absatz).

Bekannter offener Fehler: TEST_HUNDM05 baut nach wie vor nicht korrekt -
der Menu-Code-Fix allein reicht nicht. Root Cause nicht abschliessend
geklaert, Uebergabe an Kollegen fuer Logik-Review vorgesehen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 08:43:54 +02:00
Michael Stangl e78d1cb9ca Planquadrate unter der Anlage zeichnen. 2026-09-08 09:53:28 +02:00
Michael Stangl a4a969d4b8 Eingang und Ausgangssysmbol innerhalb des Menüs noch verschoben 2026-09-07 17:39:29 +02:00
Michael StanglandClaude Sonnet 5 294fd6a8d7 [ADD] Eingang-/Ausgang-Symbole ueber BTMT-Stationen + Drehung im CSV-Export gerundet
ILS_EINGANG_INSERT/ILS_AUSGANG_INSERT (Menue SPS > Connections) setzen
das Eingang-/Ausgang-Symbol automatisch lotrecht ueber eine gewaehlte
BTMT-Beladung/-Entladung-Instanz statt per freiem Einfuegepunkt.
Blockdateien Eingang_2D/3D.dwg und Ausgang_2D/3D.dwg ins Flach-Schema
von data/ils kopiert (Quellen in data/ils/2D|3D bleiben unangetastet).
Mubea-Testdaten um ein Eingang-Symbol ueber der Beladung und je ein
Ausgang-Symbol ueber beiden Entladungen erweitert.

Zusaetzlich: BTMT-Drehung im CSV-Export (export_csv.py) auf ganze
Grad gerundet (90/180/... statt z.B. 90.4078), da Kommastellen dort
keine Bedeutung haben.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 16:17:41 +02:00
Michael Stangl 9670173d4b Menüs für Varioförderer umgebaut. Weniger interaktive Abfragen, direkter Aufruf durch Menü 2026-09-07 11:05:18 +02:00
Michael Stangl d131b44580 Bug in der menü Hierarchie entfernt 2026-09-07 10:26:39 +02:00
Michael Stangl 1902d72948 Menüs reduziert, die nicht mehr gebraucht werden 2026-09-07 10:16:09 +02:00
Michael Stangl e3dbaceb24 Wizard mit Oberflächenstückwerk für den Mode 3 für den VF gebaut 2026-08-26 11:33:19 +02:00
Samer AyadiandClaude Opus 5 c3f0d2717d Merge origin/master: Sensor-Zuordnung + Connections zusammenfuehren
Konflikt in lang/de_DE.json und lang/en_GB.json aufgeloest: beide Seiten
haben nur Schluessel ergaenzt (con-*/cmd-connection-* hier, sens-* aus
origin). Beide Saetze uebernommen, Einrueckung von origin (2 Leerzeichen)
beibehalten, tro-edit-fb mit UID-Anzeige uebernommen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 12:13:09 +02:00
Samer AyadiandClaude Opus 5 7242e815f8 HundM05-Testfall und DXF-Analyse-Skripte
- lib/dxf_scan_components.py: erkennt ILS-/Omniflo-Komponenten in fremden
  Projektzeichnungen und schreibt sie im Testdaten-JSON-Schema aus
- lib/dxf_abbild.py: getreue Abbildung der Bauteile einer Fremdzeichnung
  (Attribute, Weltkoordinaten, Unterkomponenten) ohne Interpretation
- tests/test_hundm05.{lsp,py}, testdata/hundm05.json, conftest-Fixtures und
  alltests.json-Eintrag fuer den Kreisel-Abschnitt aus ST500592_05.dxf
- menu: TEST_HUNDM05 im Testmenue, Connection_Insert/Edit in SSG_LIB.cui
- Doku: hartkodierte Pfade durch (getenv "DXFMAKRO") ersetzt

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 12:10:58 +02:00
Michael StanglandClaude Opus 4.8 edfba75801 Sensor-Zuordnung: Separator/Scanner je Kreisel/Strecke zaehlen vor Export
count_sep_scan.lsp neu als wiederverwendbare Engine (cs-zuordnung-lauf),
die automatisch vor jedem CSV-/Sivas-Export laeuft (export.lsp,
csv:run-export). Zaehlt Separator_SP/Scanner je Carrier (Kreisel/Eckrad,
VF_*, GF_*) ueber die gemeinsamen cfg/export.cfg-Muster und schreibt
ANZAHL_SEPARATOR/ANZAHL_SCANNER, so dass die Summe zur Szene passt.

Scanner ausserhalb jeder Carrier-Boundingbox ohne ZUORDNUNG werden per
Abstand dem naechsten Kreisel/Strecke zugeschlagen (ZUORDNUNG = Carrier-ID).
Ist der Abstand zum zweitnaechsten Kandidaten fast gleich (<= strittig_diff_mm,
neu in cfg/export.cfg [Sensorzuordnung]), gilt die Zuordnung als strittig:
Konsolenausgabe der ergaenzten Scanner + JSON-"warnung"-Feld mit den IDs der
strittigen Kandidaten (csv:block-to-json), das export_csv.py in der Spalte
"Warnungen" ausgibt.

Menue: ZAEHLE_SEP_SCAN-Vorlauf vor EXPORTSIVAS entfernt (laeuft jetzt
automatisch im Export); interaktiver Befehl bleibt erhalten.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-21 15:37:50 +02:00
Samer AyadiandClaude Opus 5 e91608d7cc Add Connections to SSG_LIB, reusing the TRO mechanisms
A connection is a CONNECTION_ARROW block sitting at the midpoint of an arrow
between two TRO markers. It stores the relationship as attributes rather than by
position:

    TRO11  ---------->  TRO14
    UID 0062            UID 0065

Same architecture as the TRO feature, nothing new introduced:

  Blockname CONNECTION_*  ->  c:CONNECTION_EDIT (Lisp/Connection_Edit.lsp)
                          ->  dcl/connection_edit.dcl

The double-click and EATTEDIT hooks already route every INSERT through
SSG_BLOCKEDIT, so this is one more branch in that dispatcher - placed before the
TRO branch since both come from the same annotation run and the patterns must not
overlap. DCL path from DXFM_DCL, ssg-start/ssg-end, ssg-attrib-read and
ssg-attrib-set-on, all text via ssg-text/ssg-textf with 16 new keys in both
language files. Loading is lazy: not preloaded in the MNL, pulled by the menu
macros and the dispatcher with (ssg-ensure "Connection_Edit"), with a fallback to
native EATTEDIT if the module is missing.

CONNECTION_INSERT picks two TRO markers and draws the connection; the new
internal number comes from ssg-id-max/ssg-id-format, so it stays inside the
SSG_LIB number space. It refuses when the block definition is absent - the shape
comes from tro_annotate.py, this command does not invent one.

Menu: SSG_LIB > Connections with Verbindung einfuegen, Verbindung bearbeiten and
Bearbeiten (Auto), plus an entry in the POP501 edit context menu.

On the internal id: the markers keep their visible ID (TRO11) untouched - the
existing TRO_INSERT/tro-naechste-id read it and the request was explicit about
not changing it. The permanent unique number therefore lives in a separate
attribute UID, in the same four-digit space as ssg_id and the CSV TeileId.
Putting it into ID was tried and reverted: IDSCHECK treats ID as numeric and
would have overwritten TRO11 with a number while correcting duplicates.
Connections reference the UIDs, so the relationship survives a renamed or moved
marker.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 15:09:10 +02:00
Simon Hensch 49652b2744 [ADD] ILS Zusatzmodule Einfügefunktion und 3D Modelle implementiert 2026-08-04 11:23:40 +02:00
Michael StanglandClaude Opus 4.8 046d34c4aa Etage: Batch-2D/3D-Umschaltung + Nachruest-Befehl fuer Bestandsbloecke
vf-konvertiere-ent waehlt die Einfuege-Funktion jetzt per XDATA-Typ aus der Registry (standard/etage) statt fest variofoerderer-einfuegen -> SSG_DIM_SWITCH schaltet auch Etage-Bloecke um.

Neuer Befehl VARIOFOERDERER_NACHRUESTEN (Alias VF_NACHRUESTEN, + Menueeintrag): markiert bestehende, vor der Marker-Einfuehrung gebaute VF_n-Bloecke nachtraeglich mit SSG_VF_EDIT (Typ aus Attributen erkannt, Baurichtung hz abgefragt) - danach editier- und dim-umschaltbar. Schreibt nur XDATA, keine Geometrieaenderung.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 16:36:00 +02:00
Samer Ayadi 9c7dda8a37 Add TRO_INSERT command to hand-place new TRO markers
Lets the TRO menu insert a fresh TRO_SYM_<Typ> marker (point + type +
auto-suggested TROnn id) by reusing a block definition tro_annotate.py
already created, instead of only editing markers it placed.
2026-08-03 15:56:13 +02:00
Samer AyadiandClaude Opus 5 45044cdcba Add TRO marker editing to SSG_LIB
The TRO markers written by sps_skel (lib/tro_annotate.py) are blocks
TRO_SYM_<type> carrying ID and TYPE as attributes. This wires them into the
existing SSG_LIB mechanisms rather than adding new ones.

The double-click hook and the EATTEDIT override already exist: ***DOUBLECLICK
routes [INSERT] to SSG_BLOCKEDIT, and c:EATTEDIT is undefined and forwarded to
the same dispatcher. So all that was missing was a branch:

  Blockname TRO_*  ->  c:TRO_EDIT (Lisp/Tro_Edit.lsp)  ->  dcl/tro_edit.dcl

Tro_Edit.lsp follows the conventions of the other edit commands: DCL path from
DXFM_DCL, ssg-start/ssg-end around the command, ssg-attrib-read and
ssg-attrib-set-on for the attributes, all user-visible text via ssg-text/
ssg-textf with keys in lang/de_DE.json and en_GB.json. Implied selection is read
before ssg-start, since ssg-start clears it - the same note Gefaellestrecke.lsp
carries.

TYPE is a picklist rather than free text so it cannot drift from the type
catalogue. The list comes from Lisp/tro_types.lsp, generated on the sps_skel side
by "tro_annotate.py --emit-lisp" into DXFM_LISP. If that file is absent the
dialog offers the block's current type and still works.

Loading is lazy: the module is not preloaded in the MNL. The menu macros and the
dispatcher pull it with (ssg-ensure "Tro_Edit") on first use, and the dispatcher
falls back to native EATTEDIT if the module cannot be found. ssg_load.lsp loads
it for the non-menu path.

Menu: SSG_LIB > TRO with "Marker bearbeiten" and "Bearbeiten (Auto)", plus an
entry in the POP501 edit context menu.

The dialog changes attributes only. The marker shape belongs to the block
definition of the type and FB_BLOCK is derived from it, so both follow on the next
tro_annotate.py run; the dialog states this and the command prints a reminder when
the type was changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 15:41:06 +02:00
Michael Stangl 9c3391aaf6 Menü für Test einer einfachen Omniflo Strecke dazu. Für den Kollisionstest 2026-07-31 18:44:43 +02:00
Michael Stangl 2f2e7c46d9 erste Fassung der Erzeugung von Mubea als Test hinzugefügt 2026-07-27 16:04:32 +02:00
Yuelin Wang 3e23003b24 Modus 1 GF/VF-Split: Menüpunkt Neue Linie aufgeteilt in GF-Linie und VF-Linie;Testdaten für Lineinzug_tests.json angepasst. weil der 26°-Gefälle-Testfall jetzt korrekt Option 2 (VF statt GF) wählt.;Neuer Befehl Vario_Kette_Merge: Verschmilzt mehrere einzeln gebaute VF_n-Blöcke via KS_AUS→KS_EIN-Nachbarschaft zu einem Gesamt-Block (aggregierte Attribute, Lücken-Erkennung),Neuer Menüeintrag: [Vario_Kette_Merge]^C^C(ssg-ensure VarioFoerderer) Vario_Kette_Merge 2026-07-27 09:23:33 +02:00
Yuelin WangandClaude Opus 4.8 328b62ceec feat: LISP-Diagnosebefehl KS_PRUEFEN (KS_EIN/KS_AUS 2D vs 3D + dx/dy/dz als CSV)
Vergleicht je Basisblock die KS_EIN/KS_AUS-Urspruenge der _2D- und _3D-Variante (via extract-ks-from-block) und listet dx/dy/dz. Ausgabe ks_pruefung.csv. Menuepunkt unter Tests ergaenzt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 13:58:31 +02:00
Yuelin Wang 39a4656f38 2D/3D-Umschaltung pro GF/VF-Block (Dialog-Auswahl + Auto-Erkennung via XDATA) und Batch Alle auf 2D/3D 2026-07-23 14:01:52 +02:00
Simon Hensch 63e4e9ef32 [FIX] Weichentyp im json für die dynamische Erzeugung der Oberfläche für Deltaweichen korrigiert; [CHANGE] Drehung der Omniflo Objekte wird nun interaktiv durch den Benutzer angegeben wie zuvor in Bihler 2026-07-22 08:07:24 +02:00
Simon Hensch fe8e78d56c Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-21 09:11:21 +02:00
Simon Hensch a0e86571b1 [ADD] Menüeintrag für Omniflo Anbaugruppen Scanner, Stopper, Bremse hinzugefügt und Einfügen implementiert 2026-07-21 09:11:08 +02:00
Yuelin Wang 21daab974d Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-20 16:50:14 +02:00
Yuelin Wang 8efdbc0c5f keys de/en für VF-linienzug wurde eingefügt, Export Sivas ruft vorab ZAEHLE_SEP_SCAN auf(Attribute aktualisieren), Menü neu laden notwendig 2026-07-20 16:49:59 +02:00
Michael Stangl d4ea049918 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-20 15:39:22 +02:00
Michael Stangl 5c28db9e91 Oberfläche für Standard von Varioförder und Gefällestrecke bauen lassen 2026-07-20 15:39:17 +02:00
Yuelin Wang 297bb8b905 Menueeintraege Scanner/Separator einfuegen + Zaehlbefehl im Zusatzmodul; Einfuege-Befehle ILS_SCANNER_INSERT/ILS_SEPARATOR_INSTERT 2026-07-20 14:43:59 +02:00
Simon Hensch 4bec8d92bd [ADD] Funktionen und Menü zum Hinzufügen von Omniflo TEF Bauteilen integriert 2026-07-20 14:14:35 +02:00
Michael Stangl 9458382965 Sprachumschaltung von DE nach EN über Menü möglich gemacht 2026-07-15 15:11:02 +02:00
Michael Stangl 2ae64cb4a8 Menüs ausgegraut die nur Dummyroutinen aufrufen 2026-07-14 14:44:24 +02:00
Michael Stangl 2767897158 Aufruf von explizitem Python Call rausgeworfen. War nur zu testzwecken 2026-07-10 20:16:46 +02:00
Michael Stangl fe283a0bf3 ABP 60 und APB 100 als eigenes AUswahlkriterium in die Oberfläche der 90Grad Bögen hinzugefügt. Beide APB60 Bögen und die Sternweiche dazu 2026-07-10 13:32:52 +02:00
Yuelin Wang 96788e7244 TEST_LINIENZUG in eigene tests/test_linienzug.lsp auslagern + eigenen Menuepunkt Foerderer-Linienzug anlegen (Foerderer-Eintrag zurueckgesetzt), Menü neu laden nötig, damit Foerderer-Linienzug in Menü erscheint. 2026-07-09 10:58:56 +02:00
Yuelin Wang 3897581dc9 Die Funktion bei VF_Linienzug wurde optimiert. Und TEST_LINIENZUG wurde in test_foerdererer.lsp eingebaut. 2026-07-08 13:45:12 +02:00
Michael Stangl 2abcd0964c Test für alle Elemente ist jetzt interativ. Man kann jeden Test in einem Reiter offen lassen und ansehen (csv Export aller Files ist dann manuell zu machen), oder auch automatisch schliessen, dafür ist aber der csv Export anschliessend auch mit automatisch. 2026-07-02 16:35:16 +02:00
Yuelin Wang b915980540 die 3 Modus für Gefällestrecke wurden angepasst.Gemeinsamkeit aller Modi: Innere Elemente (Separator, Gefällebogen) werden immer per vollständiger KS_EIN→KS_AUS-3D-Rahmen-Kettung verkettet (insert-block-ks-to-ks) — nur bei AS/ES-Element (wegen des seitlichen Drehteller-Versatzes) wird die Position in X/Y und Z getrennt behandelt.Unterschied Modus 1/2 vs. Modus 3: In Modus 1/2 gibt es keinen vorgegebenen Endpunkt — die Endhöhe ist ein Ergebnis. In Modus 3 sind Start und Endpunkt (mit Höhen) vorgegeben, und die gesamte Geometrie (Winkel, Bogenauswahl, Segmentlängen) wird so berechnet, dass beide Punkte exakt erreicht werden. Test-Gefällestrecke wurde gebaut 2026-07-01 16:06:16 +02:00
Michael Stangl 8db7b2bfbf Veraltetes Menü Etagenförderer entfernt. Testdaten für den Förderertest wird jetzt aus .json Datei geladen. Testfunktionen des Förderers bauen jetzt auch Block um jeden Förderer, damit ein Export möglich ist . Fix einiger Funktionsaufrufe in den Varioförderer Funktionen. 2026-06-30 10:35:31 +02:00
Michael Stangl 20dd489468 omniflo Cleanup Routine rausgeworfen. Übernimmt jetzt das Zentralle all_tests.lsp. Ansonsten geht der omniflo csv Export nicht mehr. Kreisel Basisdatensatz entfernt. Nicht mehr in der Form zum test der Kreiselmodule nötig 2026-06-25 19:43:00 +02:00
Michael Stangl d408f3eea7 Testrunner geändert. Bei fehlgeschlagendem Test fehlt eine .json im test/Output Ordner 2026-06-25 15:36:14 +02:00
Simon Hensch 2d4cb1cc36 [FIX] Menü zur Bearbeitung des Kreisels durch Doppelklick auf einen Kreisel wird nun wie erwartet aufgerufen, andere Blöcke und Textfelder und Objekte können nun trotzdem wie gewohnt durch einen Doppelklick mit den integrierten Bricscad Funktionen bearbeitet werden 2026-06-24 09:11:47 +02:00
Yuelin Wang 607ec3bd47 Merge 2026-06-18 15:21:10 +02:00
Yuelin Wang ee6ec9550f Die Logik für EtageVariofoerderer also zur Verbindung Zwei Kreisel übereinander wurde gebaut, mit AS- und Einelement 30° 2026-06-18 15:15:36 +02:00