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

 
Top