TextBox2

Outro dia estava precisando desenhar um retângulo tal que circunscrevesse um TEXT ou MTEXT… pois bem, existe a função textbox no autolisp, mas esta so funciona com TEXT… e ainda, ele devolve uma lista com a diagonal do retângulo ocupado pelo texto, como se ele estivesse na origem (0,0) e tivesse rotação zero…

aí desenvolvi esta rotinazinha:


(defun textbox2 (ent / box w h pt ang al)
(
if (setq ent (ename-of ent))
(
progn
(setq pt (3d-of-vla
(vla-get-insertionpoint
(vlax-ename->vla-object ent)))
ang (dxf 50 ent))
(
if (= (dxf 0 ent) “TEXT”)
(
setq box (textbox (list (cons -1 ent)))
w ( (caadr box) (caar box))
h ( (cadadr box) (cadar box)))
(
setq w (dxf 42 ent)
h (dxf 43 ent)
ang (angle (trans (0 0) 1 0)
(
trans
(polar (0 0) ang 1)
1 0))
al (1- (dxf 71 ent))
pt (polar
(polar pt ang
(* w -0.5 (rem al 3)))
(
ang (/ pi 2))
(
* h 0.5 ( 2 (/ al 3))))))
(
list pt
(polar pt ang w)
(
polar pt
(+ ang (atan (/ h w)))
(
sqrt (+ (expt h 2)
(
expt w 2))))
(
polar pt (+ ang (/ pi 2)) h)))))


ela devolve uma lista com os quatro vértices do retângulo, esteja o texto onde estiver e a rotação que for… serve para TEXT e MTEXT…

2 comentários em “TextBox2”

Deixe um comentário

Carrinho de compras
Rolar para cima