Pt_Centroid_Region.lsp
;;; Início Pt_Centroid_Region.Lsp
;;; Ver 1.1
;;; J.A.
;;; www.cadtom.com
;;; Ver 1.0 - 2006-05-18
;;; Ver 1.1 - 2007-01-29
;;; Pt_Centroid_Region.lsp - Aplicação para marcar o ponto Centroid de uma entidade do tipo REGION
(defun *error* (msg)
(setq *error* AERR)
(setvar "cmdecho" ADECH)
(setvar "osmode" AOSMD)
(command "_.undo" "end")
(princ (strcat "»» Aplicação interrompida com erro: " msg))
)
;;;
;;;
;;;
(defun C:CENTREG (/ AERR ADECH AOSMD SELENT ENTGT
ENTTYP AOBJ ADOC REGION CENTR PTCEN
)
(setq AERR *error*
ADECH (getvar "cmdecho")
)
(setvar "cmdecho" 0)
(command "_.undo" "begin")
(setq AOSMD (getvar "OSMODE"))
(setvar "OSMODE" 0)
(prompt
"\n»» Marcar o ponto Centroid de uma entidade do tipo REGION"
)
(setq SELENT (car (entsel "\n»» Seleccione Entidade \n")))
(if SELENT
(progn
(setq ENTGT (entget SELENT)
ENTTYP (cdr (assoc 0 ENTGT))
)
(if (equal ENTTYP "REGION")
(progn
(vl-load-com)
(setq AOBJ (vlax-get-acad-object)
ADOC (vla-get-activedocument AOBJ)
AMODL (vla-get-modelspace ADOC)
REGION (vlax-ename->vla-object SELENT)
CENTR (vlax-get-property REGION 'centroid)
PTCEN (vlax-safearray->list (vlax-variant-value CENTR))
)
(command "_.point" PTCEN)
)
(prompt
"\n»» Nenhuma entidade de tipo REGION seleccionada!\n"
)
)
)
(prompt "\n»» Nenhuma entidade seleccionada!\n")
)
(setvar "osmode" AOSMD)
(command "_.undo" "end")
(setvar "cmdecho" ADECH)
)
(terpri)
(princ "\n»» aplicação digitando CENTREG")
;;; Fim Pt_Centroid_Region.lsp