AutoCad - Error desconocido (Ayuda)

 
Vista:
Imágen de perfil de hernan

Error desconocido (Ayuda)

Publicado por hernan (8 intervenciones) el 06/11/2016 18:21:03
Hola a todos, tengo un problema con un código que hice para autocad, me arroja un error y no se donde puede estar ese error. He probado por separado cada linea de código y esta bien. Ojala me puedan ayudar.
El código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(defun c: crd()
(initget 7)
(setq ht (getint "Ingrese altura de texto: "))
(setq puntos (ssget (list (cons 0 "POINT")))) ; Selecciona solo Puntos
(setq cant (sslength puntos)); Cantidad de puntos seleccionados
(setq i 0)
(repeat cant
	(setq altura (nth 3 (assoc 10(entget (ssname puntos i))))) ; Altura de cada punto
	(setq texto (rtos altura 2 2))
	(setq cord (cdr (assoc 10(entget (ssname puntos i))))) ;  Coordenadas de cada punto
	(entmake (list
	(cons 0 "TEXT")
	(cons 100 "AcDbEntity")
	(cons 100 "AcDbMText")
	(cons 10 cord)
	(cons 1 texto)
	(cons 40 ht)
	))
	(setq i (+ i 1))
)
)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Error desconocido (Ayuda)

Publicado por Gerardo (986 intervenciones) el 07/11/2016 07:04:37
me parece que el unico error de ejecucion que tienes es que dejaste un espacio a la mitad del nombre de la funcion, y entonces la funcion defun recibe un elemento de mas, primero c: y despues crd, y no sabe que interpretar como nombre. Si quitas el espacio ya correrá.

Ahora, yendo un poco más allá, te recomendaría que cambies el getint por un getreal o getdist, ya que la altura de texto es un valor que admite partes decimales.

Lo otro es que en el entmake el (cons 100 "AcDbMText") está siendo ignorado ya que antes pusiste (cons 0 "TEXT"), por lo que se crea un texto sencillo y no un multitexto. El '(0 . "MTEXT") viene con '(100 . "AcDbMText") y el '(0 . "TEXT") viene con '(100 . "AcDbText")

Si estuvieras creando entidades más complejas esto sería un error, pero en entidades simples como textos, lineas y circulos los codigos 100 correctos los pone el programa, por lo que en este caso bastaría con poner

1
2
3
4
5
6
7
8
(entmake (list
		'(0 . "TEXT")
		(cons 10 cord)
		(cons 1 texto)
		(cons 40 ht)
	)
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de hernan

Error desconocido (Ayuda)

Publicado por hernan (8 intervenciones) el 07/11/2016 17:27:48
Gacias Gerardo, como apenas estoy empezando cometo errores, podrías facilitar algún buen manual para leer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Error desconocido (Ayuda)

Publicado por Gerardo (986 intervenciones) el 07/11/2016 18:34:56
con gusto

(yo llevo como 20 años programando en esto y cometo el mismo tipo de errores todo el tiempo)

en este mismo sitio hay un manual de Jonathan Préstamo. 100% recomendado de principio a fin. Te copio el link:

http://www.lawebdelprogramador.com/cursos/AutoCad/243-Curso-practico-de-personalizacion-y-programacion-bajo-AutoCA.html

Además, mi otro punto alto de referencia siempre ha sido el sitio www.afralisp.net y desde luego que la documentación que acompaña al Autocad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar