Al asignar valor a variable: tipo de argumento erróneo: numberp: nil
2 participantes
Página 1 de 1.
Al asignar valor a variable: tipo de argumento erróneo: numberp: nil
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.
(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 : 44
Re: Al asignar valor a variable: tipo de argumento erróneo: numberp: nil
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
Un saludo
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
Re: Al asignar valor a variable: tipo de argumento erróneo: numberp: nil
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….
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 : 44
Re: Al asignar valor a variable: tipo de argumento erróneo: numberp: nil
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.
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 : 44
![-](https://2img.net/i/empty.gif)
» Asignar elevación a vértice de poly3D
» Asignar Color por índice eEntmake
» Variable en registro
» VARIABLE SSGET - AYUDA
» Longitud de Lineas x Tipo
» Asignar Color por índice eEntmake
» Variable en registro
» VARIABLE SSGET - AYUDA
» Longitud de Lineas x Tipo
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|