En este grupo En todos

Foro de Autocad

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
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

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.