Add Etage-Typ-Unterstuetzung zu test_mubea.lsp + Testfall fuer Objekt 0061
mubea:build-vario(-one) liest jetzt ein optionales "typ"-Feld ("standard"
Default, "etage") und dispatcht auf berechne-etage/etage-foerderanlage-
einfuegen bzw. vf-block-erstellen mit dem passenden Typ. Neuer Testfall
VF_Mubea_Etage_0061 bildet Objekt-ID 0061 aus Mubea_Quali.dxf nach
(deltaL=12790, deltaH=0, seite=links, Winkel=9, L_GF1=1602.4).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+23
-10
@@ -3,9 +3,12 @@
|
|||||||
;;
|
;;
|
||||||
;; Liest tests/testdata/mubea.json und baut in EINER Zeichnung:
|
;; Liest tests/testdata/mubea.json und baut in EINER Zeichnung:
|
||||||
;; - Kreisel (Eintraege mit "id", Block KREISEL_*) via kreisel-insert-script
|
;; - Kreisel (Eintraege mit "id", Block KREISEL_*) via kreisel-insert-script
|
||||||
;; - Vario (test_id "VF_*") Block VF_* via variofoerderer-einfuegen
|
;; - Vario (test_id "VF_*") Block VF_* via variofoerderer-einfuegen/
|
||||||
|
;; etage-foerderanlage-einfuegen
|
||||||
;; + vf-block-erstellen
|
;; + vf-block-erstellen
|
||||||
;; (deltaL/L_VF werden fuer winkel+deltaH geloest, L_GF Split 500/4230;
|
;; (deltaL/L_VF werden fuer winkel+deltaH geloest, L_GF Split 500/4230;
|
||||||
|
;; optionales "typ": "standard" (Default) oder "etage" waehlt den
|
||||||
|
;; Foerderanlagen-Typ (siehe vf_standard.lsp/vf_etage.lsp);
|
||||||
;; "anzahl"/"delta_y"/"delta_x" wie bei Gefaelle: Template->mehrere
|
;; "anzahl"/"delta_y"/"delta_x" wie bei Gefaelle: Template->mehrere
|
||||||
;; Foerderer mit fortlaufend suffixiertem test_id, _01.._anzahl)
|
;; Foerderer mit fortlaufend suffixiertem test_id, _01.._anzahl)
|
||||||
;; - Gefaelle (test_id "GF_*", Modus 1) Block GF_* via gefaellestrecke-einfuegen
|
;; - Gefaelle (test_id "GF_*", Modus 1) Block GF_* via gefaellestrecke-einfuegen
|
||||||
@@ -111,17 +114,21 @@
|
|||||||
;; erzwingen in test_foerderer.lsp), statt den automatisch kleinsten
|
;; erzwingen in test_foerderer.lsp), statt den automatisch kleinsten
|
||||||
;; gueltigen Winkel zu nehmen. L_GF1 aus JSON ist der Vorlauf-Zielwert;
|
;; gueltigen Winkel zu nehmen. L_GF1 aus JSON ist der Vorlauf-Zielwert;
|
||||||
;; L_GF2 (Nachlauf) ist der Rest (L_GF_gesamt - L_GF1).
|
;; L_GF2 (Nachlauf) ist der Rest (L_GF_gesamt - L_GF1).
|
||||||
(defun mubea:build-vario-one (tid richtung deltaL deltaH winkel-soll gf1-ziel seite hz
|
(defun mubea:build-vario-one (tid typ richtung deltaL deltaH winkel-soll gf1-ziel seite hz
|
||||||
startpunkt / ergebnis winkel-treffer best-winkel L_GF L_VF
|
startpunkt / ergebnis winkel-treffer best-winkel L_GF L_VF
|
||||||
gf1 gf2 hoehe-bis lastEnt ent vf-nummer)
|
gf1 gf2 hoehe-bis lastEnt ent vf-nummer)
|
||||||
(if (or (null seite) (= seite "")) (setq seite "links"))
|
(if (or (null seite) (= seite "")) (setq seite "links"))
|
||||||
|
(if (or (null typ) (= typ "")) (setq typ "standard"))
|
||||||
(if (null hz) (setq hz 0.0) (setq hz (float hz)))
|
(if (null hz) (setq hz 0.0) (setq hz (float hz)))
|
||||||
(princ (strcat "\n [VARIO] " tid " -> deltaL=" (rtos deltaL 2 0)
|
(princ (strcat "\n [VARIO] " tid " (" typ ") -> deltaL=" (rtos deltaL 2 0)
|
||||||
" deltaH=" (rtos deltaH 2 0)
|
" deltaH=" (rtos deltaH 2 0)
|
||||||
" Winkel(soll)=" (if winkel-soll (itoa (fix winkel-soll)) "auto")
|
" Winkel(soll)=" (if winkel-soll (itoa (fix winkel-soll)) "auto")
|
||||||
" L_GF1-Ziel=" (rtos gf1-ziel 2 0)))
|
" L_GF1-Ziel=" (rtos gf1-ziel 2 0)))
|
||||||
|
|
||||||
(setq ergebnis (berechne-alle-winkel deltaL deltaH richtung nil))
|
(setq ergebnis
|
||||||
|
(if (= typ "etage")
|
||||||
|
(berechne-etage deltaL deltaH richtung seite)
|
||||||
|
(berechne-alle-winkel deltaL deltaH richtung nil)))
|
||||||
(setq best-winkel (car ergebnis) L_GF (cadr ergebnis) L_VF (caddr ergebnis))
|
(setq best-winkel (car ergebnis) L_GF (cadr ergebnis) L_VF (caddr ergebnis))
|
||||||
(if (numberp winkel-soll)
|
(if (numberp winkel-soll)
|
||||||
(progn
|
(progn
|
||||||
@@ -146,7 +153,9 @@
|
|||||||
|
|
||||||
(setq hoehe-bis (if (= richtung "Auf") deltaH (- deltaH)))
|
(setq hoehe-bis (if (= richtung "Auf") deltaH (- deltaH)))
|
||||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||||
(variofoerderer-einfuegen deltaL deltaH richtung best-winkel gf1 gf2 L_VF startpunkt seite hz)
|
(if (= typ "etage")
|
||||||
|
(etage-foerderanlage-einfuegen deltaL deltaH richtung best-winkel gf1 gf2 L_VF startpunkt seite hz)
|
||||||
|
(variofoerderer-einfuegen deltaL deltaH richtung best-winkel gf1 gf2 L_VF startpunkt seite hz))
|
||||||
;; Blocknummer wie in der Produktion ueber vf-next-number holen (NICHT fest
|
;; Blocknummer wie in der Produktion ueber vf-next-number holen (NICHT fest
|
||||||
;; auf 1): vf-next-number ueberspringt bereits belegte VF_n-Nummern. Mit
|
;; auf 1): vf-next-number ueberspringt bereits belegte VF_n-Nummern. Mit
|
||||||
;; einer festen 1 traf das _.-BLOCK des ZWEITEN Foerderers auf den schon
|
;; einer festen 1 traf das _.-BLOCK des ZWEITEN Foerderers auf den schon
|
||||||
@@ -154,7 +163,7 @@
|
|||||||
;; damit Basispunkt/Auswahlsatz der festen Antwortfolge, meldet "Eintrag
|
;; damit Basispunkt/Auswahlsatz der festen Antwortfolge, meldet "Eintrag
|
||||||
;; kann nicht erkannt werden" und der Befehl bleibt offen (Haenger).
|
;; kann nicht erkannt werden" und der Befehl bleibt offen (Haenger).
|
||||||
(setq vf-nummer (vf-next-number))
|
(setq vf-nummer (vf-next-number))
|
||||||
(setq ent (vf-block-erstellen "standard" seite vf-nummer 0 0 hoehe-bis
|
(setq ent (vf-block-erstellen typ seite vf-nummer 0 0 hoehe-bis
|
||||||
deltaH deltaL L_VF gf1 gf2 richtung best-winkel
|
deltaH deltaL L_VF gf1 gf2 richtung best-winkel
|
||||||
startpunkt lastEnt hz "0" "Schoenenberger Geruest"))
|
startpunkt lastEnt hz "0" "Schoenenberger Geruest"))
|
||||||
(if (or (null ent) (/= (type ent) 'ENAME))
|
(if (or (null ent) (/= (type ent) 'ENAME))
|
||||||
@@ -162,8 +171,11 @@
|
|||||||
;; SSG_VF_EDIT-XDATA schreiben (wie vfs-standard-dialog-berechnen-
|
;; SSG_VF_EDIT-XDATA schreiben (wie vfs-standard-dialog-berechnen-
|
||||||
;; einfuegen) - sonst erkennt VARIOFOERDERER_EDIT den Block beim
|
;; einfuegen) - sonst erkennt VARIOFOERDERER_EDIT den Block beim
|
||||||
;; Doppelklick nicht als "per Dialog erstellt" und verweigert die
|
;; Doppelklick nicht als "per Dialog erstellt" und verweigert die
|
||||||
;; Bearbeitung (vfs-edit-keine-xdata).
|
;; Bearbeitung (vfs-edit-keine-xdata). NUR fuer typ="standard": das
|
||||||
(if (and ent (= (type ent) 'ENAME)) (vfs-xdata-schreiben ent hz))
|
;; XDATA-Schema markiert den Block hart als "standard" - bei einem
|
||||||
|
;; Etage-Block wuerde ein spaeterer Doppelklick faelschlich versuchen,
|
||||||
|
;; ihn als Standard-Typ neu aufzubauen.
|
||||||
|
(if (and ent (= (type ent) 'ENAME) (= typ "standard")) (vfs-xdata-schreiben ent hz))
|
||||||
(mubea:ent-json tid "vario" ent))
|
(mubea:ent-json tid "vario" ent))
|
||||||
(progn
|
(progn
|
||||||
(princ (strcat "\n FEHLER: deltaL=" (rtos deltaL 2 0)
|
(princ (strcat "\n FEHLER: deltaL=" (rtos deltaL 2 0)
|
||||||
@@ -179,9 +191,10 @@
|
|||||||
;; bei genau einer Kopie bleibt der Template-Name erhalten (kompatibel zur
|
;; bei genau einer Kopie bleibt der Template-Name erhalten (kompatibel zur
|
||||||
;; frueheren Einzelbenennung).
|
;; frueheren Einzelbenennung).
|
||||||
;; Rueckgabe: LISTE von Ergebnis-JSON-Strings (eine je Kopie).
|
;; Rueckgabe: LISTE von Ergebnis-JSON-Strings (eine je Kopie).
|
||||||
(defun mubea:build-vario (e / tid0 richtung deltaL deltaH winkel-soll gf1-ziel seite hz
|
(defun mubea:build-vario (e / tid0 typ richtung deltaL deltaH winkel-soll gf1-ziel seite hz
|
||||||
start0 anzahl dy dx i off nr tid startpunkt ergebnisse)
|
start0 anzahl dy dx i off nr tid startpunkt ergebnisse)
|
||||||
(setq tid0 (ssg-val e "test_id")
|
(setq tid0 (ssg-val e "test_id")
|
||||||
|
typ (ssg-val e "typ")
|
||||||
richtung (ssg-val e "richtung")
|
richtung (ssg-val e "richtung")
|
||||||
deltaL (float (ssg-val e "deltaL"))
|
deltaL (float (ssg-val e "deltaL"))
|
||||||
deltaH (float (ssg-val e "deltaH"))
|
deltaH (float (ssg-val e "deltaH"))
|
||||||
@@ -207,7 +220,7 @@
|
|||||||
tid0))
|
tid0))
|
||||||
(setq startpunkt (list (+ (car start0) (* dx off)) (+ (cadr start0) (* dy off)) (caddr start0)))
|
(setq startpunkt (list (+ (car start0) (* dx off)) (+ (cadr start0) (* dy off)) (caddr start0)))
|
||||||
(setq ergebnisse
|
(setq ergebnisse
|
||||||
(cons (mubea:build-vario-one tid richtung deltaL deltaH winkel-soll gf1-ziel seite hz startpunkt)
|
(cons (mubea:build-vario-one tid typ richtung deltaL deltaH winkel-soll gf1-ziel seite hz startpunkt)
|
||||||
ergebnisse))
|
ergebnisse))
|
||||||
(setq i (1+ i))
|
(setq i (1+ i))
|
||||||
)
|
)
|
||||||
|
|||||||
Vendored
+15
@@ -161,6 +161,21 @@
|
|||||||
"rotation": 180,
|
"rotation": 180,
|
||||||
"assigned_to": "VF_Schnitt_C"
|
"assigned_to": "VF_Schnitt_C"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"test_id": "VF_Mubea_Etage_0061",
|
||||||
|
"typ": "etage",
|
||||||
|
"richtung": "Auf",
|
||||||
|
"deltaL": 12790,
|
||||||
|
"deltaH": 0,
|
||||||
|
"seite": "links",
|
||||||
|
"winkel": 9,
|
||||||
|
"L_GF1": 1602.4,
|
||||||
|
"hz": 270.0,
|
||||||
|
"x": -400,
|
||||||
|
"y": 147.615,
|
||||||
|
"z": 1467,
|
||||||
|
"comment": "Nachbau von Objekt ID 0061 (Block VF_5) aus Mubea_Quali.dxf per Etage-VarioFoerderer (FOERDERANLAGE Typ 2 / Werteingabe). Original-Attribute: DELTA_L=12790mm, DELTA_H=0mm, SEITE_AS/ES=links, MOTORSEITE=rechts (Default), Winkel=9°, L_GF=1602,1602mm, L_VF=4535mm, ANZAHL_SEPARATOR=2. hz=270 reproduziert die im Original beobachtete Baurichtung (-Y lokal); die zusaetzliche 180°-Rotation der finalen INSERT im Original duerfte eine manuelle Nachplatzierung in der Gesamtzeichnung sein, nicht Teil der parametrischen Erzeugung."
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"test_id": "GF_Mubea",
|
"test_id": "GF_Mubea",
|
||||||
"modus": 1,
|
"modus": 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user