martes, 12 de noviembre de 2002

Re: [ACAD] texto enderredor

Pues con una rutina AutoLISP por ejemplo, hay va una

---------copiar empezando por aqui

;Este programa pone una cadena de texto en forma circular


(defun c:texcir (/ cen rad alt grc txt tcar nord angec letra pt angrt)
(if (= rad_d nil) (setq rad_d 25))
(if (= alt_d nil) (setq alt_d 5))
(if (= grc_d nil) (setq grc_d pi))
(if (= txt_d nil) (setq txt_d "Hola Mundo"))

(setq cen (getpoint "\nPunto central: "))

(princ "\nRadio <")
(princ rad_d)
(princ ">: ")
(setq rad (getdist cen))
(if (= rad nil) (setq rad rad_d) (setq rad_d rad))

(princ "\nAltura del texto <")
(princ alt_d)
(princ ">: ")
(setq alt (getdist))
(if (= alt nil) (setq alt alt_d) (setq alt_d alt))

(princ "\nGrados cubiertos <")
(princ (angtos grc_d))
(princ ">: ")
(setq grc (getangle cen))
(if (= grc nil) (setq grc grc_d) (setq grc_d grc))

(princ "\nCadena de texto <")
(princ txt_d)
(princ ">: ")
(setq txt (getstring t))
(if (= txt "") (setq txt txt_d) (setq txt_d txt))

(setq tcar (strlen txt))
(setq nord 1)
(setq angec (/ grc (- tcar 1)))
(while (<= nord tcar)
(setq letra (substr txt nord 1))
(setq pt (polar cen (- pi (* angec (- nord 1))) rad))
(setq angrt (- (* 0.5 pi) (* angec (- nord 1))))
(setq angrt (/ (* angrt 180.0) pi))
(command "_text" "_c" pt angrt letra)
(setq nord (1+ nord))
)
)


------------------ y terminando por aqui
y luego pegar en el bloc de notas y salvar como: texcir.lsp
Si no te funciona comprueba los retornos de carro al final de cada linea, a veces desparecen del fichero al pegarlo en el mensaje. Salud, Eomer.