Las siguientes rutinas permiten escribir enpantalla (con salto de línea) o en fichero las listas definitorias delas entidades seleccionadas.
Para utilizar el código que sigue, selecciónelo en su browser,utilizando el ratón, desde la línea que dice -INICIO DELPROGRAMA- hasta la línea -FIN DEL PROGRAMA-, copie eltexto seleccionado (Ctrl+C), abra un editor (Notepad o Visual LISP) ypéguelo allí (Ctrl+V). Guarde el fichero así creado con elnombre LISTENT.LSP en el subdirectorio SUPPORT . Para cargarlo teclee (load"listent")
Para utilizar el código que sigue, selecciónelo en su browser,utilizando el ratón, desde la línea que dice -INICIO DELPROGRAMA- hasta la línea -FIN DEL PROGRAMA-, copie eltexto seleccionado (Ctrl+C), abra un editor (Notepad o Visual LISP) ypéguelo allí (Ctrl+V). Guarde el fichero así creado con elnombre LISTENT.LSP en el subdirectorio SUPPORT . Para cargarlo teclee (load"listent")
Reinaldo Togores. Profesor Asociado.
Departamento de Ingeniería Geográfica y Técnicas deExpresión Gráfica
Universidad de Cantabria.Diciembre de 1996.
Se autoriza la utilización del código de estos programas,mencionando siempre su origen.
;;;----------------------INICIO DEL PROGRAMA------------------------------;;;(c) Reinaldo Togores, Santander, 1997.;;Listado de entidades;;Salida por pantalla;;Rutina DISP_L: Escribe lista de entidad en pantalla(defun disp_l ( lis_e / )(repeat (length lis_e)(princ (nth cont lis_e))(terpri)(setq cont (1+ cont))));;Rutina PRN_L: Escribe lista de entidad en fichero de texto(defun prn_l (lis_e / )(repeat (length lis_e)(print (nth cont lis_e) if_w)(setq cont (1+ cont))));;Rutina OPN_L: Abre fichero de texto para escribir lista de entidad(defun opn_l ()(if (null nomls)(setq nomls ""))(if (setq nomls (getfiled "Lista de Entidad:" nomls "txt" 5))(if (wcmatch nomls "*`.*")(setq if_w (open nomls "w"))(setq if_w (open (strcat nomls ".txt") "w")))));;;Programa Principal LISTX: Escribe la lista de entidad;;;a un fichero de texto(defun c:listx ( / n_e lis_e ctrl cont)(if (setq s_set (ssget))(progn(opn_l)(setq s_c 0)(repeat (sslength s_set)(if (setq n_e (ssname s_set s_c))
(setq lis_e (entget n_e (list "*"))))(setq cont 0)(prn_l lis_e)(if(or(= (cdr (assoc 0 lis_e)) "POLYLINE")(= (cdr (assoc 0 lis_e)) "INSERT"))(progn(setq ctrl t)(while (and ctrl (setq n_e (entnext n_e)))(setq cont 0)(if (= (cdr (assoc 0 (setq lis_e(entget n_e (list "*"))))) "SEQEND")(progn (setq ctrl nil)(prn_l lis_e))(prn_l lis_e)))))(setq s_c (1+ s_c)))(close if_w))));;Programa Principal LIS: Salida por pantalla(defun c:lis ( / n_e lis_e ctrl cont)(if (setq n_e (car (entsel)))(setq lis_e (entget n_e (list "*"))))(setq cont 0)(disp_l lis_e)(setq ctrl t)(while (and ctrl (setq n_e (entnext n_e)))(setq cont 0)(if (= (cdr (assoc 0 (setq lis_e (entget n_e (list "*"))))) "SEQEND")(setq ctrl nil)(disp_l lis_e))))(alert "Lista de Entidades\teclee LIS para salida por pantalla\n
Teclee LISTX para salida a fichero...");;;----------------------FIN DEL PROGRAMA----------------------------------



