Hallo,
seit einiger Zeit benutze ich folgendes LISP, welches hier im Forum stand, (meiner meinung das beste zum Thema Text ausrichten an Linien, da es Mtexte und Polylinien erfasst und nicht nur Linien und Texte.)
Leider versagt es Bei MTexten mit dem neuen Beschriftungsmodus...
kann man das irgendwie beheben??
Gruss
(defun C:TDA()
(setq tau (nentsel "\nAusrichtende Linie auswählen: "))
(setq tausel (entget (car tau)))
(cond ((= (cdr (assoc 0 tausel)) "VERTEX")(setq pt1 (osnap (cadr tau) "_mid")))
((= (cdr (assoc 0 tausel)) "LWPOLYLINE")(setq pt1 (osnap (cadr tau) "_mid")))
((= (cdr (assoc 0 tausel)) "LINE")(setq pt1 (osnap (cadr tau) "_mid")))
(T (alert "An diesem Element kann nicht ausgerichtet werden!")(exit))
)
(setq ten (car (entsel "\nAuszurichtendes Textelement auswählen: ")))
(while ten
(setq pt2 (osnap (cadr tau) "_end"))
(setq tel (entget ten))
(setq tw (angle pt1 pt2))
(setq tel (subst (cons 50 tw)(assoc 50 tel) tel))
(entmod tel)
(entupd ten)
(initget 128 "Ja Nein")
(setq kwort (getkword "\nText um 180ø drehen? J/<N>: "))
(if kwort (setq kwort kwort)(setq kwort "Nein"))
(if (wcmatch kwort "J*")
(progn
(setq tw (+ tw pi))
(setq tel (subst (cons 50 tw)(assoc 50 tel) tel))
(entmod tel)
(entupd ten)
)
)
(setq tau (nentsel "\nAusrichtende Linie auswählen: "))
(setq tausel (entget (car tau)))
(cond ((= (cdr (assoc 0 tausel)) "VERTEX")(setq pt1 (osnap (cadr tau) "_mid")))
((= (cdr (assoc 0 tausel)) "LWPOLYLINE")(setq pt1 (osnap (cadr tau) "_mid")))
((= (cdr (assoc 0 tausel)) "LINE")(setq pt1 (osnap (cadr tau) "_mid")))
(T (alert "An diesem Element kann nicht ausgerichtet werden!")(exit))
)
(setq ten (car (entsel "\nAuszurichtendes Textelement auswählen: ")))
) ; end while
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP