Des_Pontos_Polys.lsp
;;; Início Des_Pontos_Polys.lsp
;;; Ver 1.2
;;; J.A.
;;; www.cadtom.com
;;; Ver 1.1 - 2004-05-21
;;; Ver 1.2 - 2007-01-29
;;; Des_Pontos_Polys.lsp - Aplicação para desenhar pontos nos vértices de Polylines
(defun C:DPPOL (/ AERR AOSMD ADECH SGPOLY
NUMOBJ NAMENT ENTGT TIPENT ENPOLYA
TSEXTRA SSLENP VALPOLY FIRSTEL PTZVERT
PTVERTICE ENPOLYB VERTIC TESSPL TSEXTRB
ENVERTB TSVCONT PTVERTICE TEMPA VERTIC
TESTVER VERTIC
)
(command "_.undo" "begin")
(setq AERR *error*)
(setq AOSMD (getvar "osmode")
ADECH (getvar "cmdecho")
)
(setvar "cmdecho" 0)
(princ "\n»» Seleccione Polyline(s):\n")
(setq SGPOLY (ssget))
(if SGPOLY
(progn
(setq NUMOBJ (sslength SGPOLY))
(while (> NUMOBJ 0)
(setq NAMENT (ssname SGPOLY (setq NUMOBJ (1- NUMOBJ)))
ENTGT (entget NAMENT)
TIPENT (cdr (assoc 0 ENTGT))
)
(if (equal TIPENT "LWPOLYLINE")
(DFLWPOLY)
)
(if (equal TIPENT "POLYLINE")
(DFPOLY)
)
)
)
(princ "\n»» Nenhuma entidade seleccionada!\n")
)
(command "_.undo" "end")
)
;;;
;;;
;;;
(defun DFLWPOLY ()
(setq ENPOLYA (entget NAMENT)
TSEXTRA (car (cdr (assoc 210 ENPOLYA)))
)
(if (= TSEXTRA 0.0)
(progn
(setvar "osmode" 0)
(setq SSLENP (length ENPOLYA))
(while (> SSLENP 0)
(setq SSLENP (1- SSLENP)
VALPOLY (nth SSLENP ENPOLYA)
FIRSTEL (car VALPOLY)
PTZVERT (cdr (assoc 38 ENPOLYA))
)
(if (= FIRSTEL 10)
(progn
(setq PTVERTICE (list (nth 1 VALPOLY)
(nth 2 VALPOLY)
(cdr (assoc 38 ENPOLYA))
)
)
(command "_.point" PTVERTICE)
)
)
)
(setvar "osmode" AOSMD)
)
)
)
;;;
;;;
;;;
(defun DFPOLY ()
(setq ENPOLYB (entget NAMENT)
VERTIC (entnext NAMENT)
TESSPL (cdr (assoc 70 ENPOLYB))
TSEXTRB (car (cdr (assoc 210 ENPOLYB)))
)
(if (= TSEXTRB 0.0)
(progn
(setvar "osmode" 0)
(while VERTIC
(setq ENVERTB (entget VERTIC)
TSVCONT (cdr (assoc 70 ENVERTB))
)
(if (/= TSVCONT 16)
(progn
(setq PTVERTICE (cdr (assoc 10 ENVERTB)))
(command "_.point" PTVERTICE)
)
)
(setq TEMPA VERTIC
VERTIC (entnext TEMPA)
TESTVER (cdr (assoc 0 ENVERTB))
)
(if (/= TESTVER "VERTEX")
(setq VERTIC nil)
)
)
(setvar "osmode" AOSMD)
)
)
)
;;;
;;;
;;;
(defun *error* (msg)
(setq *error* AERR)
(setvar "cmdecho" ADECH)
(setvar "osmode" AOSMD)
(command "_.undo" "end")
(princ (strcat "»» Aplicação interrompida com erro: " msg))
)
;;;
;;;
;;;
(terpri)
(princ "\n»» Inicie aplicação digitando DPPOL \n")
;;; Fim Des_Pontos_Polys.lsp