Mit dem unten stehenden kleinen Programm können Sie beliebige Text- und Mtext-Elemente um einen Faktor skalieren und so an unterschiedliche Plotmaßstäbe anpassen. Kopieren Sie das Programm einfach in eine leere Textdatei (z.B. in Notepad) und speichern Sie diese z.B. als SCALETEXT.LSP ab.
Der Befehl SCALETEXT fordert Sie auf, einen Skalierfaktor anzugeben udn Text- bzw Mtext-Elemente zu wählen, die entsprehend skaliert werden sollen. Der Befehl SCALEALLTEXT skaliert nach Eingabe eines Faktors alle Text- und Mtext-Elemente in der Zeichnung.
Die Funktion benötigt ArchTools, das geladen sein muß.
;;; LISP beginnt hier ->
(defun ss_s2e (sset / eset counter)
(setq counter 0)
(if (= 'PICKSET (type sset))
(repeat (sslength sset)
(setq eset (cons (cdr (assoc -1 (entget (ssname sset counter)))) eset)
counter (1+ counter)
)
)
)
eset
)
(defun scaletext (sset factor / ent)
(foreach ent sset
(if (setq scale (cdr (assoc 40 (entget ent))))
(ssmodent ent 40 (* scale factor))
)
)
)
(defun c:scaletext (/ factor)
(command "._undo" "_group")
(if (and (setq factor (getreal "\nFaktor für Textgrößenskalierung: "))
(setq sset (ss_s2e (ssget '((0 . "TEXT,MTEXT")))))
)
(if c:at-version
(scaletext sset factor)
(alert
"Fehler:\nSCALETEXT funktioniert nur, wenn ARCHTOOLS geladen ist.\nDownload -> http://www.archtools.de"
)
)
)
(command "._undo" "_group")
(prin1)
)
(defun c:scalealltext (/ factor)
(command "._undo" "_group")
(if (setq factor (getreal "\nFaktor für Textgrößenskalierung: "))
(if c:at-version
(scaletext (ss_s2e (ssget "X" '((0 . "TEXT,MTEXT")))) factor)
(alert
"Fehler:\nSCALEALLTEXT funktioniert nur, wenn ARCHTOOLS geladen ist.\nDownload -> http://www.archtools.de"
)
)
)
(command "._undo" "_group")
(prin1)
)
;;; <- LISP endet hier
------------------
Architekturwerkzeuge für AutoCAD: http://www.archtools.de