LISP Help

LISP Help

Anonymous
Not applicable
1,549 Views
3 Replies
Message 1 of 4

LISP Help

Anonymous
Not applicable

 Hola apreciados usuarios de AutoCAD, tengo un conflicto con un lisp que hace un tiempo venia trabajando pero cambie de versión de CAD y me aparece lo siguiente en la ejecución del mismo. En la parte de ingresar los datos de sesgo es donde se queda y no termina de ejecutar la rutina.

 

1.jpg

 

Las funciones de este lisp son, Poner el bloque seleccionado con la información especificada en cada uno de los textos, cabe aclarar que  es un bloque dinamico que me pide esta informacion. la pocision es con respecto a un trazo de una polilinea y los pone con el sesgo indicado y con un offset que determina "Distancia desde el eje"

 

Este es el código que estoy utilizando pero en la versión 2015, lo corría antes en la versión 2011 y servia:

 

 

(defun c:señal ()
  (setvar "cmdecho" 0) 
  (prompt "\nINSERTA SEÑALES A UNA DISTACIA A PARTIR DEL EJE; Julio González 2006")
  (prompt "\nPresione <Enter> Para Seguir")
  (command pause)
  (command "purge" "b" "punt-guia" "n")
  (command "point" "0,0,0")
  (setq b (entlast))
  (command "-layer" "m" "SEÑALIZACIÓN EXISTENTE" "C" "7" "" "")
  (command "block" "punt-guia" "0,0,0" b "")
  (command "erase" b "")
  (setq poli (entsel "\nSeleccione Inicio del Alineamiento: "))
  (command "lengthen" poli "")
  (setq lp (getvar "perimeter"))
  (setq absc 0)
  (setq ctrl 0)
  (while (/= ctrl nil)
    (setq absc (getreal "\nAbscisas <<SELECCIONE EL LISTADO DE EXCEL, COPIELO Y PEGUELO AQUI!>>: "))
    (setq bloque (getstring "\nSEÑAL: "))
    (setq dis (getreal "\nDistancia desde el eje: "))
    (setq id (getstring "\nID: "))
    (setq estado (getstring "\nEstado: "))
    (setq Tamaño (getstring "\nTamaño: "))
    (setq Dato1 (getstring "\nDato1: "))
    (setq Dato2 (getstring "\nDato2: "))
    (setq Dato3 (getstring "\nDato3: "))
    ;(setq Texto1 (getstring "\nTexto1: "))
    ;(setq Texto2 (getstring "\nTexto2: "))
    ;(setq Texto3 (getstring "\nTexto3: "))
    ;(setq Texto4 (getstring "\nTexto4: "))
    ;(setq Texto5 (getstring "\nTexto5: "))
    ;(setq Texto6 (getstring "\nTexto6: "))
    ;(setq Texto7 (getstring "\nTexto7: "))
    (setq sesgo (getstring "\nSesgo: "))
    (command "measure" poli "b" "punt-guia" "Y" absc)
	(setq conj (ssget "p"))
	(setq nent (ssname conj 0))
	(setq lent (entget nent))
	(setq pin (cdr (assoc 10 lent)))
	(setq rotr (cdr (assoc 50 lent)))
	(setq rot1 (/ (* rotr 180) PI))
        (setq rot1 (+ rot1 sesgo))
        (setq rot (+ rot1 180)) 
           (if (< 0 dis)
             (progn
              (setq rotr (- rotr (/ PI 2)))
	      ;(setq ang (+ rot 180))
              (setq pin1 (polar pin rotr dis))
	      (command "-INSERT" bloque pin1 "" "" rot1 id estado tamaño dato1 dato2 dato3)
	      ;(command "text" "j" "BC" pin1 "0.75" rot1 tex)
	      ;(command "circle" pin1 "0.1")
	     )	   
             (progn 
              (setq rotr (- rotr (/ PI 2)))
	      (setq pin2 (polar pin rotr dis))   
	      (command "-INSERT" bloque pin2 "" "" rot1 id estado tamaño dato1 dato2 dato3)
              ;(command "text" "j" "BC" pin2 "0.75" rot1 tex)     
              ;(command "circle" pin2 "0.1")
	      )  
	    ) 
	(command "erase" conj "")	
    (setq ctrl (+ ctrl 1)) 
  )
  
(command "erase" b "")
(command "purge" "b" "punt-guia" "n")
(setvar "cmdecho" 1)
)

 

Espero me puedan ayudar pues me seria de mucha ayuda, quedarte atento a cualquier comentario

 

0 Likes
Accepted solutions (1)
1,550 Views
3 Replies
Replies (3)
Message 2 of 4

hmsilva
Mentor
Mentor

Holla Sergio,
podría usted facilitar uno dwg con los bloques a nosotros, para hacer los tests a la rutina en AC2015?

 

Could you provide one dwg with the blocks to us, to test the routine in AC2015?

 

 

Henrique

EESignature

Message 3 of 4

Anonymous
Not applicable
Hola si me puedes porfavor indicar como puedo poner diponible un bloque aqui, o envio este link en el cual esta uno de los bloques.

https://www.dropbox.com/sh/zsz8li08erfjo2i/AADwmQjY4F-d1JqVtBTUbYUxa?dl=0

estare atento a comentarios.
0 Likes
Message 4 of 4

hmsilva
Mentor
Mentor
Accepted solution

@Anonymous wrote:
Hola si me puedes porfavor indicar como puedo poner diponible un bloque aqui, o envio este link en el cual esta uno de los bloques.
...

Hola,

para poner diponible un '*.dwg' ou un otro archivo,

 

To attache a file,

 

__Attachements.PNG

 

Y con respecto a su código intenta añadir uno (command)

Try to add a command

(setq sesgo (getreal "\nSesgo: "))
(command)
(command "_measure" poli "_B" "punt-guia" "_Y" absc)

 

Espero que ayude

Hope this helps,
Henrique

EESignature