Fix des Redefines im Lisp. Erzeugte lange schleifen. Jeder Block nur einmal laden
This commit is contained in:
+24
-4
@@ -113,7 +113,7 @@
|
||||
;; 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
|
||||
startpunkt / ergebnis winkel-treffer best-winkel L_GF L_VF
|
||||
gf1 gf2 hoehe-bis lastEnt ent)
|
||||
gf1 gf2 hoehe-bis lastEnt ent vf-nummer)
|
||||
(if (or (null seite) (= seite "")) (setq seite "links"))
|
||||
(if (null hz) (setq hz 0.0) (setq hz (float hz)))
|
||||
(princ (strcat "\n [VARIO] " tid " -> deltaL=" (rtos deltaL 2 0)
|
||||
@@ -147,7 +147,14 @@
|
||||
(setq hoehe-bis (if (= richtung "Auf") deltaH (- deltaH)))
|
||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||
(variofoerderer-einfuegen deltaL deltaH richtung best-winkel gf1 gf2 L_VF startpunkt seite hz)
|
||||
(setq ent (vf-block-erstellen "standard" seite 1 0 0 hoehe-bis
|
||||
;; Blocknummer wie in der Produktion ueber vf-next-number holen (NICHT fest
|
||||
;; auf 1): vf-next-number ueberspringt bereits belegte VF_n-Nummern. Mit
|
||||
;; einer festen 1 traf das _.-BLOCK des ZWEITEN Foerderers auf den schon
|
||||
;; vorhandenen Namen "VF_1" -> BricsCAD fragt "Neu definieren?", verschluckt
|
||||
;; damit Basispunkt/Auswahlsatz der festen Antwortfolge, meldet "Eintrag
|
||||
;; kann nicht erkannt werden" und der Befehl bleibt offen (Haenger).
|
||||
(setq vf-nummer (vf-next-number))
|
||||
(setq ent (vf-block-erstellen "standard" seite vf-nummer 0 0 hoehe-bis
|
||||
deltaH deltaL L_VF gf1 gf2 richtung best-winkel
|
||||
startpunkt lastEnt hz "0" "Schoenenberger Geruest"))
|
||||
(if (or (null ent) (/= (type ent) 'ENAME))
|
||||
@@ -327,7 +334,7 @@
|
||||
;; > 0) - dieselbe Absicherung wie in ssg-ils-block-laden-dim (Zeilen 418f.) und
|
||||
;; omni:insert-dxf (Zeile 980): nach dem INSERT verbleibende Prompts mit Leer-
|
||||
;; Antworten (Enter) abfangen, bis der Befehl sauber beendet ist.
|
||||
(defun mubea:build-separator-one (tid blockname pt rot / eff)
|
||||
(defun mubea:build-separator-one (tid blockname pt rot / eff n)
|
||||
(princ (strcat "\n [SEP] " tid " '" (if blockname blockname "?")
|
||||
"' -> (" (rtos (car pt) 2 0) "," (rtos (cadr pt) 2 0) "," (rtos (caddr pt) 2 0)
|
||||
") R=" (rtos rot 2 0)))
|
||||
@@ -342,7 +349,20 @@
|
||||
(if eff
|
||||
(progn
|
||||
(command "_.INSERT" eff pt "" "" rot)
|
||||
(while (> (getvar "CMDACTIVE") 0) (command ""))
|
||||
;; Verbleibende Prompts mit Enter abfangen - aber GEZAEHLT. Ein Prompt, der
|
||||
;; eine Leer-Antwort ablehnt ("Eintrag kann nicht erkannt werden. Bitte
|
||||
;; versuchen Sie es erneut."), haelt CMDACTIVE dauerhaft > 0: eine
|
||||
;; ungebremste (while (> CMDACTIVE 0) (command "")) Schleife laeuft dort
|
||||
;; endlos und BricsCAD haengt. Danach hart abbrechen und melden.
|
||||
(setq n 0)
|
||||
(while (and (> (getvar "CMDACTIVE") 0) (< n 5))
|
||||
(command "")
|
||||
(setq n (1+ n)))
|
||||
(if (> (getvar "CMDACTIVE") 0)
|
||||
(progn
|
||||
(command)
|
||||
(princ (strcat "\n WARNUNG: INSERT von '" eff
|
||||
"' nicht sauber beendet - abgebrochen."))))
|
||||
(mubea:ent-json tid "separator" (entlast)))
|
||||
(progn
|
||||
;; Kein Block gefunden -> sichtbaren Platzhalter zeichnen
|
||||
|
||||
Reference in New Issue
Block a user