Soma_Áreas_m2.lsp
;;; Início Soma_Áreas_m2.lsp
;;; JA
;;; www.cadtom.com
;;; 2002-09-03 - Somarea.lsp
;;; 2002-10-15 - Somarea.lsp
;;; 2005-02-26 - Soma_Áreas.lsp
;;; 2007-01-26 - Soma_Áreas_m2.lsp
;;; Soma_Áreas_m2.lsp - Aplicação para somar áreas das entidades seleccionadas e colocar o resultado com o formato A=nn.nnm2
(defun C:SOMAREA2 (/ CMDCH DMZN LUPRC ARSTOTAL TERM
TXTOTAL CTXT GAR SSLEN TPNAM ENTGT
ENTTPO ARTPNAM ARSTOTAL TXSTOTAL TEXTST TEXTSZ
ENTST STHIGT OSMD PTINS GTXTF TXTNOV
ENTNAM ENTGTB TXTOLD
)
(command "_.undo" "begin")
(setq CMDCH (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq DMZN (getvar "dimzin"))
(setvar "dimzin" 0)
(setq LUPRC (getvar "luprec")
ARSTOTAL 0.0
TERM 0
)
(MAREA)
(while (/= TERM nil)
(progn
(MAREA)
)
)
(setq TXTOTAL (strcat "A=" (rtos ARSTOTAL 2 LUPRC) "m2"))
(initget "Criar Substituir ")
(setq CTXT
(getkword
"»» [C] Criar texto novo / [S] Substituir texto existente / [Enter] Terminar:"
)
)
(if (= CTXT "Criar")
(COLRESLC)
)
(if (= CTXT "Substituir")
(COLRESLS)
)
(setvar "dimzin" DMZN)
(setvar "cmdecho" CMDCH)
(command "_.undo" "end")
(princ "\n»» Total = ")
(princ (rtos ARSTOTAL 2 LUPRC))
(terpri)
)
;;;
;;;
;;;
(defun MAREA ()
(princ "\n»» Seleccione entidades a somar:\n")
(setq GAR (ssget))
(if GAR
(progn
(setq SSLEN (sslength GAR))
(while (> SSLEN 0)
(setq TPNAM (ssname GAR (setq SSLEN (1- SSLEN)))
ENTGT (entget TPNAM)
ENTTPO (cdr (assoc 0 ENTGT))
)
(if (or (equal ENTTPO "REGION")
(equal ENTTPO "3DSOLID")
(equal ENTTPO "POLYLINE")
(equal ENTTPO "LWPOLYLINE")
(equal ENTTPO "CIRCLE")
(equal ENTTPO "ARC")
(equal ENTTPO "SPLINE")
(equal ENTTPO "ELLIPSE")
)
(progn
(command "_.area" "o" TPNAM)
(setq ARTPNAM (getvar "AREA")
ARSTOTAL (+ ARTPNAM ARSTOTAL)
)
)
)
)
)
(princ "\n»» Nenhuma entidade seleccionada! \n")
)
(setq TXSTOTAL (strcat "A=" (rtos ARSTOTAL 2 LUPRC) "m2"))
(princ "\n»» Sub Total = ")
(princ (rtos ARSTOTAL 2 LUPRC))
(terpri)
(initget "Adicionar")
(setq TERM
(getkword
"»» [A] Adicionar outras entidades / [Enter] Terminar selecção:"
)
)
)
;;;
;;;
;;;
(defun COLRESLC ()
(setq TEXTST (getvar "TEXTSTYLE")
TEXTSZ (getvar "TEXTSIZE")
ENTST (tblsearch "style" TEXTST)
STHIGT (cdr (assoc 40 ENTST))
OSMD (getvar "OSMODE")
)
(setvar "OSMODE" 0)
(princ
"\n»» Seleccione ponto de inserção do texto:"
)
(setq PTINS (getpoint))
(setvar "OSMODE" OSMD)
(if (> STHIGT 0.0)
(command "_.text" "j" "mr" PTINS 00.00 TXSTOTAL)
)
(if (= STHIGT 0.0)
(command "_.text" "j" "mr" PTINS TEXTSZ 00.00 TXSTOTAL)
)
)
;;;
;;;
;;;
(defun COLRESLS ()
(setq TEXTST (getvar "TEXTSTYLE")
TEXTSZ (getvar "TEXTSIZE")
ENTST (tblsearch "style" TEXTST)
STHIGT (cdr (assoc 40 ENTST))
OSMD (getvar "OSMODE")
)
(setvar "OSMODE" 0)
(princ
"\n»» Seleccione texto a substituir:"
)
(setvar "OSMODE" OSMD)
(setq GTXTF (entsel)
TXTNOV (cons 1 TXSTOTAL)
ENTNAM (car GTXTF)
ENTGTB (entget ENTNAM)
TXTOLD (assoc 1 ENTGTB)
)
(entmod (subst TXTNOV TXTOLD ENTGTB))
(entupd ENTNAM)
)
(princ "\n»» Inicie aplicação digitando SOMAREA2 \n")
;;; Fim Soma_Áreas_m2.lsp
;;; JA
;;; www.cadtom.com
;;; 2002-09-03 - Somarea.lsp
;;; 2002-10-15 - Somarea.lsp
;;; 2005-02-26 - Soma_Áreas.lsp
;;; 2007-01-26 - Soma_Áreas_m2.lsp
;;; Soma_Áreas_m2.lsp - Aplicação para somar áreas das entidades seleccionadas e colocar o resultado com o formato A=nn.nnm2
(defun C:SOMAREA2 (/ CMDCH DMZN LUPRC ARSTOTAL TERM
TXTOTAL CTXT GAR SSLEN TPNAM ENTGT
ENTTPO ARTPNAM ARSTOTAL TXSTOTAL TEXTST TEXTSZ
ENTST STHIGT OSMD PTINS GTXTF TXTNOV
ENTNAM ENTGTB TXTOLD
)
(command "_.undo" "begin")
(setq CMDCH (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq DMZN (getvar "dimzin"))
(setvar "dimzin" 0)
(setq LUPRC (getvar "luprec")
ARSTOTAL 0.0
TERM 0
)
(MAREA)
(while (/= TERM nil)
(progn
(MAREA)
)
)
(setq TXTOTAL (strcat "A=" (rtos ARSTOTAL 2 LUPRC) "m2"))
(initget "Criar Substituir ")
(setq CTXT
(getkword
"»» [C] Criar texto novo / [S] Substituir texto existente / [Enter] Terminar:"
)
)
(if (= CTXT "Criar")
(COLRESLC)
)
(if (= CTXT "Substituir")
(COLRESLS)
)
(setvar "dimzin" DMZN)
(setvar "cmdecho" CMDCH)
(command "_.undo" "end")
(princ "\n»» Total = ")
(princ (rtos ARSTOTAL 2 LUPRC))
(terpri)
)
;;;
;;;
;;;
(defun MAREA ()
(princ "\n»» Seleccione entidades a somar:\n")
(setq GAR (ssget))
(if GAR
(progn
(setq SSLEN (sslength GAR))
(while (> SSLEN 0)
(setq TPNAM (ssname GAR (setq SSLEN (1- SSLEN)))
ENTGT (entget TPNAM)
ENTTPO (cdr (assoc 0 ENTGT))
)
(if (or (equal ENTTPO "REGION")
(equal ENTTPO "3DSOLID")
(equal ENTTPO "POLYLINE")
(equal ENTTPO "LWPOLYLINE")
(equal ENTTPO "CIRCLE")
(equal ENTTPO "ARC")
(equal ENTTPO "SPLINE")
(equal ENTTPO "ELLIPSE")
)
(progn
(command "_.area" "o" TPNAM)
(setq ARTPNAM (getvar "AREA")
ARSTOTAL (+ ARTPNAM ARSTOTAL)
)
)
)
)
)
(princ "\n»» Nenhuma entidade seleccionada! \n")
)
(setq TXSTOTAL (strcat "A=" (rtos ARSTOTAL 2 LUPRC) "m2"))
(princ "\n»» Sub Total = ")
(princ (rtos ARSTOTAL 2 LUPRC))
(terpri)
(initget "Adicionar")
(setq TERM
(getkword
"»» [A] Adicionar outras entidades / [Enter] Terminar selecção:"
)
)
)
;;;
;;;
;;;
(defun COLRESLC ()
(setq TEXTST (getvar "TEXTSTYLE")
TEXTSZ (getvar "TEXTSIZE")
ENTST (tblsearch "style" TEXTST)
STHIGT (cdr (assoc 40 ENTST))
OSMD (getvar "OSMODE")
)
(setvar "OSMODE" 0)
(princ
"\n»» Seleccione ponto de inserção do texto:"
)
(setq PTINS (getpoint))
(setvar "OSMODE" OSMD)
(if (> STHIGT 0.0)
(command "_.text" "j" "mr" PTINS 00.00 TXSTOTAL)
)
(if (= STHIGT 0.0)
(command "_.text" "j" "mr" PTINS TEXTSZ 00.00 TXSTOTAL)
)
)
;;;
;;;
;;;
(defun COLRESLS ()
(setq TEXTST (getvar "TEXTSTYLE")
TEXTSZ (getvar "TEXTSIZE")
ENTST (tblsearch "style" TEXTST)
STHIGT (cdr (assoc 40 ENTST))
OSMD (getvar "OSMODE")
)
(setvar "OSMODE" 0)
(princ
"\n»» Seleccione texto a substituir:"
)
(setvar "OSMODE" OSMD)
(setq GTXTF (entsel)
TXTNOV (cons 1 TXSTOTAL)
ENTNAM (car GTXTF)
ENTGTB (entget ENTNAM)
TXTOLD (assoc 1 ENTGTB)
)
(entmod (subst TXTNOV TXTOLD ENTGTB))
(entupd ENTNAM)
)
(princ "\n»» Inicie aplicação digitando SOMAREA2 \n")
;;; Fim Soma_Áreas_m2.lsp
