Bom, postei essa lisp aí no site do autolisp e vou colocar ela aqui também:
(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
(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
Neyton,
ResponderExcluirE se dentro dessa polilinha contiver outra polilinha? Teria como ela descontar da área total?
Valeu!
aí seria mais facil se em vez de duas polilinhas tivessemos uma region...
ResponderExcluirmas dá para adptar a rotina para fazer o que você quer...
Neyton,
ResponderExcluirEsse 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!
pode ser que um REGEN resolva
ResponderExcluir