Hallo allemaal,
ik heb een lisp voor het alignen van text langs een lijn,
alleen zou ik deze lisp graag omwillen bouwen zodat ik een mtext kan alignen langs een lijn. dit moet volgens mij niet zo heel moeilijk zijn, kan en wil iemand mij hierbij helpen?
alvast bedankt,
Hieronder de lisp:
(defun aligntxt_err (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(setq *error* old_error)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun align ()
(setq leng (sslength txt_set)
n 0
)
(while (/= n leng)
(setq ent (entget (ssname txt_set n))
n (1+ n)
ent (subst (cons 50 ang)
(assoc 50 ent)
ent
)
)
(entmod ent)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun sel ()
(setq punt (cadr (entsel "\nPick a line to align text. ")))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun aligntxt ()
(sel)
(while (= punt nil)
(prompt "\nNothing found.")
(sel)
)
(command "dimaligned" "" punt punt)
(setq ang (angle (trans (cdr (assoc 13 (entget (entlast)))) 0 1)(trans (cdr (assoc 14 (entget (entlast)))) 0 1)))
(entdel (entlast))
(align)
(setq ans (getstring "\nRotate 180 degrees? y/n <n> "))
(if (= (strcase ans) "Y")
(progn (setq ang (+ ang pi))
(align)
)
)
(princ "\nRegards, Theo.")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:at ()
(setq old_error *error*
*error* aligntxt_err
)
(princ "\nSelect TEXT to align. ")
(setq txt_set (ssget '((0 . "TEXT"))))
(if txt_set
(aligntxt)
(alert "No \"TEXT\" found.")
)
(setq *error* old_error
old_error nil
txt_set nil
leng nil
ent nil
ang nil
ans nil
n nil
)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
't Is eigenlijk te simpel maar kijk en vergelijk
(setq txt_set (ssget '((0 . "TEXT"))))
(setq txt_set (ssget '((0 . "MTEXT"))))
Wat ook werkt is:
(setq txt_set (ssget '((0 . "*TEXT"))))
Citaat van: EddyBeerke op do 21 08 2008, 12:30:28
't Is eigenlijk te simpel maar kijk en vergelijk
(setq txt_set (ssget '((0 . "TEXT"))))
(setq txt_set (ssget '((0 . "MTEXT"))))
Bedankt voor de snelle respons, ik had dit idd ook al geprobeerd maar helaas werkt dit niet bij mij.
(edit)
nu werkt het wel heb maar een nieuwe lisp aangemaakt en daarin alles gekopieert en nu werkt het wel
nogmaals bedankt