(DEFUN C:AREA2 (/ ent pt polig model application thisdrawing Height)
(vl-load-com)
(setq ent (car (Entsel “\nSelecione pline”))
pt (getpoint “\nInforme o ponto de inserção”)
Height (getdist “\nQual a altura do texto”)
polig (vlax-ename->vla-object ent)
application (vlax-get-acad-object)
thisdrawing (vla-get-activedocument application)
model (vla-get-modelspace thisdrawing)
TextString (strcat “%<\\AcObjProp.16.2 Object(%<\\_ObjId ”
(itoa (vla-get-ObjectID polig))
“>%).Area \\f “”%lu2%pr2%ps[A=,m²]%ds44%th46″”>%”)
InsertionPoint (vlax-3d-point pt)
)
(vla-addtext model TextString InsertionPoint Height)
)
Ela faz o seguinte: após selecionar uma polilinha, ela cria um texto contendo a área desta polilinha. Simples né? o interessante fica por conta do FIELD que ela usa para escrever este texto!!! pois ele se atualiza se você modificar esta polilinha!! Este é um recurso que já vem de tempos no autocad, mas que pouca gente usa ou mesmo conhece…
Vai ser bastante útil para quem faz desenho arquitetônico!!!
Com poucas modificações, dá pra fazer escrever esse texto numa tabela por exemplo, já que o mais complexo é criar a string correta para o FIELD… Aconselho a você se informar mais sobre FIELDs no menu “Insert/Filed” e no help do cad… tem coisas bem interessantes que dá pra fazer, hehehehe
pode ser que um REGEN resolva
Neyton,
Esse rotina fundionou perfeitamente com o Autocad2009 no XP, entretanto, no windows 7 no lugar do texto aparece ####.
Será que é configuração de segurança de alguma pasta?
Thanks!
aí seria mais facil se em vez de duas polilinhas tivessemos uma region…
mas dá para adptar a rotina para fazer o que você quer…
Neyton,
E se dentro dessa polilinha contiver outra polilinha? Teria como ela descontar da área total?
Valeu!