[FIX] Stueckliste: Texte ueberschrieben sich bei abweichendem Textstil
ssg-sl-tabelle-zeichnen/ssg-sl-faehnchen riefen TEXT ueber command auf. Bei einem aktiven Textstil mit fester/variabler Ausrichtung (Mitte/Fit/Aligned statt Links) fragt TEXT dann einen zweiten Punkt zusaetzlich ab - jeder nachfolgende command-Aufruf landete am falschen Prompt, wodurch Kopf- und Datenzeilen der Stuecklistentabelle sich alle an derselben Stelle stapelten statt an ihrer vorgesehenen Position (Header nicht mehr lesbar). Neue Hilfsfunktion ssg-sl-text-machen erzeugt TEXT-Entities per entmake statt ueber den interaktiven command-Pfad - unabhaengig von Textstil/Ausrichtung und der command-Promptkette. Gleiche Fehlerklasse wie der _.-INSERT-Fix bei DIN_FORMATE (vorheriger Commit). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+32
-13
@@ -24,6 +24,25 @@
|
|||||||
|
|
||||||
(vl-load-com)
|
(vl-load-com)
|
||||||
|
|
||||||
|
;; TEXT per entmake erzeugen (linksbuendig/Baseline, Gruppe 10 = Startpunkt).
|
||||||
|
;; NICHT ueber (command "_text" p hoehe winkel string): bei einem aktiven
|
||||||
|
;; Textstil mit fester/variabler Ausrichtung (z.B. "Mitte"/"Fit"/"Aligned"
|
||||||
|
;; statt "Links") fragt TEXT dann einen ZWEITEN Punkt zusaetzlich ab - jeder
|
||||||
|
;; nachfolgende command-Aufruf landet dadurch am falschen Prompt und alle
|
||||||
|
;; Texte stapeln sich an derselben Stelle (realer Bug: Stuecklistentabelle
|
||||||
|
;; ohne lesbare Header, siehe ssg-sl-tabelle-zeichnen). entmake ist von
|
||||||
|
;; Textstil/Ausrichtung und der interaktiven Befehlskette unabhaengig.
|
||||||
|
(defun ssg-sl-text-machen (p hoehe string)
|
||||||
|
(if (null (caddr p)) (setq p (list (car p) (cadr p) 0.0)))
|
||||||
|
(entmake (list '(0 . "TEXT")
|
||||||
|
(cons 8 (getvar "CLAYER"))
|
||||||
|
(cons 7 (getvar "TEXTSTYLE"))
|
||||||
|
(cons 10 p)
|
||||||
|
(cons 40 hoehe)
|
||||||
|
(cons 1 string)
|
||||||
|
(cons 50 0.0)))
|
||||||
|
)
|
||||||
|
|
||||||
;; ------------------------------------------------------------
|
;; ------------------------------------------------------------
|
||||||
;; POSITIONSFAEHNCHEN
|
;; POSITIONSFAEHNCHEN
|
||||||
;; ------------------------------------------------------------
|
;; ------------------------------------------------------------
|
||||||
@@ -40,7 +59,7 @@
|
|||||||
(setq pt6 (list (+ (car pt1) (* faktor 125)) (+ (cadr pt1) (* faktor 68)) z))
|
(setq pt6 (list (+ (car pt1) (* faktor 125)) (+ (cadr pt1) (* faktor 68)) z))
|
||||||
(command "_line" pt0 pt1 "")
|
(command "_line" pt0 pt1 "")
|
||||||
(command "_circle" pt6 (* faktor 153))
|
(command "_circle" pt6 (* faktor 153))
|
||||||
(command "_text" pt5 (rtos (* faktor 75)) "0" (itoa posnr))
|
(ssg-sl-text-machen pt5 (* faktor 75) (itoa posnr))
|
||||||
)
|
)
|
||||||
((= umrand "3")
|
((= umrand "3")
|
||||||
(setq x (- x 15) y (- y 15))
|
(setq x (- x 15) y (- y 15))
|
||||||
@@ -50,7 +69,7 @@
|
|||||||
(setq pt3 (list x (+ y (* faktor 150)) z))
|
(setq pt3 (list x (+ y (* faktor 150)) z))
|
||||||
(setq pt5 (list (- x (* faktor 225)) (+ y (* faktor 25)) z))
|
(setq pt5 (list (- x (* faktor 225)) (+ y (* faktor 25)) z))
|
||||||
(command "_pline" pt0 "_w" "0" "0" pt1 pt2 pt3 pt0 "")
|
(command "_pline" pt0 "_w" "0" "0" pt1 pt2 pt3 pt0 "")
|
||||||
(command "_text" pt5 (rtos (* faktor 75)) "0" (itoa posnr))
|
(ssg-sl-text-machen pt5 (* faktor 75) (itoa posnr))
|
||||||
)
|
)
|
||||||
(t
|
(t
|
||||||
(setq pt1 (list (+ x (* faktor 100)) (+ y (* faktor 150)) z))
|
(setq pt1 (list (+ x (* faktor 100)) (+ y (* faktor 150)) z))
|
||||||
@@ -60,7 +79,7 @@
|
|||||||
(setq pt5 (list (+ x (* faktor 125)) (+ y (* faktor 175)) z))
|
(setq pt5 (list (+ x (* faktor 125)) (+ y (* faktor 175)) z))
|
||||||
(command "_pline" pt0 "_w" "0" "0" pt1 "")
|
(command "_pline" pt0 "_w" "0" "0" pt1 "")
|
||||||
(command "_pline" pt1 pt2 pt3 pt4 pt1 "")
|
(command "_pline" pt1 pt2 pt3 pt4 pt1 "")
|
||||||
(command "_text" pt5 (rtos (* faktor 75)) "0" (itoa posnr))
|
(ssg-sl-text-machen pt5 (* faktor 75) (itoa posnr))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -87,18 +106,18 @@
|
|||||||
(setq p93 (list (+ (car p11) 1450.0) (+ (cadr p11) 100.0)))
|
(setq p93 (list (+ (car p11) 1450.0) (+ (cadr p11) 100.0)))
|
||||||
(setq p94 (list (+ (car p11) 2050.0) (+ (cadr p11) 100.0)))
|
(setq p94 (list (+ (car p11) 2050.0) (+ (cadr p11) 100.0)))
|
||||||
(setq p95 (list (+ (car p11) 3250.0) (+ (cadr p11) 100.0)))
|
(setq p95 (list (+ (car p11) 3250.0) (+ (cadr p11) 100.0)))
|
||||||
(command "_text" p91 tsize "0" (ssg-text "sl-stkl-kopf-pos"))
|
(ssg-sl-text-machen p91 tsize (ssg-text "sl-stkl-kopf-pos"))
|
||||||
(command "_text" p92 tsize "0" (ssg-text "sl-stkl-kopf-menge"))
|
(ssg-sl-text-machen p92 tsize (ssg-text "sl-stkl-kopf-menge"))
|
||||||
(command "_text" p93 tsize "0" (ssg-text "sl-stkl-kopf-laenge"))
|
(ssg-sl-text-machen p93 tsize (ssg-text "sl-stkl-kopf-laenge"))
|
||||||
(command "_text" p94 tsize "0" (ssg-text "sl-stkl-kopf-artikel"))
|
(ssg-sl-text-machen p94 tsize (ssg-text "sl-stkl-kopf-artikel"))
|
||||||
(command "_text" p95 tsize "0" (ssg-text "sl-stkl-kopf-bezeichnung"))
|
(ssg-sl-text-machen p95 tsize (ssg-text "sl-stkl-kopf-bezeichnung"))
|
||||||
(setq n 0)
|
(setq n 0)
|
||||||
(foreach daten zeilen
|
(foreach daten zeilen
|
||||||
(command "_text" p1 tsize "0" (nth 0 daten))
|
(ssg-sl-text-machen p1 tsize (nth 0 daten))
|
||||||
(command "_text" (list (+ (car p1) 400.0) (cadr p1)) tsize "0" (nth 1 daten))
|
(ssg-sl-text-machen (list (+ (car p1) 400.0) (cadr p1)) tsize (nth 1 daten))
|
||||||
(command "_text" (list (+ (car p1) 1000.0) (cadr p1)) tsize "0" (nth 2 daten))
|
(ssg-sl-text-machen (list (+ (car p1) 1000.0) (cadr p1)) tsize (nth 2 daten))
|
||||||
(command "_text" (list (+ (car p1) 1900.0) (cadr p1)) tsize "0" (nth 3 daten))
|
(ssg-sl-text-machen (list (+ (car p1) 1900.0) (cadr p1)) tsize (nth 3 daten))
|
||||||
(command "_text" (list (+ (car p1) 3000.0) (cadr p1)) tsize "0" (nth 4 daten))
|
(ssg-sl-text-machen (list (+ (car p1) 3000.0) (cadr p1)) tsize (nth 4 daten))
|
||||||
(command "_line" (list (- (car p1) 100.0) (- (cadr p1) 50.0))
|
(command "_line" (list (- (car p1) 100.0) (- (cadr p1) 50.0))
|
||||||
(list (+ (car p1) 9000.0) (- (cadr p1) 50.0)) "")
|
(list (+ (car p1) 9000.0) (- (cadr p1) 50.0)) "")
|
||||||
(setq p1 (list (car p1) (- (cadr p1) lspace)))
|
(setq p1 (list (car p1) (- (cadr p1) lspace)))
|
||||||
|
|||||||
Reference in New Issue
Block a user