Al asignar valor a variable: tipo de argumento erróneo: numberp: nil

Ir abajo

Al asignar valor a variable: tipo de argumento erróneo: numberp: nil

Mensaje por juan010101 el Miér Jun 06, 2018 2:30 am

Hola, necesito de vuestra ayuda, he escrito una rutina la cual contiene dos funciones “repeat” anidadas, transcribo parte del código :

(repeat cant_strapp
 (setq conj_ptos_2 conj_ptos)
 (setq cuento_strap (+ cuento_strap 1))
 (setq pto_ini_strap (polar pto_10 (/ pi 2) (* separ_strapp cuento_strap)))
 (repeat (/ elem_selec 2)
   ….
 );fin segundo repeat
) ;fin primer repeat

La “primera vuelta” del repeat la ejecuta correctamente, tanto el primario como el anidado, pero al dar la “segunda vuelta” por el repeat primario, no se ejecuta la segunda línea :

(setq conj_ptos_2 conj_ptos)

Dando por error : “tipo de argumento erróneo: numberp: nil”

He chequeado todo el código y se que el problema radica en esa línea, pero no entiendo porque la primera vez asigna a la variable “conj_ptos_2” el valor de “conj_ptos” y a la siguiente vuelta, da error ?

Desde ya muchas gracias.

juan010101

Mensajes : 8
Fecha de inscripción : 26/03/2016
Edad : 38

Ver perfil de usuario

Volver arriba Ir abajo

Re: Al asignar valor a variable: tipo de argumento erróneo: numberp: nil

Mensaje por nolo el Miér Jun 06, 2018 6:32 pm

Hola JUAN, yo apuesto a que en alguna parte de los bucles cambias el valor de cant_strapp por algo que no es un número, pero te has comido el contenido de la rutina al enviarla y no se puede ver.

Un saludo


nolo

Mensajes : 176
Fecha de inscripción : 17/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Al asignar valor a variable: tipo de argumento erróneo: numberp: nil

Mensaje por juan010101 el Miér Jun 06, 2018 10:09 pm

Hola Nolo, gracias por responder.

Con respecto a la variable “cant_strapp”, solo la uso dos veces antes de entrar siquiera en el primer Repeat, y no es alterada en ningún momento, lo verifiqué inmediatamente después de que se ejecuta el Repeat inicial.

Como lo comenté antes, el problema está cuando se ejecuta la segunda vuelta del Repeat principal, cuando ejecuto por segunda vez la instrucción (ya que la “primera” vuelta la ejecuta de manera impecable):

(setq conj_ptos_2 conj_ptos)

Conteniendo la variable “conj_ptos” la siguiente lista de puntos:
((183.263 -39.7978 0.0) (183.993 -40.3523 0.0) (184.708 -39.9734 0.0) (185.73 -40.7234 0.0) (186.562 -40.2793 0.0) (187.452 -39.5497 0.0))
(esta lista es un mero ejemplo del ejemplo que estoy usando para probar la rutina)

Mi problema y es lo que no logro entender, es porque la primera vez, el contenido de la variable “conj_ptos” le es asignada a la variable “conj_ptos_2”, y al ejecutarse la segunda vuelta, a la variable “conj_ptos_2” se le asigna un valor de “nil”, haciendo que el programa se detenga y me tire afuera.

Por otro lado, si voy a la línea de órdenes de Autocad, y ejecuto la instrucción: (setq conj_ptos_2 conj_ptos) manualmente, se ejecuta sin problemas ???

El motivo por el cual ejecuto la instrucción con el setq, es que el Repeat anidado va “eliminando” el contenido de la lista y para las siguientes vueltas del Repeat principal, necesito reponerla.
Espero haberme explicado con más claridad.

Gracias.

p/d: no pongo el programa porque es innecesario y se con certeza que hay algo en el manejo de listas (en este caso de coordenadas de punto) que se me escapa….

juan010101

Mensajes : 8
Fecha de inscripción : 26/03/2016
Edad : 38

Ver perfil de usuario

Volver arriba Ir abajo

Re: Al asignar valor a variable: tipo de argumento erróneo: numberp: nil

Mensaje por juan010101 el Jue Jun 07, 2018 2:00 am

Quería comentar que solucione el problema encarándolo de otra manera donde no tuviera que re-asignarle a la variable conj_ptos_2 el valor de la variable conj_ptos.
Desde mi punto de vista creo que hay algún tipo de bug en el intérprete de Autolisp, pero puedo estar equivocado.

Por mi parte el tema está terminado.

Saludos y Gracias.

juan010101

Mensajes : 8
Fecha de inscripción : 26/03/2016
Edad : 38

Ver perfil de usuario

Volver arriba Ir abajo

Re: Al asignar valor a variable: tipo de argumento erróneo: numberp: nil

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.