Home > Foro de Autocad >

Debates de Autocad

> Rutina o lisp para sumar longitudes
Foro de Autocad
Foro de Autocad
3 Cursos online | 9793 Debates | 487 Documentos | 102 Vídeos | 1 Blog | 619 Imágenes | 18588 Miembros

Rutina o lisp para sumar longitudes

Escrito por Roberto el 24/02/2008
Hola, quisiera saber si existe alguna rutina que sume las longitudes de las lineas que se señalen. Utilizo el AutoCad 2008 gracias
compartir


Escrito por Fernando Huaylla Castro el 28/02/2008

Te envio un lisp ojala te sirva :

(defun suma-linpol   ()
  (initget "Capa Seleccion")
  (setq opt (getkword " Sumar por [Capa/Seleccion] <Seleccion>: "))

  (if (= opt nil)
    (setq opt "Seleccion")
  )

  (if (= opt "Seleccion")
    (progn
      (setq lineas (ssget))
      (setq polilineas lineas)
   (progn
     (setq   m-lin (sslength lineas)
      m     0
     )
     (setq objlin 0)
     (repeat m-lin
       (setq nombre (ssname lineas m))
       (if   (= "LINE" (cdr (assoc 0 (entget nombre))))
         (progn
      (setq p1 (cdr (assoc 10 (entget nombre)))
            p2 (cdr (assoc 11 (entget nombre)))
      )
      (setq distancia-l (distance p1 p2))
      (setq lst-distancia (cons distancia-l lst-distancia))
      (setq objlin (1+ objlin))
         )
       )
       (setq m (1+ m))
     )
     (setq lonlin-total (apply "+ lst-distancia))
   ) ;_progn
     
   (progn
     (setq   n-pol (sslength polilineas)
      n     0
     )
     (setq objpol 0)
     (repeat n-pol
       (setq nombre (ssname polilineas n))
       (if   (= "LWPOLYLINE" (cdr (assoc 0 (entget nombre))))
         (progn
      (command "_. Area" "_o" nombre)
      (setq lon (getvar "perimeter"))
      (setq longitud (cons lon longitud))
      (setq objpol (1+ objpol))
         )
       )
       (setq n (1+ n))
     )
     (setq lonpol-total (apply "+ longitud))
     (alert (strcat "("(rtos n-pol 2 0)")"
          "  Objetos seleccionados"
          " ______________________________   "
          "       "
          "("(rtos objlin 2 0)")"
          "  Líneas"
          " "
          (rtos lonlin-total 2 2)
          "  unid. "
          "       "
          "("(rtos objpol 2 0)")"
          "  Polilíneas"
          " "
          (rtos lonpol-total 2 2)
          "  unid. "
          " ______________________________   "
          " "
          "TOTAL  "
          "("(rtos (+ objlin objpol) 2 0)")"
          "  Líneas + Polilíneas"
          "       "
          (rtos (+ lonlin-total lonpol-total) 2 2)
          "  unid. "
          " "
       )
     )
   ) ;_progn
    ) ;_prong
    (progn
      (setq sel-capa
        (cdr
          (assoc 8
            (entget (car (entsel " Seleccione Objeto: ")))
          ) 
        )
      )
      (setq lineas
        (ssget "_x"
          (list "(0. "LINE") (cons 8 sel-capa))
        )
      )
      (if (/= lineas nil)
   (progn
     (setq   m-lin (sslength lineas)
      m     0
     )
     (setq objlin 0)
     (repeat m-lin
       (setq nombre (ssname lineas m))
       (if   (= "LINE" (cdr (assoc 0 (entget nombre))))
         (progn
      (setq p1 (cdr (assoc 10 (entget nombre)))
            p2 (cdr (assoc 11 (entget nombre)))
      )
      (setq distancia-l (distance p1 p2))
      (setq lst-distancia (cons distancia-l lst-distancia))
      (setq objlin (1+ objlin))
         )
       )
       (setq m (1+ m))
     )
     (setq lonlin-total (apply "+ lst-distancia))
   ) ;_progn
        (progn
     (setq lonlin-total 0)
          (setq objlin 0)
   )
      ) ;_if
    (progn
      (setq polilineas
        (ssget "_x"
          (list "(0. "LWPOLYLINE") (cons 8 sel-capa))
        )
      )
      (if (/= polilineas nil)
   (progn
     (setq   n-pol (sslength polilineas)
      n     0
     )
     (setq objpol 0)
     (repeat n-pol
       (setq nombre (ssname polilineas n))
       (if   (= "LWPOLYLINE" (cdr (assoc 0 (entget nombre))))
         (progn
      (command "_. Area" "_o" nombre)
      (setq lon (getvar "perimeter"))
      (setq longitud (cons lon longitud))
      (setq objpol (1+ objpol))
         )
       )
       (setq n (1+ n))
     )
     (setq lonpol-total (apply "+ longitud))

   ) ;_progn
        (progn
     (setq lonpol-total 0)
          (setq objpol 0)
   )
      ) ;_if
     (alert (strcat "Capa  "
          """
          sel-capa
          """
          " ______________________________   "
          "       "
          "("(rtos objlin 2 0)")"
          "  Líneas"
          " "
          (rtos lonlin-total 2 3)
          "  unid. "
          "       "
          "("(rtos objpol 2 0)")"
          "  Polilíneas"
          " "
          (rtos lonpol-total 2 3)
          "  unid. "
          " ______________________________   "
          " "
          "TOTAL  "
          "("(rtos (+ objlin objpol) 2 0)")"
          "  Líneas + Polilíneas"
          "       "
          (rtos (+ lonlin-total lonpol-total) 2 3)
          "  unid. "
          " "
       )
     )
      ) ;_progn
    ) ;_progn
  ) ;_if
)

(defun c:sulipo   (/      tipo      polilineas   lineas
       n-pol      n      m-lin      m
       nombre      lon      longitud   linpol
       lonlin-total   lonpol-total   p1      p2
       distancia-l   lst-distancia   opt      sel-capa
      )
  (setvar "cmdecho" 0)
  (suma-linpol)
  (setvar "cmdecho" 1)
  (prin1)
)

(prompt " *** nuevo comando SuLiPo definido. ***")
(prin1)



Copias esta rutina, lo pegas en un block de notas lo guardas con extencion "LSP"  es todo lo cargas al cad y listo es lo que nesecitas


Escrito por Julio Cesar Fernandez el 19/09/2008

Hola compañero podrias explicar como cargar las rutinas lisp gracias


Curro Aguiló
Arquitectura superior (especialidad en...
Escrito por Curro Aguiló el 19/09/2008

Hola, Julio César


Tal como te indica Fernando, debes copiar los datos en un archivo de texto, salvarlo como SULIPO. TXT y después renombrarlo como SULIPO. LSP. Después usas el comando APPLOAD de AutoCAD, buscas el archivo y le das a CARGAR. Para usar la utilidad tan sólo has de teclear SULIPO.


Gracias Fernando por tu aporte. Un saludo


Curro


Escrito por Idi el 06/10/2008

Hola, he intentado probar esto y cuando pongo sulipo me dice comando sulipo desconocido, he probado con otros nombres y tampoco me va.

Necesito alguna forma de sumar todas las longitudes de los elementos de un dibujo pliiiiiis


Curro Aguiló
Arquitectura superior (especialidad en...
Escrito por Curro Aguiló el 06/10/2008
"hola, he intentado probar esto y cuando pongo sulipo me dice comando sulipo desconocido, he probado con otros nombres y tampoco me va.
necesito alguna forma de sumar todas las longitudes de los elementos de un dibujo pliiiiiis
"

por (Octubre 2008)


Hola forero anónimo,


Danos alguna pista. ¿Se te cargó correctamente (apareció una confirmación en la línea de comandos justo después de cerrar el cuadro de diálogo de APPLOAD)?


Ya nos cuentas. Saludos


Curro



Escrito por Idi el 07/10/2008
mira, he guardado el texto de arriba como sulipo. Txt y luego lo cambio a sulipo. Lsp
voy al autocad (2007) y pongo appload, en la ventana que aparece seleccion sulipo. Slp y le doy a cargar. Cuando salgo, pone esto:

Comando: APPLOAD
sulipo. Lsp correctamente cargado(s).
Comando: ; error: error de sintaxis
Comando:
y luego pongo sulipo y me sale lo de comando desconocido

Escrito por A D R el 07/10/2008

Comando: _appload sulipo. LSP correctamente cargado(s).
Comando: ; error: error de sintaxis

Que hago mal , gracias


Curro Aguiló
Arquitectura superior (especialidad en...
Escrito por Curro Aguiló el 09/10/2008

Hola ADR


Efectivamente parece que esta versión de SULIPO tiene algún error de sintaxis (le sobrará algún paréntesis) que no estoy dispuesto a buscar. Te adjunto el archivo SULIPO. TXT (que yo copié en algún otro post) que a mí sí que me funciona y al que debes cambiarle la extensión a LSP. Espero que así no tengas problema. Un saludo


Curro



Ficheros adjuntos:
sulipo

Juankaz Mollericona
La Paz, Bolivia
Escrito por Juankaz Mollericona el 14/11/2008

Gracias amigos funciona el archivo sulipo. Txt, yo no sabía que podrían agregarse este tipo de complementos al autocad.

Ahora quisiera que me indiquen donde encuentro la descripción de estos comandos utilizados en el sulipo, formatos, y un editor de los mismos, etc para realizar mas aplicaciones en el autocad. Deseo aprender a programar en ese código. Y por cierto si no es mucho pedir donde encuentro más codigos o aplicaciones como el sulipo para autocad listos para usar. Gracias de antemano, ustedes son muy buenos en esto y yo deseoi conocer MAS.


Curro Aguiló
Arquitectura superior (especialidad en...
Escrito por Curro Aguiló el 16/11/2008

Hola Juankaz,

En internet dispones de multitud de rutinas programadas en lenguaje LISP. SI te interesa aprender programación en este lenguaje también puedes encontrar cursos. Quizá te interese comprar un buen manual de programación LISP.

Un saludo

Curro


Escrito por Ruben el 27/05/2009
Mis estimados amigos, a mi me funciono de maravillas, gracias, se los agradesco mucho..
Sulipo. Txt
Tamaño: 4442
Tipo: text/plain
"

por Curro (Octubre 2008)




Alberto
Madrid, España
Escrito por Alberto el 04/06/2009
Para utilizar la rutina sulipo la tengo que cargar cada vez que quiero utilizarla, hay forma de que al teclear el comando sulipo salga automaticamente
"
Mis estimados amigos, a mi me funciono de maravillas, gracias, se los agradesco mucho..
Sulipo. Txt
Tamaño: 4442
Tipo: text/plain
"

por Curro (Octubre 2008)




"

por Ruben (Mayo 2009)




Escrito por Raul el 23/07/2009

Una maravilla perfecto gracias por todo me inscribo en la pagina y ya a compartir informacion... Saludos a todos


Curro Aguiló
Arquitectura superior (especialidad en...
Escrito por Curro Aguiló el 25/07/2009

Hola Raúl,

No hay de qué. Me alegro de haberte sido de ayuda. Un saludo

Curro


Ernesto Villalpando
Jalisco, México
Escrito por Ernesto Villalpando el 01/11/2009

Muchisimas gracias me ahorraste 2 dias de cuantificar lineas.


Juan Cerros
Managua, Nicaragua
Escrito por Juan Cerros el 16/12/2009

Saludos y funciona barbaro. , me sacaste de un clavo


Carlos Duran Contreras
Yucatán, México
Escrito por Carlos Duran Contreras el 31/01/2010

Como lo cargo con autocad?


Curro Aguiló
Arquitectura superior (especialidad en...
Escrito por Curro Aguiló el 31/01/2010

Hola, Carlos


Como decía más arriba, debes copiar el archivo SULIPO. TXT en tu disco duro y renombrarlo como SULIPO. LSP. Después usas el comando APPLOAD de AutoCAD, buscas el archivo y le das a CARGAR. Para usar la utilidad tan sólo has de teclear SULIPO.


Un saludo


Curro



Wilfredo Rangel Conopoy
Informatica iutajs
Escrito por Wilfredo Rangel Conopoy el 01/02/2010

Muy bueno,lo guarde quizas mas adelante lo use, pero lo guarde en la carpeta support donde tengo los otros lsp




Responder


Quiero recibir alertas por email cuando haya mensajes nuevos en este debate

Debe cumplir las normas de contenido y normas de conducta
Al escribir en el debate:
  1. Repasa la ortografía y no escribas en formato SMS.
  2. Lee el texto dos veces antes de publicar.
  3. No escribas todo en mayúsculas o negritas.
 
Páginas internacionales: España  |  Italia  |  Francia  |  México  |  Alemania  |  Reino Unido  |  Argentina  |  Chile  |  Colombia  |  USA |  India |  Y próximamente: Brasil | 

Búsquedas frecuentes: que es una factura proforma formula para sacar el volumen partes del huevo acne en la cabeza relacion sujeto objeto

EMAGISTER Servicios de formación, S.L. Copyright 1999/2013.